SQL Server數據庫索引的正確選擇方案描述
以下的文章主要向大家描述的是SQL Server數據庫索引的正確選擇(Index Selection)方案,在實際操作中當決定在表中創建哪些SQL Server數據庫索引時,我們要對應用中查詢進行仔細分析。具體包括,檢查查詢子句中包括了哪些列。
了解數據的分布情況來決定索引的用途;對執行的查詢按照重要性和頻繁性進行排序。你須注意的是,在創建SQL Server數據庫索引時,不要為了考慮單個的查詢而忽略了該表上的其他查詢(顧此失彼)。你應該提出一組索引服務于你的表中最有代表性的查詢。
引用
建議:
SQL Profiler是一個用來幫助你來識別頻繁執行和關鍵的查詢的有用的工具。我發現,當你著手處理一個新客戶的網站或識別需要調優的應用中有問題查詢時,SQL Profiler簡直是一個無價之寶。SQL Profiler允許你跟蹤SQL Server中正在執行的進程和查詢,也可以捕捉 runtime, reads and writes, execution plans,和其他進程信息。
這些信息能幫助你識別哪些查詢的性能低下,哪些查詢經常執行,哪些索引經常被查詢用到等等。
你能手工來分析這些信息,也可以保存下來,用SQL Server數據庫索引調優向導(Index Tuning Wizard)進行分析。
因為不可能為所有的列都創建索引,所以,索引首先要滿足你的應用中最關鍵或者是被很多用戶頻繁執行的查詢。如果你有一個查詢每月只運行一次,值得創建一個索引來支持該查詢嗎?并且在該月的其他時間還需要進行維護它。該月中,系統在此索引上花費的時間毫無疑問超過了滿足該查詢的表掃描花費時間。
如果,因為處理的需要,你必須在該查詢運行時需要索引,可以考慮在運行查詢時創建一個SQL Server數據庫索引,而在運行結束之后刪除該索引。只要創建索引的時間加上有索引的查詢執行時間不超過無索引查詢執行的時間,那么這也是一種可行的方法。
以上的相關內容就是對SQL Server數據庫索引的選擇(Index Selection)的介紹,望你能有所收獲。
【編輯推薦】