我有一個SQL 2005數據庫,我已經繼承了這個數據庫,在過去的15年中,這個數據庫已經增長到大約1700萬條記錄,現在速度非常緩慢。將聚集索引添加到現有表可以提高性能嗎?
表佈局看起來大約是這樣的:
id_column = nvarchar(20),indexed, not unique
column2 = nvarchar(20), indexed, not unique
column3 = nvarchar(10), indexed, not unique
column4 = nvarchar(10), indexed, not unique
column5 = numeric(8,0), indexed, not unique
column6 = numeric(8,0), indexed, not unique
column7 = nvarchar(20), indexed, not unique
column8 = nvarchar(10), indexed, not unique
(約5個欄,看起來幾乎相同,沒有索引)
的「ID」字段是在輸入值最終用戶的前端應用程序。
沒有定義的主鍵,並沒有列,其可以被組合以使一個唯一的行(除非所有列進行組合)。該表實際上是另一個表的「詳細信息」表,但不存在確保參照完整性的約束條件。
每列大量使用在「其中」條款的疑問,這就是爲什麼我認爲有每一個索引,或者是一個絕望的嘗試另一個DBA加快速度。
說了這麼多,我的問題是:能增加一個聚集索引做我任何好處在這一點?
如果我添加了聚集索引,我相信它會成爲一個新列,即,標識列?基本上,這是否值得麻煩?
欣賞任何建議。
可能屬於http://dba.stackexchange.com – 2014-12-27 15:28:59
你有什麼執行查詢的任何統計數據,也就是,其中列有最重要的?我試圖減少索引的數量,並使用包含在那些剩下的列來定位最頻繁的行標識符。 – tvanfosson 2014-12-27 15:36:01