2014-11-06 88 views
0

我有十幾列的表。在10列上定義了非聚集非唯一索引。現在使用update語句,我正在根據某些條件更新我的表的某些列。一些正在更新的列有非聚集索引。更新聲明中的非聚集索引性能影響

現在刪除這些非聚集索引將優化我的更新語句?

+0

**是的,當然!**任何索引你將需要**維護**,所以它會導致任何操作的開銷(刪除,插入,更新) – 2014-11-06 08:20:13

回答

1

是的,會有很好的影響,但不知道有多少。

http://dba.fyicenter.com/faq/sql_server/CREATE_INDEX_Impact_on_Other_User_Sessions.html

https://dba.stackexchange.com/questions/50520/updating-an-indexed-column-performance-impact-in-sql-server

沒有接地規則多少在表中定義非聚集索引。理想情況下,4列或5列就足夠了,但沒有任何規則可以確定,每件事情都取決於數據庫的大小或者說不。的記錄。

索引用於搜索時,但在插入和更新的影響。 將索引分配給搜索中經常使用的列的唯一要考慮的事項。

爲了避免指數,你可以創建導致或計算列的列(見鏈接)。

意味着如果你經常需要計算或2列的總和顯示inventroy,那麼好以創建一個列

http://blogs.msdn.com/b/sqlcat/archive/2011/11/28/a-computed-column-defined-with-a-user-defined-function-might-impact-query-performance.aspx

http://www.codeproject.com/Articles/19641/Computed-Column-Specification-in-SQL-Server