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

PostgreSQL打印實(shí)時(shí)查詢語(yǔ)句的三種方法

 更新時(shí)間:2025年09月09日 09:13:21   作者:Dontla  
這篇文章主要介紹了三種PostgreSQL實(shí)時(shí)打印查詢的方法:1.通過(guò)日志配置記錄所有SQL;2.利用pg_stat_activity監(jiān)控活躍查詢;3.使用pg_stat_statements分析歷史性能,并提醒生產(chǎn)環(huán)境應(yīng)避免全量記錄以減少性能損耗,需要的朋友可以參考下

最后通過(guò)后端flask sqlalchemy開(kāi)啟SQLALCHEMY_ECHO每次數(shù)據(jù)庫(kù)訪問(wèn)打印實(shí)現(xiàn)了:

方法 1:通過(guò) PostgreSQL 日志實(shí)時(shí)查看

1. 修改 PostgreSQL 配置文件

docker-compose.yml 中掛載的 postgresql.conf 文件中,添加以下日志配置:

# 開(kāi)啟日志記錄所有 SQL 語(yǔ)句
log_statement = 'all'

# 設(shè)置日志輸出格式(推薦包含時(shí)間、進(jìn)程 ID 等)
log_line_prefix = '%t [%p]: [user=%u,db=%d] '

# 開(kāi)啟日志收集器
logging_collector = on
log_directory = '/var/log/postgresql'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

2. 重啟 PostgreSQL 容器

docker compose down
docker compose up -d

3. 實(shí)時(shí)查看日志

通過(guò) docker logs 或直接訪問(wèn)掛載的日志目錄實(shí)時(shí)查看:

# 方法 1:通過(guò) docker logs 實(shí)時(shí)查看
docker compose logs -f postgres

# 方法 2:直接訪問(wèn)宿主機(jī)日志目錄(假設(shè)日志掛載到 ./logs)
tail -f ./logs/postgresql-*.log

日志示例

2025-09-07 16:24:38.123 UTC [1234]: [user=postgres,db=postgres] LOG:  statement: SELECT * FROM my_table;

方法 2:通過(guò) pg_stat_activity 實(shí)時(shí)監(jiān)控

1. 查詢實(shí)時(shí)執(zhí)行的 SQL

定期執(zhí)行以下 SQL 語(yǔ)句(可通過(guò)腳本或 watch 命令):

SELECT 
    pid, 
    usename, 
    query, 
    query_start, 
    now() - query_start AS duration
FROM 
    pg_stat_activity
WHERE 
    state = 'active' 
    AND query != '<IDLE>'
ORDER BY 
    query_start DESC;

2. 使用 watch 實(shí)時(shí)刷新

watch -n 1 "psql -U postgres -d postgres -c 'SELECT * FROM pg_stat_activity;'"

方法 3:使用 pg_stat_statements 擴(kuò)展

1. 啟用 pg_stat_statements

postgresql.conf 中添加:

shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all

重啟容器后執(zhí)行:

CREATE EXTENSION pg_stat_statements;

2. 查詢實(shí)時(shí) SQL 統(tǒng)計(jì)

SELECT 
    query, 
    calls, 
    total_exec_time, 
    mean_exec_time
FROM 
    pg_stat_statements
ORDER BY 
    total_exec_time DESC
LIMIT 10;

注意事項(xiàng)

  1. 日志性能開(kāi)銷(xiāo)log_statement = 'all' 會(huì)記錄所有 SQL,可能影響性能,建議僅用于調(diào)試。
  2. 日志輪轉(zhuǎn):通過(guò) log_rotation_agelog_rotation_size 控制日志文件大小。
  3. 權(quán)限問(wèn)題:確保掛載的日志目錄(如 ./logs)有寫(xiě)入權(quán)限。
  4. 生產(chǎn)環(huán)境:建議僅記錄慢查詢(log_min_duration_statement)而非所有語(yǔ)句。

總結(jié)

  • 實(shí)時(shí)打印每條查詢:使用 方法 1(日志記錄)。
  • 實(shí)時(shí)監(jiān)控活躍查詢:使用 方法 2(pg_stat_activity
  • 分析歷史查詢性能:使用 方法 3(pg_stat_statements。

到此這篇關(guān)于PostgreSQL打印實(shí)時(shí)查詢語(yǔ)句的三種方法的文章就介紹到這了,更多相關(guān)PostgreSQL打印查詢語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PostgreSQL圖(graph)的遞歸查詢實(shí)例

    PostgreSQL圖(graph)的遞歸查詢實(shí)例

    這篇文章主要給大家介紹了關(guān)于PostgreSQL圖(graph)的遞歸查詢的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用PostgreSQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • postgresql使用dblink跨庫(kù)增刪改查的步驟

    postgresql使用dblink跨庫(kù)增刪改查的步驟

    這篇文章主要介紹了postgresql使用dblink跨庫(kù)增刪改查,本文給大家介紹的非常詳細(xì)對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • postgresql使用filter進(jìn)行多維度聚合的解決方法

    postgresql使用filter進(jìn)行多維度聚合的解決方法

    這篇文章給大家介紹postgresql使用filter進(jìn)行多維度聚合的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-07-07
  • postgresql 實(shí)現(xiàn)取出分組中最大的幾條數(shù)據(jù)

    postgresql 實(shí)現(xiàn)取出分組中最大的幾條數(shù)據(jù)

    這篇文章主要介紹了postgresql 實(shí)現(xiàn)取出分組中最大的幾條數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • PostgreSQL大版本升級(jí)的詳細(xì)流程

    PostgreSQL大版本升級(jí)的詳細(xì)流程

    PostgreSQL版本發(fā)布規(guī)則,一年一個(gè)大版本,一個(gè)季度一個(gè)小版本;PG遇到的BUG問(wèn)題,社區(qū)會(huì)很快進(jìn)行修復(fù),并在下一個(gè)版本中發(fā)布,因此有必要進(jìn)行對(duì)數(shù)據(jù)庫(kù)版本升級(jí),本文給大家介紹了PostgreSQL大版本升級(jí)的詳細(xì)流程,需要的朋友可以參考下
    2024-04-04
  • PostgreSQL13基于流復(fù)制搭建后備服務(wù)器的方法

    PostgreSQL13基于流復(fù)制搭建后備服務(wù)器的方法

    這篇文章主要介紹了PostgreSQL13基于流復(fù)制搭建后備服務(wù)器,后備服務(wù)器作為主服務(wù)器的數(shù)據(jù)備份,可以保障數(shù)據(jù)不丟,而且在主服務(wù)器發(fā)生故障后可以提升為主服務(wù)器繼續(xù)提供服務(wù)。需要的朋友可以參考下
    2022-01-01
  • PostgreSQL 如何查找需要收集的vacuum 表信息

    PostgreSQL 如何查找需要收集的vacuum 表信息

    這篇文章主要介紹了PostgreSQL 如何查找需要收集的vacuum 表信息,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • PostgreSQL存儲(chǔ)過(guò)程用法實(shí)戰(zhàn)詳解

    PostgreSQL存儲(chǔ)過(guò)程用法實(shí)戰(zhàn)詳解

    這篇文章主要介紹了PostgreSQL存儲(chǔ)過(guò)程用法,結(jié)合具體實(shí)例詳細(xì)分析了PostgreSQL數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程的定義、使用方法及相關(guān)操作注意事項(xiàng),并附帶一個(gè)完整實(shí)例供大家參考,需要的朋友可以參考下
    2018-08-08
  • PostgreSQL流復(fù)制(主從復(fù)制)詳細(xì)教程

    PostgreSQL流復(fù)制(主從復(fù)制)詳細(xì)教程

    本文詳細(xì)介紹了PostgreSQL流復(fù)制技術(shù),流復(fù)制通過(guò)WAL日志實(shí)時(shí)同步主從庫(kù)數(shù)據(jù),支持異步和同步兩種模式,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-11-11
  • postgresql 中的參數(shù)查看和修改方式

    postgresql 中的參數(shù)查看和修改方式

    這篇文章主要介紹了postgresql 中的參數(shù)查看和修改方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01

最新評(píng)論

孝感市| 雅江县| 金寨县| 京山县| 卢龙县| 福鼎市| 岐山县| 西乌珠穆沁旗| 高雄市| 宾阳县| 绿春县| 斗六市| 岱山县| 抚州市| 上饶县| 无为县| 潞城市| 清水县| 景泰县| 天津市| 阿坝| 托克逊县| 博客| 富平县| 衡山县| 清苑县| 汶川县| 鄂州市| 宁武县| 大姚县| 玉田县| 桂平市| 吉木萨尔县| 收藏| 曲阜市| 通州区| 余干县| 阳东县| 佛学| 林甸县| 分宜县|