在實際的生產執行環境中,很多客戶現場都看到開發人員和系統管理人員遇到很多有關於gbase 8s 資料庫引起的效能問題,進而被多次問起如何進行gbase 8s 資料庫效能調優,
包括:首先執行下面的初始檢查:
– 獲取直接使用者的使用反饋,確定效能目標和範圍。
– 獲取效能表現好與壞時的作業系統、資料庫、應用統計資訊。
– 對資料庫做一次全面健康檢查。
根據收集的資訊,以及對應用特性的了解,構建效能概念模型,明確效能瓶頸所在,以及導致效能的根本原因。
– 首先應該排除作業系統、硬體資源造成的瓶頸。
– 然後針對資料庫系統效能進行分析
– 必要時,還需要檢查應用日誌,因為系統效能問題也可能由於應用非 sql 部分造成瓶頸。
提出一系列針對的優化措施,並根據它們對效能改善的重要程度排序,然後逐一加以實施。不要一次執行所有的優化措施,必須逐條嘗試,逐步對比。
通過獲取直接使用者的反饋驗證調節是否已經產生預期的效果,否則,需要重新提煉效能概念模型,直到對應用特性了解進一步準確。
重複上述,直到效能達到目標或由於客觀約束無法進一步優化。
找到 cpu 占用最高的 sql
在 sysmaster 庫中執行
select sqx_estcost, sqx_sqlstatement
from syssqexplain
order
by sqx_estcost desc
注意:此時看到的僅僅是當前正在執行的 sql
需要多看幾次
onstat 命令
onstat -g act 得到當前正在執行的 sql
根據 rstcb 列
onstat -u |
grep 57c68220
從第三列 sessid 得到 session
onstat -g ses session 即可得到當時正在執行的 sql
一般多找幾個 threads 後,就基本可以確定問題 sql
得到 sql 後,利用 set explain on 分析其查詢路徑,看是否未利用索引,在對大表進行全表掃瞄,根據需要建立相應索引。
得到全表掃瞄較多的表
-- 系統順序掃瞄較多時,被多次順序掃瞄的大表,如果有,應該考慮增加索引
select
first
5 substr(t.tabname,0,
20) tabname,
substr(dbsname,0,
10) dbname,
nrows*rowsize*p.seqscans costs,
substr(p.seqscans,0,
8) seqscans,
substr(nrows,0,
8) nrows
from sysmaster:sysptprof p , systables t,sysmaster:sysprofile s
where p.tabname = t.tabname
and p.seqscans > s.
value/50
and s.name =
'seqscans'
--and s.value > 2000000 and nrows > 2000
orderby3
desc
利用 onstat –g ses 0 –r 5/ onstat –g stm 的輸出資訊,根據表名,找到可能的 sql 語句。由於以上獲取 sql 的辦法是有侷限的,如果無法獲取,建議通過檢視應用日誌或聯絡開發人員檢視源**的方式來找到。
利用 set explain on 分析其查詢路徑,確認是在對錶進行全表掃瞄,根據需要建立相應索引。
GBase8g向GBase8s資料庫進行遷移
gbase8g向gbase8s資料庫進行遷移背景 因業務需求,需要將以往專案使用的gbase8g資料庫中的資料,遷移到gbase8s資料庫中。在此記錄遷移遇到的一些問題和解決方法。目標將gbase8g的資料成功遷移到gbase8t後,原有程式功能可以正常執行 問題列表 自定義排序 1 問題描述 由於...
linux安裝GBase8s資料庫
環境需求 記憶體2g 硬碟80g 處理器2,centos6.6映象 初始化指令碼 一 資料庫軟體安裝 1 新建informix組和使用者,並為informix使用者設定密碼 2 上傳8s安裝包並完成解壓 3 使用root使用者執行.ids install進行軟體安裝。4 一路回車,到license確...
GBase8s 檢視邏輯日誌使用情況
使用資料庫管理員使用者執行onstat l命令用於監控物理日誌及邏輯日誌的使用情況,需關注已使用的邏輯日誌是否及時備份。gbasedbt node13 onstat l your evaluation license will expire on 2021 08 27 00 00 00 gbase ...