最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PostgreSQL?auto_explain的具體使用

 更新時間:2025年06月17日 08:37:08   作者:腦子進(jìn)水養(yǎng)啥魚?  
PostgreSQL auto_explain插件自動記錄慢SQL執(zhí)行計(jì)劃,支持全局、會話及用戶級別加載,具有一定的參考價值,感興趣的可以了解一下

一、概述

auto_explain 插件可以實(shí)現(xiàn)在數(shù)據(jù)庫日志中自動記錄慢 SQL 執(zhí)行計(jì)劃。PostgreSQL 編譯安裝時使用了 make world & make install-world 命令,則所有內(nèi)置插件(包括 auto_explain)會默認(rèn)被安裝到數(shù)據(jù)庫中,可直接調(diào)用。在 PostgreSQL 中執(zhí)行 LOAD 'auto_explain'; 若無報(bào)錯則表明插件已存在。PostgreSQL 主流穩(wěn)定版本 9.x 及以上均已支持。

二、使用

2.1 session_preload_libraries 調(diào)用(用戶級別)

--調(diào)用
ALTER ROLE u1 SET session_preload_libraries = 'auto_explain';
ALTER ROLE u1 SET auto_explain.log_min_duration = '3s';

--u1 用戶新連入數(shù)據(jù)庫的會話,執(zhí)行超3s的sql將在數(shù)據(jù)庫日志中打印執(zhí)行計(jì)劃
2025-05-27 14:01:10.821 CST [3335] LOG:  duration: 4004.207 ms  plan:
        Query Text: SELECT pg_sleep(4);
        Result  (cost=0.00..0.01 rows=1 width=4)

--取消調(diào)用
ALTER ROLE u1 set session_preload_libraries = default;
ALTER ROLE u1 set session_preload_libraries = default;

2.2 LOAD 調(diào)用(會話級別)

--調(diào)用
LOAD 'auto_explain';
set auto_explain.log_min_duration = '3s';

--當(dāng)前會話,執(zhí)行超3s的sql將在數(shù)據(jù)庫日志中打印執(zhí)行計(jì)劃
2025-05-27 14:15:03.547 CST [3581] LOG:  duration: 4004.732 ms  plan:
        Query Text: SELECT pg_sleep(4);
        Result  (cost=0.00..0.01 rows=1 width=4)

--取消調(diào)用
臨時調(diào)用,退出當(dāng)前會話即可。

2.3 shared_preload_libraries 調(diào)用(全局級別)

--調(diào)用(若未配置環(huán)境變量$PGDATA替換為postgresql.conf所在實(shí)際路徑)
cat >> $PGDATA/postgresql.conf << 'eof'
shared_preload_libraries = 'auto_explain'
auto_explain.log_min_duration = '3s'
eof

psql postgres postgres -c 'checkpoint'
pg_ctl restart

--新連入數(shù)據(jù)庫的會話,執(zhí)行超3s的sql將在數(shù)據(jù)庫日志中打印執(zhí)行計(jì)劃
2025-05-27 14:25:30.559 CST [3884] LOG:  duration: 5005.176 ms  plan:
        Query Text: SELECT pg_sleep(5);
        Result  (cost=0.00..0.01 rows=1 width=4)

--取消調(diào)用
sed -i '/^shared_preload_libraries = '\''auto_explain'\''/d' $PGDATA/postgresql.conf
sed -i '/^auto_explain.log_min_duration = '\''3s'\''/d' $PGDATA/postgresql.conf

psql postgres postgres -c 'checkpoint'
pg_ctl restart

三、對比

方式生效范圍是否需要重啟靈活性適用場景主要缺點(diǎn)
shared_preload_libraries全局長期全局監(jiān)控需重啟,可能資源浪費(fèi)
LOAD當(dāng)前會話臨時調(diào)試手動操作,無法自動化
session_preload_libraries新會話按會話/用戶自動啟用僅對新會話生效,參數(shù)限制

生產(chǎn)環(huán)境長期監(jiān)控:優(yōu)先使用 shared_preload_libraries,全局配置過濾條件(如 log_min_duration)減少日志量。
臨時診斷:使用 LOAD 命令,靈活且不影響其他會話。
特定用戶/應(yīng)用分析:使用 session_preload_libraries,通過連接參數(shù)或角色配置實(shí)現(xiàn)按需加載。

四、其他參數(shù)介紹

詳情參考官網(wǎng):https://www.postgresql.org/docs/current/auto-explain.html

  • auto_explain.log_min_duration (整數(shù)):控制執(zhí)行計(jì)劃日志記錄的最小語句執(zhí)行時間(單位:毫秒)。設(shè)為 0 時記錄所有執(zhí)行計(jì)劃。默認(rèn)值 -1 表示禁用日志記錄。例如:設(shè)置為 250 時,所有執(zhí)行時間 ≥250 毫秒的語句將被記錄。僅超級用戶可修改此參數(shù)。

  • auto_explain.log_parameter_max_length (整數(shù)):控制查詢參數(shù)值的日志記錄方式。默認(rèn)值 -1 表示完整記錄參數(shù)值。0 禁用參數(shù)值記錄。大于 0 時,將參數(shù)值截?cái)酁橹付ㄗ止?jié)數(shù)。僅超級用戶可修改此參數(shù)。

  • auto_explain.log_analyze (布爾值):啟用后,記錄執(zhí)行計(jì)劃時輸出 EXPLAIN ANALYZE 而非普通 EXPLAIN 結(jié)果。默認(rèn)值:off。僅超級用戶可修改此參數(shù)。

  • auto_explain.log_buffers (布爾值):控制是否在日志中輸出緩沖區(qū)使用統(tǒng)計(jì)信息(等效于 EXPLAIN 的 BUFFERS 選項(xiàng))。僅在 auto_explain.log_analyze 啟用時生效。默認(rèn)值:off。僅超級用戶可修改此參數(shù)。

  • auto_explain.log_wal (布爾值):控制是否在日志中輸出 WAL 使用統(tǒng)計(jì)信息(等效于 EXPLAIN 的 WAL 選項(xiàng))。僅在 auto_explain.log_analyze 啟用時生效。默認(rèn)值:off。僅超級用戶可修改此參數(shù)。

  • auto_explain.log_timing (布爾值):控制是否在日志中輸出每個節(jié)點(diǎn)的定時信息(等效于 EXPLAIN 的 TIMING 選項(xiàng))。禁用后可減少系統(tǒng)時鐘讀取開銷,適用于僅需實(shí)際行數(shù)而非精確時間的場景。僅在 auto_explain.log_analyze 啟用時生效。默認(rèn)值:on。僅超級用戶可修改此參數(shù)。

  • auto_explain.log_triggers (布爾值):控制是否在日志中包含觸發(fā)器執(zhí)行統(tǒng)計(jì)信息。僅在 auto_explain.log_analyze 啟用時生效。默認(rèn)值:off。僅超級用戶可修改此參數(shù)。

  • auto_explain.log_verbose (布爾值):控制是否在日志中輸出詳細(xì)執(zhí)行計(jì)劃信息(等效于 EXPLAIN 的 VERBOSE 選項(xiàng))。默認(rèn)值:off。僅超級用戶可修改此參數(shù)。

  • auto_explain.log_settings (布爾值):控制是否在日志中輸出影響查詢規(guī)劃的修改后配置選項(xiàng)信息(僅顯示與內(nèi)置默認(rèn)值不同的選項(xiàng))。默認(rèn)值:off。僅超級用戶可修改此參數(shù)。

  • auto_explain.log_format (枚舉):指定 EXPLAIN 輸出格式。可選值為 text、xml、json 和 yaml,默認(rèn)為 text。僅超級用戶可修改此參數(shù)。

  • auto_explain.log_level (枚舉):設(shè)置自動解釋查詢計(jì)劃的日志級別。有效值為 DEBUG5、DEBUG4、DEBUG3DEBUG2、DEBUG1、INFONOTICE、WARNING 和 LOG,默認(rèn)為 LOG。僅超級用戶可修改此參數(shù)。

  • auto_explain.log_nested_statements (布爾值):控制是否記錄嵌套語句(函數(shù)內(nèi)部執(zhí)行的語句)。設(shè)為 off 時僅記錄頂層查詢計(jì)劃。默認(rèn)值:off。僅超級用戶可修改此參數(shù)。

  • auto_explain.sample_rate (實(shí)數(shù)):設(shè)置每個會話中僅解釋部分語句的比例。默認(rèn)值 1 表示解釋所有查詢。嵌套語句要么全解釋,要么全不解釋。僅超級用戶可修改此參數(shù)。

到此這篇關(guān)于PostgreSQL auto_explain的文章就介紹到這了,更多相關(guān)PostgreSQL auto_explain內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PostgreSQL教程(四):數(shù)據(jù)類型詳解

    PostgreSQL教程(四):數(shù)據(jù)類型詳解

    這篇文章主要介紹了PostgreSQL教程(四):數(shù)據(jù)類型詳解,本文講解了數(shù)值類型、字符類型、布爾類型、位串類型、數(shù)組、復(fù)合類型等數(shù)據(jù)類型,需要的朋友可以參考下
    2015-05-05
  • PostgreSQL 分頁查詢時間的2種比較方法小結(jié)

    PostgreSQL 分頁查詢時間的2種比較方法小結(jié)

    這篇文章主要介紹了PostgreSQL 分頁查詢時間的2種比較方法小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • postgresql查詢自動將大寫的名稱轉(zhuǎn)換為小寫的案例

    postgresql查詢自動將大寫的名稱轉(zhuǎn)換為小寫的案例

    這篇文章主要介紹了postgresql查詢自動將大寫的名稱轉(zhuǎn)換為小寫的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • pgsql 變量賦值方法及注意事項(xiàng)

    pgsql 變量賦值方法及注意事項(xiàng)

    這篇文章主要介紹了pgsql 變量賦值方法及注意事項(xiàng),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL?數(shù)據(jù)誤刪止損操作指南

    PostgreSQL?數(shù)據(jù)誤刪止損操作指南

    本文主要介紹了PostgreSQL數(shù)據(jù)誤刪恢復(fù)的技術(shù)指南,詳細(xì)闡述了誤刪恢復(fù)的核心原理、緊急止損的黃金三步、三種恢復(fù)方案(使用pg_dirtyread插件、底層十六進(jìn)制解析、基于WAL日志的時間點(diǎn)恢復(fù)),并提供了相應(yīng)的操作步驟和注意事項(xiàng),感興趣的朋友一起看看吧
    2026-04-04
  • PostgreSQL拼接字符串的幾種方法簡單示例

    PostgreSQL拼接字符串的幾種方法簡單示例

    在PostgreSQL中有多種方式可以拼接字符串,這篇文章主要給大家介紹了關(guān)于PostgreSQL拼接字符串的幾種方法,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • PostgreSQL表膨脹問題解析及解決方案

    PostgreSQL表膨脹問題解析及解決方案

    表膨脹是指表的數(shù)據(jù)和索引所占文件系統(tǒng)的空間在有效數(shù)據(jù)量并未發(fā)生大的變化的情況下不斷增大,這種現(xiàn)象會導(dǎo)致關(guān)系文件被大量空洞填滿,從而浪費(fèi)大量的磁盤空間,本文給大家介紹了PostgreSQL表膨脹問題解析及解決方案,需要的朋友可以參考下
    2024-11-11
  • PostgreSQL15.x安裝的詳細(xì)教程

    PostgreSQL15.x安裝的詳細(xì)教程

    PostgreSQL 是一個功能強(qiáng)大的開源關(guān)系型數(shù)據(jù)庫系統(tǒng),基于 C 語言實(shí)現(xiàn),采用 PostgreSQL 許可證,這是一種自由軟件許可證,允許用戶自由使用、修改和分發(fā)源代碼,所以本文將給大家介紹PostgreSQL15.x安裝的詳細(xì)教程,需要的朋友可以參考下
    2024-09-09
  • PostgreSQL中常用的時間日期腳本使用教程

    PostgreSQL中常用的時間日期腳本使用教程

    PostgreSQL是一款簡介而又性能強(qiáng)大的數(shù)據(jù)庫應(yīng)用程序,其在日期時間數(shù)據(jù)方面所支持的功能也都非常給力,下面就來看一下PostgreSQL中常用的日期時間腳本使用教程.
    2016-05-05
  • PostgreSQL實(shí)現(xiàn)定期備份的方法

    PostgreSQL實(shí)現(xiàn)定期備份的方法

    PostgreSQL定期備份功能可以自動備份數(shù)據(jù)庫,避免了手動備份過程中可能發(fā)生的錯誤,也極大地減輕了管理員的工作壓力,所以本文將給大家介紹一下PostgreSQL實(shí)現(xiàn)定期備份的方法,需要的朋友可以參考下
    2024-03-03

最新評論

苏尼特右旗| 密山市| 宁强县| 夏邑县| 安化县| 调兵山市| 肥乡县| 汨罗市| 平谷区| 夏津县| 永川市| 洞口县| 商河县| 马龙县| 静安区| 凌海市| 慈溪市| 突泉县| 铜陵市| 乐陵市| 依安县| 伊金霍洛旗| 普安县| 荥经县| 新乡市| 濉溪县| 神池县| 密云县| 隆回县| 沁水县| 军事| 秭归县| 泰来县| 大邑县| 云梦县| 保定市| 渭南市| 东阳市| 新兴县| 肥西县| 贺兰县|