【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執行計劃變化SQL
- 執行計劃-1:獲取執行計劃
- PostgreSQL DBA(9) - 執行計劃資料結構SQL資料結構
- 執行計劃
- ORACLE資料庫檢視執行計劃Oracle資料庫
- 資料庫執行計劃和資料存取方式資料庫
- PostgreSQL 查詢當前執行中sql的執行計劃——pg_show_plans模組SQL
- 分析執行計劃優化SQLORACLE的執行計劃(轉)優化SQLOracle
- oracle sqlprofile 固定執行計劃,並遷移執行計劃OracleSQL
- 【sql調優之執行計劃】獲取執行計劃SQL
- SYBASE執行計劃
- MySQL 執行計劃MySql
- MySQL執行計劃MySql
- sql 執行計劃SQL
- ORACLE執行計劃Oracle
- 執行計劃__獲取方法、檢視執行順序、統計資訊詳解
- 【執行計劃】Oracle獲取執行計劃的幾種方法Oracle
- 【Oracle】-【索引-HINT,執行計劃】-帶HINT的索引執行計劃Oracle索引
- 分析執行計劃最佳化SQLORACLE的執行計劃(轉)SQLOracle
- PostgreSQL DBA(195) - Limit&執行計劃SQLMIT
- 使用set autotrace on 檢視資料庫執行計劃資料庫
- Oracle資料庫關於SQL的執行計劃Oracle資料庫SQL
- oracle 固定執行計劃Oracle
- Oracle sql執行計劃OracleSQL
- explain執行計劃分析AI
- mysql執行計劃explainMySqlAI
- mysql explain 執行計劃MySqlAI
- MySQL執行計劃解析MySql
- 分割槽 執行計劃
- 執行計劃繫結
- SQL Server執行計劃SQLServer
- 執行計劃詳解
- 啟動執行計劃
- SQL的執行計劃SQL
- FAST DUAL執行計劃?AST
- 執行計劃的理解.
- min ? max ? 執行計劃?