<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # F.3\. auto_explain `auto_explain`模塊自動提供一種慢語句記錄執行計劃的方法 沒有手動運行[EXPLAIN](#calibre_link-575)。 這對于在大型應用程序中跟蹤未優化查詢尤其有用。 該模塊沒有提供SQL訪問函數。為了使用它,簡單加載它到服務器中。 你可以加載它到獨立會話中: ``` LOAD 'auto_explain'; ``` (你一定是超級用戶才能這樣做。) 更典型的用法是預先加載它到 在`postgresql.conf`中[shared_preload_libraries](#calibre_link-576) 包含`auto_explain`的所有會話。然后, 你可以出乎意料地跟蹤無論什么時候會發生的慢查詢。 當然有價值開銷。 ## F.3.1\. 配置參數 有幾個配置參數控制`auto_explain`的操作。注意, 缺省操作是什么也不做,如果你想要任何結果, 那么你必須至少設置`auto_explain.log_min_duration`。 `auto_explain.log_min_duration` (`integer`) `auto_explain.log_min_duration`是最小聲明執行時間, 以毫秒為單位,將導致語句的計劃被記錄。設置它為零記錄所有計劃。 減一(缺省)禁止計劃的記錄。比如,如果你設置它為`250ms`, 那么運行250ms或者更長時間的所有語句將被記錄。只有超級用戶可以改變這個設置。 `auto_explain.log_analyze` (`boolean`) `auto_explain.log_analyze`導致`EXPLAIN ANALYZE` 輸出,而不是`EXPLAIN`輸出,當記錄一個執行計劃時,被打印。 該參數缺省是關閉的。只有超級用戶可以改變這個設置。 > **Note:** 當該參數打開時,為所有執行語句產生每個計劃節點時間, 無論他們是否運行足夠長的時間來獲得記錄。 這會對性能產生極其不利的影響。 `auto_explain.log_verbose` (`boolean`) `auto_explain.log_verbose`導致`EXPLAIN VERBOSE` 輸出,而不是`EXPLAIN`輸出,當記錄一個執行計劃時,被打印。 該參數缺省是關閉的。只有超級用戶可以改變這個設置。 `auto_explain.log_buffers` (`boolean`) `auto_explain.log_buffers`導致 `EXPLAIN(ANALYZE, BUFFERS)` 輸出,而不是`EXPLAIN`輸出,當記錄一個執行計劃時,被打印。 該參數缺省是關閉的。只有超級用戶可以改變這個設置。 該參數不起作用除非設置`auto_explain.log_analyze`參數。 `auto_explain.log_format` (`enum`) `auto_explain.log_format`選擇使用 `EXPLAIN`輸出格式。 允許值是`text`,`xml`, `json`和`yaml`。 缺省是text。只有超級用戶可以改變這個設置。 `auto_explain.log_timing` (`boolean`) `auto_explain.log_timing`導致`EXPLAIN (ANALYZE, TIMING off)`輸出, 而不是`EXPLAIN (ANALYZE)`輸出。 反復讀取系統時鐘的開銷可以顯著減緩一些系統上的查詢,因此當計算實際行時,設置該 參數為關閉是非常有用的,不需要確切時間。 當啟動`auto_explain.log_analyze`時,該參數是有效的。 缺省該參數是打開的。只有超級用戶可以改變該設置。 `auto_explain.log_nested_statements` (`boolean`) `auto_explain.log_nested_statements`為了記錄導致嵌套語句(語句在函數內執行)。 當它是關閉時,只記錄頂級查詢計劃。 該參數缺省是關閉的。 只有超級用戶可以改變這個設置。 必須在`postgresql.conf`中設置該參數,典型的用戶是: ``` # postgresql.conf shared_preload_libraries = 'auto_explain' auto_explain.log_min_duration = '3s' ``` ## F.3.2\. 例子 ``` postgres=# LOAD 'auto_explain'; postgres=# SET auto_explain.log_min_duration = 0; postgres=# SELECT count(*) FROM pg_class, pg_index WHERE oid = indrelid AND indisunique; ``` 這可能產生日志輸出比如: ``` LOG: duration: 3.651 ms plan: Query Text: SELECT count(*) FROM pg_class, pg_index WHERE oid = indrelid AND indisunique; Aggregate (cost=16.79..16.80 rows=1 width=0) (actual time=3.626..3.627 rows=1 loops=1) -> Hash Join (cost=4.17..16.55 rows=92 width=0) (actual time=3.349..3.594 rows=92 loops=1) Hash Cond: (pg_class.oid = pg_index.indrelid) -> Seq Scan on pg_class (cost=0.00..9.55 rows=255 width=4) (actual time=0.016..0.140 rows=255 loops=1) -> Hash (cost=3.02..3.02 rows=92 width=4) (actual time=3.238..3.238 rows=92 loops=1) Buckets: 1024 Batches: 1 Memory Usage: 4kB -> Seq Scan on pg_index (cost=0.00..3.02 rows=92 width=4) (actual time=0.008..3.187 rows=92 loops=1) Filter: indisunique ``` ## F.3.3\. 作者 Takahiro Itagaki `&lt;[itagaki.takahiro@oss.ntt.co.jp](mailto:itagaki.takahiro@oss.ntt.co.jp)&gt;`
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看