2012-04-21 69 views
1

當我創建一個全新的數據庫和/或表時,應該遵循什麼樣的索引策略。因爲我不會有任何用戶查詢來分析或要求找到主要使用的列。什麼應該是我的索引戰略/(哪些列應該框住聚集,哪些列應該參與非聚集)?在這種情況下我應該如何繼續?新表上的索引策略 - SQL Server

+1

我不知道如何回答這個問題。索引策略通常基於已知(或假定)的一組查詢和更新操作來構建。如果您構建的數據庫僅發生插入操作,則無論是否索引或基於遞增值的單一(聚集)索引都將是最有效的。在開始查詢時它不起作用,但是如果不知道需要支持哪種類型的查詢,則無法建立索引策略。 – 2012-04-21 20:13:09

回答

1

事先不知道什麼,你能做的最好的就是慷慨申請指標。這會大大降低寫入性能,但至少可以很好地處理意外的查詢。

1

索引當前在函數/存儲過程中使用的列。一旦您的應用程序開始使用,您可以相應地進行調整並運行調整嚮導。

1

當涉及新的開發項目與生產支持時,在索引進入優先級列表時很難有絕對的答案。就新的開發項目而言,在數據庫設計,索引策略和數據訪問代碼上花費同等時間是明智的。沒有它,應用程序可能成爲一個需要在生產環境中引起高度關注的維護噩夢。在很多方面,如果數據庫被認爲是一個預計永遠沒有任何關注地運行的黑匣子,說起來容易做起來難。如果你面對這個問題,那麼有必要首先改變這種心態,並確保時間,精力和資源正確地滿足向前發展的數據庫需求。

對於生產應用程序,查看索引和查詢計劃在發生性能問題時應該是高優先級。在很多方面,改變或添加索引應該是經過審查,分析,測試和部署的許多項目之一,而不是考慮索引是解決性能問題的靈丹妙藥。

索引的另一個重要考慮因素是隨着應用程序的更改,索引可能也需要更改。不要認爲索引停滯不前,而是要考慮索引含義的代碼。因此,隨着應用程序的變化,不要害怕改變,測試和部署改進的索引策略。

你可以閱讀這裏進一步http://www.mssqltips.com/sqlservertip/1452/sql-server-index-checklist/