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

PostgreSQL開(kāi)啟慢查詢(xún)?nèi)罩镜姆椒ㄔ斀?/h1>
 更新時(shí)間:2025年11月18日 09:06:03   作者:檀越@新空間  
PostgreSQL?可以通過(guò)配置參數(shù)來(lái)記錄執(zhí)行時(shí)間超過(guò)指定閾值的查詢(xún),即慢查詢(xún)?nèi)罩?下面小編就為大家詳細(xì)講講開(kāi)啟慢查詢(xún)?nèi)罩镜脑敿?xì)步驟吧

PostgreSQL 可以通過(guò)配置參數(shù)來(lái)記錄執(zhí)行時(shí)間超過(guò)指定閾值的查詢(xún),即慢查詢(xún)?nèi)罩?。以下是開(kāi)啟慢查詢(xún)?nèi)罩镜牟襟E:

1. 修改 postgresql.conf 配置文件

找到 PostgreSQL 的配置文件(通常位于數(shù)據(jù)目錄中,如 /var/lib/postgresql/data/postgresql.conf/etc/postgresql/[版本]/main/postgresql.conf),修改以下參數(shù):

# 開(kāi)啟日志記錄
logging_collector = on

# 設(shè)置日志輸出目錄(可選)
log_directory = 'pg_log'

# 設(shè)置日志文件名模式(可選)
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

# 記錄慢查詢(xún)(單位:毫秒)
log_min_duration_statement = 1000  # 記錄執(zhí)行超過(guò)1秒的查詢(xún)

# 可選:記錄所有語(yǔ)句(包括慢查詢(xún))
#log_statement = 'all'  # 可選值為 none, ddl, mod, all

# 可選:記錄執(zhí)行計(jì)劃
#auto_explain.log_min_duration = 1000
#auto_explain.log_analyze = on
#auto_explain.log_buffers = on
#auto_explain.log_timing = on
#auto_explain.log_triggers = on
#auto_explain.log_verbose = on
#auto_explain.log_nested_statements = on

2. 重新加載配置

不需要重啟 PostgreSQL 服務(wù),只需執(zhí)行以下命令重新加載配置:

# 方法1:使用 psql
psql -U postgres -c "SELECT pg_reload_conf();"

# 方法2:使用系統(tǒng)命令
sudo systemctl reload postgresql  # 根據(jù)您的系統(tǒng)和服務(wù)管理工具可能不同

3. 驗(yàn)證配置

-- 檢查當(dāng)前配置
SELECT name, setting, unit FROM pg_settings
WHERE name IN ('logging_collector', 'log_min_duration_statement');

4. 查看慢查詢(xún)?nèi)罩?/h2>

日志文件默認(rèn)會(huì)生成在配置的 log_directory 目錄中,文件名遵循 log_filename 模式。

5.高級(jí)選項(xiàng)

記錄執(zhí)行計(jì)劃:?jiǎn)⒂?auto_explain 模塊可以記錄查詢(xún)的執(zhí)行計(jì)劃

shared_preload_libraries = 'auto_explain'
auto_explain.log_min_duration = '1s'
auto_explain.log_analyze = on

按用戶(hù)或數(shù)據(jù)庫(kù)記錄

# 只記錄特定數(shù)據(jù)庫(kù)的慢查詢(xún)
log_min_duration_statement = 1000
log_connections = on
log_disconnections = on
log_line_prefix = '%m [%p] %q%u@%d '

日志輪轉(zhuǎn)

log_rotation_age = 1d      # 每天輪轉(zhuǎn)
log_rotation_size = 10MB   # 或按大小輪轉(zhuǎn)

6.知識(shí)擴(kuò)展

PostgreSQL 慢查詢(xún)獲取方法整理

1.獲取慢查詢(xún)的方法

  • 方法一 :開(kāi)啟慢查詢(xún)?nèi)罩?/li>
  • 方法二 :使用pg_stat_statementes擴(kuò)展(推薦)
  • 方法三 : 捕獲當(dāng)前連接中的查詢(xún)

2.開(kāi)啟慢查詢(xún)?nèi)罩?/p>

    postgresql.conf
        log_destination = 'csvlog'           #日志基礎(chǔ)設(shè)置
        logging_collector = on                #日志基礎(chǔ)設(shè)置(重啟生效)
        log_directory = 'pg_log'              #日志基礎(chǔ)設(shè)置
        log_filename = 'postgresql-%Y-%m-%d.log'   #日志基礎(chǔ)設(shè)置
        log_file_mode = 0600                 #日志基礎(chǔ)設(shè)置
        log_truncate_on_rotation = off   #日志基礎(chǔ)設(shè)置
        log_rotation_age = 1d                #日志基礎(chǔ)設(shè)置
        log_rotation_size = 0                 #日志基礎(chǔ)設(shè)置
        log_statement = none                #需要記錄的語(yǔ)句,默認(rèn)只記錄錯(cuò)誤日志。none,ddl,mod,all
        log_min_duration_statement = 500   #慢查詢(xún)最小時(shí)長(zhǎng),毫秒。log_statement=all同時(shí)設(shè)置時(shí)失效
        shared_preload_libraries = 'auto_explain'       #只需要編譯,不需要安裝擴(kuò)展
        auto_explain.log_min_duration = 1s               #超過(guò)時(shí)長(zhǎng)的慢查詢(xún),給出執(zhí)行計(jì)劃
        postgres=# select pg_reload_conf();
        針對(duì)某個(gè)用戶(hù)或數(shù)據(jù)說(shuō)庫(kù)進(jìn)行設(shè)置
        postgres=# alter database db_name set log_min_duration_statement=5000;
        postgres=# alter user user_name set log_min_duration_statement=1000;

3.pg_stat_statementes擴(kuò)展(推薦)

pg_stat_statements 模塊提供了跟蹤服務(wù)器執(zhí)行的所有SQL語(yǔ)句的執(zhí)行統(tǒng)計(jì)信息的方法。如果想要開(kāi)啟模塊,必須在配置文件中將 pg_stat_statements 添加到 shared_preload_libraries中。因?yàn)樗枰~外的共享內(nèi)存,所以必須重啟服務(wù)添加或刪除。當(dāng) pg_stat_statements 被加載,會(huì)跟蹤服務(wù)器所有的數(shù)據(jù)庫(kù)的統(tǒng)計(jì)信息。

為了安全,只有superuser和 pg_read_all_stats role 用戶(hù)可以訪(fǎng)問(wèn) SQL text 和 queryid。其他用戶(hù)可以訪(fǎng)問(wèn) statistics。

根據(jù)內(nèi)部哈希計(jì)算具有相同的查詢(xún)結(jié)構(gòu),可計(jì)劃查詢(xún)(即SELECT,INSERT,UPDATE和DELETE)就會(huì)合并到單個(gè)pg_stat_statements條目中。 通常,如果兩個(gè)查詢(xún)?cè)谡Z(yǔ)義上等效,則除了查詢(xún)中出現(xiàn)的文字常量的值之外,它們將被視為相同。 但是,實(shí)用命令(即所有其他命令)嚴(yán)格地根據(jù)其文本查詢(xún)字符串進(jìn)行比較。

安裝配置及使用

安裝

 cd pg_soft/contrib/pg_stat_statements
        make && make install
        postgres=# create extension pg_stat_statements;

重要配置

 shared_preload_libraries='auto_explain,pg_stat_statements'
        log_min_duration_statement = 100     #慢查詢(xún)最小時(shí)長(zhǎng),毫秒
        track_activity_query_size = 10000     #SQL文本的最大長(zhǎng)度
        pg_stat_statements.max = 10000     #跟蹤模塊中最多保留多少條統(tǒng)計(jì)信息,通過(guò)LRU算法。
        pg_stat_statements.track = all      #all包括函數(shù)內(nèi)的SQL, top不包含函數(shù)內(nèi)的sql), none
        pg_stat_statements.track_utility = true     #是否跟蹤非DML語(yǔ)句 (例如DDL,DCL)
        pg_stat_statements.save = true     #表示當(dāng)pg停止時(shí),把信息存入磁盤(pán)文件。

使用

#重置統(tǒng)計(jì)信息
select pg_stat_statements_reset() ;
#最慢的TOP10
SELECT * FROM pg_stat_statements order by total_time desc limit 10;

4.捕獲當(dāng)前連接中的查詢(xún)

select *
from pg_stat_activity
where state<>'idle' and now()-query_start > interval '1 s' order by query_start ;

到此這篇關(guān)于PostgreSQL開(kāi)啟慢查詢(xún)?nèi)罩镜姆椒ㄔ斀獾奈恼戮徒榻B到這了,更多相關(guān)PostgreSQL慢查詢(xún)?nèi)罩緝?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PostgreSQL 日志文件的所在位置

    PostgreSQL 日志文件的所在位置

    這篇文章主要介紹了PostgreSQL 日志文件的所在位置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • Postgresql創(chuàng)建新增、刪除與修改觸發(fā)器的方法

    Postgresql創(chuàng)建新增、刪除與修改觸發(fā)器的方法

    這篇文章主要介紹了Postgresql創(chuàng)建新增、刪除與修改觸發(fā)器的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 啟動(dòng)PostgreSQL服務(wù)器 并用pgAdmin連接操作

    啟動(dòng)PostgreSQL服務(wù)器 并用pgAdmin連接操作

    這篇文章主要介紹了啟動(dòng)PostgreSQL服務(wù)器 并用pgAdmin連接操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • pgsql 如何手動(dòng)觸發(fā)歸檔

    pgsql 如何手動(dòng)觸發(fā)歸檔

    這篇文章主要介紹了pgsql手動(dòng)觸發(fā)歸檔的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • Docker環(huán)境下升級(jí)PostgreSQL的步驟方法詳解

    Docker環(huán)境下升級(jí)PostgreSQL的步驟方法詳解

    這篇文章主要介紹了Docker環(huán)境下升級(jí)PostgreSQL的步驟方法詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • 如何查看PostgreSQL數(shù)據(jù)庫(kù)中所有表

    如何查看PostgreSQL數(shù)據(jù)庫(kù)中所有表

    這篇文章主要介紹了如何查看PostgreSQL數(shù)據(jù)庫(kù)中所有表問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Postgresql導(dǎo)入幾何數(shù)據(jù)(shp,geojson)的幾種方式

    Postgresql導(dǎo)入幾何數(shù)據(jù)(shp,geojson)的幾種方式

    本文主要介紹了Postgresql導(dǎo)入幾何數(shù)據(jù)(shp,geojson)的幾種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2026-02-02
  • postgresql如何找到表中重復(fù)數(shù)據(jù)的行并刪除

    postgresql如何找到表中重復(fù)數(shù)據(jù)的行并刪除

    這篇文章主要介紹了postgresql如何找到表中重復(fù)數(shù)據(jù)的行并刪除問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Postgresql鎖機(jī)制詳解(表鎖和行鎖)

    Postgresql鎖機(jī)制詳解(表鎖和行鎖)

    這篇文章主要介紹了Postgresql鎖機(jī)制詳解(表鎖和行鎖),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • PostgreSQL實(shí)戰(zhàn)之啟動(dòng)恢復(fù)讀取checkpoint記錄失敗的條件詳解

    PostgreSQL實(shí)戰(zhàn)之啟動(dòng)恢復(fù)讀取checkpoint記錄失敗的條件詳解

    這篇文章主要給大家介紹了關(guān)于PostgreSQL實(shí)戰(zhàn)之啟動(dòng)恢復(fù)讀取checkpoint記錄失敗的條件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08

最新評(píng)論

榆林市| 潞城市| 香格里拉县| 正镶白旗| 科技| 尚志市| 通海县| 米泉市| 赣榆县| 汝州市| 偃师市| 大余县| 平和县| 陆河县| 盐山县| 昌吉市| 襄汾县| 油尖旺区| 沈阳市| 禄劝| 额济纳旗| 辽阳县| 陈巴尔虎旗| 宝兴县| 阳西县| 普兰店市| 三河市| 白玉县| 连江县| 历史| 汤阴县| 贺兰县| 句容市| 鲁甸县| 祁门县| 安西县| 安宁市| 涞水县| 平阴县| 色达县| 灌云县|