成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

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

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


該模塊必須在postgresql.conf的shared_preload_libraries中增加pg_stat_statements來載入,因?yàn)樗枰~外的共享內(nèi)存。增加或移除該模塊需要將數(shù)據(jù)庫重啟。


當(dāng)pg_stat_statements被載入時,它會跟蹤該服務(wù)器的所有數(shù)據(jù)庫的統(tǒng)計信息。該模塊提供了視圖pg_stat_statements以及函數(shù)pg_stat_statements_reset用于訪問和操縱這些統(tǒng)計信息。這些視圖和函數(shù)不是全局可用的,但是可以在指定數(shù)據(jù)庫創(chuàng)建該擴(kuò)展。


1. 創(chuàng)建擴(kuò)展模塊

創(chuàng)建extension模塊

postgres=# CREATE EXTENSION pg_stat_statements;

CREATE EXTENSION


2. 配置postgresql.conf參數(shù)文件

修改數(shù)據(jù)庫PG_HOME下的postgresql.conf文件


shared_preload_libraries= pg_stat_statements

pg_stat_statements.max= 10000 #pg_stat_statements中記錄的最大的SQL條目數(shù),默認(rèn)為5000

pg_stat_statements.track= all#記錄pg_stat_statements中的

pg_stat_satements.saveon   #用來控制數(shù)據(jù)庫在關(guān)閉的時候,是否將SQL信息保存到文件中。默認(rèn)打開

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. 重啟數(shù)據(jù)庫

使用pg_ctl重新啟動數(shù)據(jù)庫,使擴(kuò)展生效。

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


4. 驗(yàn)證

進(jìn)入數(shù)據(jù)庫,查看pg_stat_statements視圖,有數(shù)據(jù)則安裝成功。

psql -U postgres -d pgtestdb  

select * from pg_stat_statements;


5. pg_stat_statements視圖結(jié)構(gòu)

該視圖的結(jié)構(gòu)信息如下:


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


6. pg_stat_statements使用

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

ALTER SYSTEM SETlog_min_duration_statement = 1000;

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


6.1、SQL執(zhí)行時間獲取

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

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;


返回結(jié)果如下:


其中各項(xiàng)的涵義:

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

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

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

Calls (調(diào)用):返回查詢運(yùn)行的總數(shù)。

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

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


7、重置pg_stat_statements統(tǒng)計信息

pg_stat_statements所獲得的統(tǒng)計數(shù)據(jù)一直累積到重置。

可以使用以下腳本進(jìn)行按天備份。

備份完成后可以通過具有超級用戶權(quán)限的用戶連接到數(shù)據(jù)庫以重置統(tǒng)計數(shù)據(jù)來運(yùn)行重置:

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 "-----------------------------------------------------"

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/130094.html

相關(guān)文章

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

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

    Martin91 評論0 收藏0
  • 2016 年開發(fā)者應(yīng)該掌握的十個 Postgres 技巧

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

    HitenDev 評論0 收藏0
  • 開發(fā)利器之IntelliJ IDEA學(xué)習(xí)筆記

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

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

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

    supernavy 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

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