大數據“復活”記
739
2025-03-31
A. 背景:客戶在使用DWS時,經常會出現執行一個sql很久不返回結果,導致業務性能低下,從而報障。
現象:一個業務sql執行很久不出結果
定位方法:DWS在經常變化的表需要定期做統計優化查詢,具體場景如下:
1 經常變化的表,如果經常insert語句到表中,需要做analyze 表,具體語句為
Analyze?tablename;
2 經常變化的表,如果經常刪除delete數據,需要做valcumm full 表,具體語句為
Valcumm?full?tablename
注:執行valcumm full 語句時注意不能有其他任務在跑。
注:定位技巧:查詢表大小
select?*?from?pg_size_pretty(pg_table_size('tablename'));
判斷方法:如果表非常大,而實際只有很少數據,和真實大小對應不上,那么應該進行valcumm full 表進行磁盤碎片整理。
B. 背景:客戶在使用DWS時,會出現各種原因sql阻塞被鎖,導致業務sql一直卡主執行時間長。
定位方法:pg_stat_activity表記錄了后臺正在運行的sql相關信息
具體相關定位方法如下:
1 查詢后臺活躍sql
SELECT?pid,datname,?usename,?state,waiting,?query?FROM?pgxc_stat_activity?WHERE??state?<>?'idle';
2 查詢后臺業務有鎖的sql
SELECT?pid,datname,?usename,?state,waiting,?query?FROM?pgxc_stat_activity?WHERE??state?<>?'idle'?and?waiting=true;
3 判斷方法如下
a 如果沒有鎖,那么查找相關業務sql,按照上面A的判斷方法進行處理。
b 如果有鎖,那么查找出pid字段,使用如下函數,結束任務,釋放鎖
SELECT?pg_terminate_backend(pid);
數據倉庫服務 GaussDB(DWS) SQL
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。