SQL Server 2008 效能測試和調優

iSQlServer發表於2009-12-25
 為應用程式設計資料庫,你要考慮你的所作所為將會對資料庫的效能有什麼影響先;執行資料庫後,客戶不斷的抱怨‘應用程式(資料庫)跑的慢’,你又要優化資料庫和應用程式的效能。這就需要資料庫效能測試和調優方面的知識和經驗。掌握其中的奧妙,你就可以發現,分析和解決問題一條龍。

 

  你可能找到了專用工具來測試壓力的條件下與資料庫的效能和指標等等,但本文只談Sql Server 2008自帶的資料庫效能調優工具。SQL Server的系統管理能力相當強的,也有一套用於效能監控、故障排除和調整的工具,具體你可以查閱相關資料。我們先來學習資料庫引擎調整顧問(Use Database Engine Tuning Advisor,DTA)。

 

  SQL Server 2005 將之前版本的索引向導(Index Tuning Wizard)單獨擴增成一個應用程式,稱為“Database Engine Tuning Advisor”。協助使用者在尚未深入瞭解資料庫結構、索引、資料分佈統計、索引檢視(Indexed View)和資料分割槽的執行原理之前,就能夠有效地建立這些物件以提升系統效能,而不至於誤用導致效能更差。

 

  這個東西在SQL Server Management Studio(或Express Edition)裡,其功能:

  洞察資料庫的現有索引(indexes)和分割槽(partitions)結構,並通過建立適當的索引和分割槽結構來獲取與提高資料庫效能有關的建議。除了優化索引結構外,DTA 可以推薦新的物理資料結構,包括分割槽。DTA 還能夠對多臺伺服器進行調整,並限制調整演算法執行的時間。可以通過命令列以及圖形化工具使用 DTA。命令列工具能夠利用高階指令碼選項。

 

“Database Engine Tuning Advisor is part of the overall system and allows you to automate the physical design of your databases. As mentioned, Database Engine Tuning Advisor is tightly connected to SQL Server Profiler, which can display information about several server activities in real time, or it can create filters to focus on particular events of a user, types of commands, or Transact-SQL statements.” --《Microsoft SQL Server 2008: A Beginner’s Guide》

 

  如果上面太概念了,不好理解,那麼看下面:

  1. SQL指令是否使用過多的運算?

  2. SQL指令是否有子查詢?

  3. SQL的Where條件是否過度複雜?

  4. Table是否有建立索引鍵?

  5. Transaction是否包的太大,導致執行過長?

  6. 資料量是否太大?

  以上大致是我們在處理資料庫效能時很常見到的一些問題,但若需要一句SQL一句SQL去分析,如果我們的系統SQL指令有上萬句,該從何處去分析呢?Tuning Advisor這工具可以幫我們分析我們對資料庫執行的SQL指令,並給予索引的最佳化建議。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-623612/,如需轉載,請註明出處,否則將追究法律責任。

相關文章