2012-01-23 37 views
1

我需要在SQL Server數據庫中禁用自動索引,基本上我想控制何時發生索引(例如,在晚上)。在sql server中禁用自動索引

我不想用表來禁用索引,比如像:

ALTER INDEX [IX_NAME] ON SCHEMA.TABLE DISABLE 

有誰知道如何實現這一目標?

+0

你在談論什麼樣的自動索引? – JNK

+2

您可以禁用一個索引 - 但它從來沒有使用(也從未更新)。如果您的索引已啓用,即用於加快查詢速度,則**不能**關閉自動索引維護。這是SQL Server--它爲你做到了這一點,它不像在dBase的日子裏,你手動更新索引是你的負擔。 –

+0

這正是我想要的......我相信Oracle也支持它。 – rpvilao

回答

2

您可以按照概述的here禁用索引,但在重新啓用它之前,它不會用於查詢數據。您不能禁用索引並仍然在查詢中使用索引,否則可能導致結果不正確或不一致。

+0

你是對的,但這不是我相信的藉口。在Oracle中,您可以指定何時重建索引。如果引擎應該使用索引,跟蹤並不難。它只是將其標記爲已損壞或類似的東西... – rpvilao

+1

我很想看到關於這方面的Oracle文檔。我很難相信它支持既可查詢又延遲重建的索引。 –

+0

最近我能想到的是,Oracle支持按需刷新物化視圖。 https://docs.oracle.com/database/121/DWHSG/refresh.htm#DWHSG015就我所知,SQL Server不適用於其索引視圖。 –