【云小課】【第31課】如何初步定位GaussDB(for openGauss)慢SQL

      網友投稿 732 2025-04-04

      數據庫在日常使用的過程中會產生很多SQL語句,而如果有些SQL語句運行了很長時間還沒有結束,這些語句會消耗很多的系統性能。


      那么如何查詢到有哪些SQL語句影響了系統的運行呢?

      學了本節課程后,您就將會掌握初步定位GaussDB(for openGauss)慢SQL的方法。

      【云小課】【第31課】如何初步定位GaussDB(for openGauss)慢SQL

      操作場景

      數據庫執行SQL語句長時間無響應。

      數據庫CPU/內存壓力一直很大。

      操作步驟

      1. ??使用DAS或者gsql連接實例。

      2. ? 查詢系統中長時間運行的查詢語句。

      SELECT current_timestamp - query_start AS runtime, datname, usename, query FROM pg_stat_activity where state != 'idle' ORDER BY 1 desc;

      查詢后會按執行時間從長到短順序返回查詢語句列表,第一條結果就是當前系統中執行時間最長的查詢語句。返回結果中包含了系統調用的SQL語句和用戶執行SQL語句,請根據實際找到用戶執行時間長的語句。

      若當前系統較為繁忙,可以通過限制current_timestamp - query_start大于某一閾值來查看執行時間超過此閾值的查詢語句。

      SELECT query FROM pg_stat_activity WHERE current_timestamp - query_start > interval '1 days';

      3. ??設置參數track_activities為on。

      SET track_activities = on;

      當此參數為on時,數據庫系統才會收集當前活動查詢的運行信息。

      4. ? 從當前活動會話視圖查找問題會話的線程ID。

      SELECT datid, pid, state, query FROM pg_stat_activity;

      顯示類似如下信息,其中pid的值即為該會話的線程ID。

      datid | pid | state | query -------+-----------------+--------+------- 13205 | 139834762094352 | active | 13205 | 139834759993104 | idle | (2 rows)

      如果state字段顯示為idle,則表明此連接處于空閑,等待用戶輸入命令。

      如果僅需要查看非空閑的查詢語句,則使用如下命令查看:

      SELECT datid, pid, state, query FROM pg_stat_activity WHERE state != 'idle';

      5. ??分析長時間運行的查詢語句狀態。

      若查詢語句處于正常狀態,則等待其執行完畢。

      如果是因為SQL執行效率低,建議參考官方文檔優化SQL語句。

      若查詢語句不正常執行,則參考步驟6結束異常會話。

      6. ? 根據線程ID結束會話。

      SELECT pg_terminate_backend(139834762094352);

      顯示類似如下信息,表示結束會話成功。

      pg_terminate_backend ---------------------- t (1 row)

      顯示類似如下信息,表示用戶正在嘗試結束當前會話,此時僅會重連會話,而不是結束會話。

      FATAL: terminating connection due to administrator command FATAL: terminating connection due to administrator command The connection to the server was lost. Attempting reset: Succeeded.

      gsql客戶端使用pg_terminate_backend函數終止本會話后臺線程時,客戶端不會退出而是自動重連。

      云小課 云數據庫 GaussDB(for openGauss) 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:我要從很多表格中找到單位名字(表格里面找名字)
      下一篇:單元格引號怎么去除(怎樣清除單元格內隱藏的引號)
      相關文章
      亚洲精品福利视频| 久久夜色精品国产噜噜亚洲a| 亚洲制服中文字幕第一区| 亚洲精品国产电影| 亚洲男人天堂2018av| 亚洲欧洲日本精品| 亚洲精品国产精品乱码不卡√ | 亚洲欧洲美洲无码精品VA| 久久无码av亚洲精品色午夜| 亚洲国产成人久久精品大牛影视| 亚洲成a∨人片在无码2023| 亚洲欧美日韩中文无线码| 亚洲欧洲无码AV不卡在线| 亚洲高清毛片一区二区| 丰满亚洲大尺度无码无码专线| 色天使亚洲综合一区二区| 亚洲av无码专区在线观看亚| 爱情岛论坛亚洲品质自拍视频网站| 亚洲欧洲日产国码久在线| 亚洲成熟丰满熟妇高潮XXXXX| 亚洲高清国产拍精品熟女| 亚洲AV日韩精品一区二区三区| 亚洲AV日韩综合一区| 亚洲精品人成无码中文毛片| 亚洲中文久久精品无码| 亚洲成av人在线视| 久久久久亚洲精品日久生情| 亚洲欧洲日产专区| 亚洲综合精品第一页| 亚洲aⅴ无码专区在线观看 | 亚洲综合久久久久久中文字幕| 亚洲电影免费观看| 亚洲熟妇无码一区二区三区导航| 亚洲AV综合永久无码精品天堂| 亚洲AV永久无码精品一区二区国产| 亚洲午夜AV无码专区在线播放 | 亚洲乱码一区av春药高潮| 亚洲人成色4444在线观看| 亚洲AV之男人的天堂| 亚洲人成中文字幕在线观看| 亚洲黄色三级网站|