資訊系統的效能調校一直是個大問題,不管是電信交換、門診、金融/證券交易或售票等公眾系統,還是企業內的電子郵件、ERP、CRM、線上分析等,系統多到不可勝數,所使用的IT技術五花八門,而且牽涉的領域知識龐大而博雜。我們不得不戒慎恐懼,上線前,多方觀察與測試,上線後,詳加記錄與監控,如此才能防微杜漸,避免突如其來的效能問題拖垮系統。

效能問題無可避免

事實上,我們十之八九會設計或撰寫出不佳的模組,這在IT研發上是常態,設計者應該勇於嘗試並能立刻認錯,找出問題點迅速改正,不要在錯誤的設計上,以違章建築的方式修補,如此一來,才可以在一次次修正中,締造良好的穩定性、效能與擴充性。

然而,系統各環節的技術各自演變,因此前端介面、中間應用層和後端基礎服務伺服器的技術不斷創新,再加上企業與承包商的開發團隊持續地走馬換將,在系統中留下大量的黑盒子。

如果無法透過各種追蹤工具檢驗盒子的I/O,找出關鍵性瓶頸,又無法分散負載/平行運算,使得Scale Up/Out都失效,那只有試著打開盒子,從各項細節中,一點一滴摳出效能來。

找出癥結,需要優質團隊合作

曾參與許多效能調校的案子,我認為,要做好這項工作需要知識、經驗、耐心、細心以及優質團隊。當系統效能變差時,不要妄加猜測瓶頸點,一定要善用各種軟體工具,讓數據說話。這需要團隊合作,因為沒有人能包山包海地了解各種技術。

若想做好效能調校,團隊成員平常需在自己的崗位上,累積廣泛且深入的知識和技術。多數大型系統的效能瓶頸點都不會顯而易見,而且通常不只一個。所有表象都是各元素互相影響後的綜合行為,你需要小心翼翼地抽絲剝繭、深入探究問題,才能找出問題核心,並建立測試模型證明該問題是最大瓶頸點。釐清問題之後,就算自己無解,至少還能求教於他人。

涵蓋需要長期累積的調校知識

在此介紹資料庫專業人員一本好書:《Inside Microsoft SQL Server 2005:Query Tuning and Optimization》,內容保有Inside SQL Server 2005系列一貫的深度,重要概念都由參與研發的團隊成員撰寫,並由從事教學、顧問多年的工作者執筆內容廣泛的章節。本書主題圍繞在索引、執行計畫的產生與重用、交易鎖定以及使用工具、研判問題等,是本進階技術書。

本書共分6個章節,主要的敘述模式為成因、觀察、解法。先讓你了解某項技術對於系統效能上的好處,以及有哪些因素會妨礙該技術的施行,然後建議你需要透過什麼方式觀察狀況變差、並如何排除這些因素。

前兩章是效能調校相關的基本知識,第三章則解說執行計畫,難度大幅增加,包括常用查詢的運作方式,例如掃描(Scan)和搜尋(Seek)資料、連結(Join)、彙總、子查詢(Subquery)等,藉由解釋執行計畫的形成和運算子的邏輯,探究資料庫核心引擎的運作。

第四章主要談索引、統計、提示(hint)。最後一章討論交易、鎖定與死結。一直以來,這是筆者處理效能問題的主要議題,只要系統有眾多使用者,又需考量資料完整性,就逃不掉要深入研究交易和鎖定。

我們恐怕無法一口氣讀完本書。初次閱讀時,會難以理解作者所解釋的許多觀念,需要耐心地反覆閱讀。另外,最好配合SQL Server 2005 Management Studio,並安裝Northwind、Northwind2等範例資料庫。
 

Inside Microsoft SQL Server 2005:Query Tuning and Optimization

Kalen Delaney/著

Microsoft Press出版

售價:49.99美元

推薦:Amazon四顆半星

 

《作者簡介》

胡百敬

現任職恆逸資訊教育訓練處資深講師,Ascentn、睿智資訊與臺灣微軟技術顧問。著有《SQL Server 2005 T-SQL 資料庫設計》等書,並為專欄作家。

 

熱門新聞

Advertisement