【PG執行計劃】Postgresql資料庫執行計劃統計資訊簡述
--新增analyze實際執行來獲得執行計劃,可不加 explain analyze select * from test_table; --只看執行路徑,不看cost explain (costs false) select * from test_table; --透過實際執行來看代價和緩衝區命中情況 explain (analyze true,buffers true) select * from test_table; --與執行計劃相關的配置項 enable_seqscan:是否選擇全表掃描 enable_indexscan:是否選擇索引掃描 enable_bitmapscan:是否選擇點陣圖掃描 enable_tidscan:是否tid掃描(類似oracle rowid) enable_nestloop:多表連線時,是否選擇巢狀迴圈連線 enable_hashjoin:多表連線時,是否選擇hash連線 enable_mergejoin:多表連線時,是否選擇merge連線 enable_hashagg:多表連線時,是否使用hash聚合 enable_sort:是否使用明確的排序。 --cost基準值引數 seq_page_cost:執行計劃中一次順序訪問一個資料塊頁面的開銷,預設1.0 random_page_cost:隨機訪問一個資料塊頁面的開銷,預設4.0 cpu_tuple_cost:執行計劃中,處理一條資料行的開銷,預設0.01 cpu_idex_tuple_cost:處理一條索引行的開銷,預設0.005 cpu_operator_cost:執行一個運算子或函式的開銷,預設0.0025 effective_cache_size:執行計劃中在一次索引掃描中可用的磁碟緩衝區的有效大小。預設128MB --基因查詢最佳化:是一個使用探索式搜尋來執行查詢規劃的演算法,可以降低負載查詢的規劃時間,它的檢索是隨機的。 geqo:允許和禁止基因查詢最佳化 geqo_threshold:只當涉及的from關係數量至少有這麼多個時,才使用基因查詢最佳化。 geqo_effort:控制geqo裡規劃時間和查詢規劃有效性直接的平衡。預設5,1-10 geqo_pool_size:控制geqo使用池的大小 geqo_generations:控制geqo使用的子代數目,子代意思演算法的迭代次數 geqo_selection_bias:控制geqo使用的選擇性偏好 geqo_seed:控制geqo使用的隨機數產生器的初始值,用以選擇隨機路徑。 --統計資訊收集 --控制是否輸出sql執行過程的統計資訊到日誌 log_statment_stats log_parser_stats log_planner_stats log_executor_stats --收到收集統計資訊 analyze test01(id2); analyze test01(id1,id2); analyze test01; --設定收集統計資訊行數 set default_statistics_target to 500; analyze test01; --or 設定表中每個列的統計target值 alter table test01 alter column id2 set statistics 200; --指定這個列上有多少唯一值 alter table test01 alter column id2 set (n_distinct=2000); --子表會繼續使用父表的設計 alter table test01 alter column id2 set (n_distinct_inherited=2000);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29487349/viewspace-2375486/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何閱讀PG資料庫的執行計劃資料庫
- PostgreSQL DBA(9) - 執行計劃資料結構SQL資料結構
- PostgreSQL執行計劃變化SQL
- 執行計劃-1:獲取執行計劃
- 成為MySQL DBA後,再看ORACLE資料庫(十四、統計資訊與執行計劃)MySqlOracle資料庫
- 使用set autotrace on 檢視資料庫執行計劃資料庫
- PostgreSQL DBA(195) - Limit&執行計劃SQLMIT
- 分析執行計劃優化SQLORACLE的執行計劃(轉)優化SQLOracle
- 達夢資料庫SQL執行計劃檢視方法資料庫SQL
- Oracle資料庫關於SQL的執行計劃(轉)Oracle資料庫SQL
- 執行計劃-2:檢視更多的資訊
- SYBASE執行計劃
- MySQL 執行計劃MySql
- MySQL執行計劃MySql
- PostgreSQL 查詢當前執行中sql的執行計劃——pg_show_plans模組SQL
- 【執行計劃】Oracle獲取執行計劃的幾種方法Oracle
- 如何更好的解讀QianBase MPP資料庫執行計劃資料庫
- Oracle優化案例-統計資訊對執行計劃的影響(十三)Oracle優化
- mysql explain 執行計劃MySqlAI
- explain執行計劃分析AI
- mysql執行計劃explainMySqlAI
- oracle 固定執行計劃Oracle
- Oracle sql執行計劃OracleSQL
- MySQL執行計劃解析MySql
- mysql主從庫執行計劃不同MySql
- 達夢資料庫獲取SQL真實的執行計劃資料庫SQL
- 執行計劃執行步驟原則
- Postgresql Linked server遠端伺服器取資料的執行計劃原理SQLServer伺服器
- 檢視 OceanBase 執行計劃
- MySQL執行計劃解析(四)MySql
- explain 查詢執行計劃AI
- Explain執行計劃詳解AI
- 讀懂MySQL執行計劃MySql
- mongodb執行計劃解釋MongoDB
- 通過鎖定表的統計資訊來穩定sql的執行計劃SQL
- 一次搞定各種資料庫SQL執行計劃:MySQL、Oracle、SQL Server、PostgreSQL以及SQLite資料庫MySqlOracleServerSQLite
- Oracle資料遷移後由列的直方圖統計資訊引起的執行計劃異常Oracle直方圖
- MOGDB/openGauss資料庫執行計劃快取/失效機制的測試資料庫快取