我想創建一個視圖上的索引,但我需要確保在創建索引時仍然可以讀取數據。我讀的是article建議創建一個非聚集索引時,如果指定ONLINE = ON選項(如下所示)中的數據仍然可讀:在SQL Server 2005表上創建非聚集索引是否阻止選擇?
CREATE UNIQUE CLUSTERED INDEX CLUST_IDX_SQLTIPS
ON SQLTips (tip) with (ONLINE=ON)
我是否理解正確嗎?在我創建索引時需要可讀的視圖上創建索引之前,我是否應該注意到任何潛在問題?
謝謝我沒有意識到這一點。我計劃在此視圖上創建兩個索引,即您提到的初始羣集,以及之後的非羣集。無論如何,當我創建初始羣集時,您是否知道將數據保存在我的視圖中是可讀的? 順便說一句我正在運行企業版。 – 2009-12-16 18:36:27
聚簇索引視圖將鎖定表中的行,從而阻止讀取鎖定的行(在默認序列化級別下)。桌子有多大?我們是說幾秒鐘還是幾小時的索引創建時間?您可以考慮啓用讀取提交快照,這將允許SELECT不受影響。但是這會對系統產生全局影響,特別是對tempdb的影響,所以您應該事先定義好測試。 – 2009-12-16 18:43:17
該表擁有超過900萬條記錄。我認爲這些索引大約需要15分鐘才能創建。如果人們無法閱讀15分鐘,那麼我會遇到問題。您能否更具體地說明啓用讀取操作會對系統造成的影響?你會如何推薦先測試? – 2009-12-16 18:47:55