国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PostgreSQL高耗sql利器pg_stat_statements部署使用分享

IT那活兒 / 4180人閱讀
PostgreSQL高耗sql利器pg_stat_statements部署使用分享

PostgreSQL中高耗SQL的獲取可以使用pg_stat_statements模塊來獲取,pg_stat_statements模塊提供執行SQL語句的執行統計信息。


該模塊必須在postgresql.conf的shared_preload_libraries中增加pg_stat_statements來載入,因為它需要額外的共享內存。增加或移除該模塊需要將數據庫重啟。


當pg_stat_statements被載入時,它會跟蹤該服務器的所有數據庫的統計信息。該模塊提供了視圖pg_stat_statements以及函數pg_stat_statements_reset用于訪問和操縱這些統計信息。這些視圖和函數不是全局可用的,但是可以在指定數據庫創建該擴展。


1. 創建擴展模塊

創建extension模塊

postgres=# CREATE EXTENSION pg_stat_statements;

CREATE EXTENSION


2. 配置postgresql.conf參數文件

修改數據庫PG_HOME下的postgresql.conf文件


shared_preload_libraries= pg_stat_statements

pg_stat_statements.max= 10000 #pg_stat_statements中記錄的最大的SQL條目數,默認為5000

pg_stat_statements.track= all#記錄pg_stat_statements中的

pg_stat_satements.saveon   #用來控制數據庫在關閉的時候,是否將SQL信息保存到文件中。默認打開

pg_stat_satements.track_utilityon #追蹤SQL命令:DQLDDL 以及DQL,DDL以外的其他SQL命令(off只記錄DQLDDL)


如果沒有配置postgresql.conf文件中的shared_preload_libraries,那么將會提示如下報錯:

ERROR:pg_stat_statements must be loaded via shared_preload_libraries


3. 重啟數據庫

使用pg_ctl重新啟動數據庫,使擴展生效。

pg_ctl start -D $PGDATA -l /tmp/pg_rotate_logfile()


4. 驗證

進入數據庫,查看pg_stat_statements視圖,有數據則安裝成功。

psql -U postgres -d pgtestdb  

select * from pg_stat_statements;


5. pg_stat_statements視圖結構

該視圖的結構信息如下:


由于安全性原因,只有超級用戶和pg_read_all_stats角色的成員被允許看到其他用戶執行的查詢的SQL文本或者queryid。


6. pg_stat_statements使用

log_min_duration_statement這個參數可以控制閾值的時間,如果查詢花費的時間長于此閾值時間,則會記錄該SQL。默認為1s。可以使用

ALTER SYSTEM SETlog_min_duration_statement = 1000;

更改閾值記錄,單位為ms。


6.1、SQL執行時間獲取

我們可以在數據庫中看到平均運行時間最高的查詢,如下所示:

SELECT total_time, min_time,(total_time/calls) as avg_time, max_time, mean_time, calls, rows,query

FROM pg_stat_statements

ORDER BY mean_time DESC

LIMIT 10;


返回結果如下:


其中各項的涵義:

total_time:返回查詢的總運行時間(以毫秒為單位)。

min_time、avg_time和max_time:返回查詢的最小、平均和最大運行時間。

mean_time:使用total_time/調用返回查詢的平均運行時間(以毫秒為單位)。

Calls (調用):返回查詢運行的總數。

Rows(行數):返回由于查詢而返回或受影響的行總數。

Query(查詢):返回正在運行的查詢。默認情況下,最多顯示1024個查詢字節??梢允褂胻rack_activity_query_size參數更改此值。


7、重置pg_stat_statements統計信息

pg_stat_statements所獲得的統計數據一直累積到重置。

可以使用以下腳本進行按天備份。

備份完成后可以通過具有超級用戶權限的用戶連接到數據庫以重置統計數據來運行重置:

SELECTpg_stat_statements_reset();


#!/bin/bash

# this script is aimed to delete the expired data;

# and use the vacummdb command to clean up databases.

# Copyright(c) 2016--2016 yuxiangli All Copyright reserved.

echo "-----------------------------------------------------"

echo `date +%Y%m%d%H%M%S`

dates= `date +%Y%m%d`

psql -U hbdx_xxx -h 133.0.xxx.xx -d testdb -p xxx << EOF

create table public.pg_stat_statements_$dates as select * from public.pg_stat_statements;

SELECT pg_stat_statements_reset();

q

EOF

echo "-----------------------------------------------------"

echo `date +%Y%m%d%H%M%S`

echo "-----------------------------------------------------"

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/130094.html

相關文章

  • 新書推薦 |《PostgreSQL實戰》出版(提供樣章下載)

    摘要:作者譚峰張文升出版日期年月頁數頁定價元本書特色中國開源軟件推進聯盟分會特聘專家撰寫,國內多位開源數據庫專家鼎力推薦。張文升中國開源軟件推進聯盟分會核心成員之一。 很高興《PostgreSQL實戰》一書終于出版,本書大體上系統總結了筆者 PostgreSQL DBA 職業生涯的經驗總結,本書的另一位作者張文升擁有豐富的PostgreSQL運維經驗,目前就職于探探科技任首席PostgreS...

    Martin91 評論0 收藏0
  • 2016 年開發者應該掌握的十個 Postgres 技巧

    摘要:近日,正式發布了版本,該版本進行了大量的修復和功能改進。事實上,開發者獲得的所有標準會使它更加強大一個最好的例子是來自近年來的索引,它給提供了極大的性能提升。在最新發布的版本中,在中的輸出也更具可讀性。 【編者按】作為一款開源的對象—關系數據庫,Postgres 一直得到許多開發者喜愛。近日,Postgres 正式發布了9.5版本,該版本進行了大量的修復和功能改進。而本文將分享10個 ...

    HitenDev 評論0 收藏0
  • 開發利器之IntelliJ IDEA學習筆記

    摘要:旨在記錄自己的學習過程,方便日后遇到問題是及時查閱復習,另一方面也希望能幫助像筆者一樣從來沒使用過的人快速熟悉。 這篇文章主要記錄的是本人學習使用IntelliJ IDEA的筆記,可能不是特別的詳細。旨在記錄自己的學習過程,方便日后遇到問題是及時查閱復習,另一方面也希望能幫助像筆者一樣從來沒使用過IDEA的人快速熟悉IDEA。文章錯誤之處還請各位大佬批評指正。(文末有本人的微信公眾號,...

    馬永翠 評論0 收藏0
  • 探索Greenplum的實踐,了解新一代大數據處理利器

    摘要:上有主節點和從節點兩部分,兩者主要的功能是生成查詢計劃并派發,以及協調并行計算,同時在上保存著,這個全局目錄存著一組數據庫系統本身所具有的元數據的系統表。 前言:近年來,互聯網的快速發展積累了海量大數據,而在這些大數據的處理上,不同技術棧所具備的性能也有所不同,如何快速有效地處理這些龐大的數據倉,成為很多運營者為之苦惱的問題!隨著Greenplum的異軍突起,以往大數據倉庫所面臨的很多...

    supernavy 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<