如何減少CUP使用
TechTarget中國 發(fā)表于:13年05月03日 12:57 [轉(zhuǎn)載] 網(wǎng)界網(wǎng)
如何減少CUP使用
如果癥狀表現(xiàn)為大量的CPU資源請求,那么原因是什么?在SQL語句層面可能包括:
•糟糕的SQL代碼;
•糟糕的應(yīng)用程序代碼;
•交易應(yīng)用的提交策略不佳;
•過度使用批量卸載/加載/備份流程;
•頻繁使用RunStats;
•對緩沖池大小的選擇不當(dāng);
•對BP頁集選擇的不當(dāng)分配;
•排序池/RID池的內(nèi)存分配不足;
•內(nèi)存管理不當(dāng)導(dǎo)致實際存儲的分頁;
•對DB2子系統(tǒng)的配置不當(dāng);
•DB2配置為最大I/O吞吐量,而非最小CPU利用率;
•DB2配置為高性能寫訪問;
•頻繁執(zhí)行備份;
•執(zhí)行LOAD ... LOG YES。
進行SQL語句調(diào)優(yōu)將解決CPU容量問題,在正確得出類似結(jié)論之前,DBA必須首先收集相關(guān)數(shù)據(jù)。甚至還需要做更多的工作來證明通過給DB2子系統(tǒng)添加CPU容量可以增加吞吐量。
我并不是說SQL調(diào)優(yōu)總是在浪費時間,如果你不衡量在這一過程中資源耗費和節(jié)省的狀況,你又怎么能知道這樣做值不值得呢?作為一個管理者,我更傾向于DBA能將它們寶貴的時間投入到災(zāi)難恢復(fù)準(zhǔn)備,數(shù)據(jù)可用性和安全性等這些高優(yōu)先級的問題中去。
開發(fā)人員編寫性能不佳的SQL代碼
這可以說是一個普遍的事實存在。DBA可以給開發(fā)人員提供最佳實踐以及SQL實現(xiàn)標(biāo)準(zhǔn),讓他們知道好的SQL開發(fā)人員應(yīng)該怎樣寫代碼,然后提供SQL代碼示例。
另一個常被忽視的問題是: IT部門有對用戶的資源成本負(fù)責(zé)嗎?也就是說,他們有對CPU和磁盤存儲的使用進行支付嗎?對于事務(wù)/應(yīng)用程序有沒有訂立服務(wù)水平協(xié)議以及配套的處罰措施呢?如果不存在任何的這樣的機制,那么程序開發(fā)人員就會沒有動力去編寫性能優(yōu)良的代碼。
那么我到底要不要做SQL調(diào)優(yōu)?
要擺脫疲于應(yīng)付SQL調(diào)優(yōu)的狀態(tài)就要做根本原因分析。為什么不良SQL總是不斷洶涌而來?難道是開發(fā)人員寫代碼太糟糕?如果是這樣,也許解決之道就是培訓(xùn),或是讓他們自己進行調(diào)優(yōu)。工具是否會自動生成性能不佳的SQL呢?答案可能會比較復(fù)雜,因為它會涉及到工具的升級,索引管理,RunStats管理,甚至是DB2子系統(tǒng)調(diào)優(yōu)等諸多方面。
最后,DB2子系統(tǒng),數(shù)據(jù)共享以及操作系統(tǒng)配置是最常影響應(yīng)用程序和SQL性能的。如果你花費大量時間在SQL查詢調(diào)優(yōu)上,也僅僅是發(fā)現(xiàn)系統(tǒng)參數(shù)值造成這樣的結(jié)果,難道你不會覺得煩躁嗎?難道你就真的希望每每配置發(fā)生改變就要一遍又一遍的對單條不良SQL語句進行調(diào)優(yōu)嗎?
總結(jié)
如果DBA花費時間去做SQL調(diào)優(yōu)而不是修復(fù)導(dǎo)致問題的根本原因,那么支持人員和IT部門要如何成長?你又如何才能有機會變得積極主動呢?企業(yè)則會越來越依賴于各種問題專家。
如果你花費職業(yè)生涯來做SQL調(diào)優(yōu),你可能會成為這方面的專家。這意味著類似子系統(tǒng)配置,新功能實施,協(xié)調(diào)災(zāi)難恢復(fù)等工作就會被交給其他人去做。這對于DBA職業(yè)的發(fā)展其實是很不利的。
公司簡介 | 媒體優(yōu)勢 | 廣告服務(wù) | 客戶寄語 | DOIT歷程 | 誠聘英才 | 聯(lián)系我們 | 會員注冊 | 訂閱中心
Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.