informix的性能优化(一)
作者: CCBZZP
以下是我用INFORMIX DATABASE的一點体會,分享給大家,歡迎大家一起探討!
1. 日志緩沖
如果不怕丟失几個事務則最好用緩沖日志,這樣可以得到更好的性能.
如果數据安全性很重要,則最好用非緩沖日志.
2. DSS SERVER的优化有三個目標:
1>. 總查詢通過量最大化
可以將ONCONFIG文件中的PDQPRIORITY設置限制小于25%
2>. 每個查詢處理時間最小化
可以將ONCONFIG文件中的PDQPRIORITY設置限制大于50%
3>. 平衡优先級
可以將ONCONFIG文件中的PDQPRIORITY設置限制大于25%,小于50%
3. OLTP SERVER的优化有三個目標:
1>. 更新活動通過量最大化
使用緩沖日志
將檢驗點間隔最大化,周期最小化
可以將ONCONFIG文件中的PDQPRIORITY設置限制為0
增加物理日志長度
最大化寫入緩沖百分比
其實以上的目標也是會矛盾的,關鍵在于如何取舍.
2>. 查詢活動通過量最大化
最大化BUFFERS
可以將ONCONFIG文件中的PDQPRIORITY設置為0或1
最大化讀取緩沖百分比
3>. 事務安全最大化
最小化CKPTINTVL
使用非緩沖日志
使用冗余磁盤和I/O路徑
減少物理日志長度
4. 簡單查詢SERVER的优化有三個目標:
最大化BUFFERS,它一般>=40%RAM
可以將ONCONFIG文件中的PDQPRIORITY設置<25%
5. 內存問題
INFORMIX可以使用的內存是不限制的,給多少用多少,下面以IDS7.X為例:
緩沖區最多 768000 PAGES (OS 3GBW/4KB)
DSS內存最多1G
鎖最多8000000
邏輯日志緩沖區 3個 LOGSIZE最大2G, TOTAL 6G
物理日志緩沖區 2個 PHYSFILE最大2G, TOTAL 4G
數据字典緩沖區 沒有限制,可以調整參數DD_HASHSIZE和 DD_HASHMAX
onstat -g dic确定數据字典緩沖區是否接近容量
存儲過程緩沖區 沒有限制,可以調整參數PC_HASHSIZE和PC_POOLSIZE
onstat -g prc确定存儲過程緩沖區是否接近容量
數据分布緩沖區 可以調整參數DS_HASHSIZE和DS_POOLSIZE
onstat -g dsc确定數据分布緩沖區是否接近容量
6. 磁盤問題
磁盤是越多越好的
多些驅動器比大的驅動器好
采取RAID磁盤陣列
7. 內核限制
不同的OS有不同的內核,這是可以調整的.
8. 內存參數
onstat -g seg确定共享內存分配和查詢內存分區
SHMVIRTSIZE确保最低正常負荷內存,如果消息日志文件中表示動態新共享內存的消息很多,則要增加此參數的數值.
SHMADD至少應為SHMVIRTSIZE的10%
SHMTOTAL除非很小的系統,否則社為0讓內存增長.
9. 分塊表和大量區域
用oncheck -pt 和 oncheck -pe檢查表的區域數及其在磁盤上的布局
一般說表格超過33個區域系統比較慢,可以壓縮表格來解決
1>. 刪除表格重建並重新裝入數据
2>. 重新創建索引
3>. 將表和索引放在不同的DBSPACE
歡迎大家一起探討!
待續...