SQL Server數(shù)據(jù)庫索引的正確選擇方案描述
以下的文章主要向大家描述的是SQL Server數(shù)據(jù)庫索引的正確選擇(Index Selection)方案,在實(shí)際操作中當(dāng)決定在表中創(chuàng)建哪些SQL Server數(shù)據(jù)庫索引時,我們要對應(yīng)用中查詢進(jìn)行仔細(xì)分析。具體包括,檢查查詢子句中包括了哪些列。
了解數(shù)據(jù)的分布情況來決定索引的用途;對執(zhí)行的查詢按照重要性和頻繁性進(jìn)行排序。你須注意的是,在創(chuàng)建SQL Server數(shù)據(jù)庫索引時,不要為了考慮單個的查詢而忽略了該表上的其他查詢(顧此失彼)。你應(yīng)該提出一組索引服務(wù)于你的表中最有代表性的查詢。
引用
建議:
SQL Profiler是一個用來幫助你來識別頻繁執(zhí)行和關(guān)鍵的查詢的有用的工具。我發(fā)現(xiàn),當(dāng)你著手處理一個新客戶的網(wǎng)站或識別需要調(diào)優(yōu)的應(yīng)用中有問題查詢時,SQL Profiler簡直是一個無價之寶。SQL Profiler允許你跟蹤SQL Server中正在執(zhí)行的進(jìn)程和查詢,也可以捕捉 runtime, reads and writes, execution plans,和其他進(jìn)程信息。
這些信息能幫助你識別哪些查詢的性能低下,哪些查詢經(jīng)常執(zhí)行,哪些索引經(jīng)常被查詢用到等等。
你能手工來分析這些信息,也可以保存下來,用SQL Server數(shù)據(jù)庫索引調(diào)優(yōu)向?qū)В↖ndex Tuning Wizard)進(jìn)行分析。
因?yàn)椴豢赡転樗械牧卸紕?chuàng)建索引,所以,索引首先要滿足你的應(yīng)用中最關(guān)鍵或者是被很多用戶頻繁執(zhí)行的查詢。如果你有一個查詢每月只運(yùn)行一次,值得創(chuàng)建一個索引來支持該查詢嗎?并且在該月的其他時間還需要進(jìn)行維護(hù)它。該月中,系統(tǒng)在此索引上花費(fèi)的時間毫無疑問超過了滿足該查詢的表掃描花費(fèi)時間。
如果,因?yàn)樘幚淼男枰?,你必須在該查詢運(yùn)行時需要索引,可以考慮在運(yùn)行查詢時創(chuàng)建一個SQL Server數(shù)據(jù)庫索引,而在運(yùn)行結(jié)束之后刪除該索引。只要創(chuàng)建索引的時間加上有索引的查詢執(zhí)行時間不超過無索引查詢執(zhí)行的時間,那么這也是一種可行的方法。

以上的相關(guān)內(nèi)容就是對SQL Server數(shù)據(jù)庫索引的選擇(Index Selection)的介紹,望你能有所收獲。
【編輯推薦】



















