2012-05-07 60 views
1

在Oracle數據庫中,可以創建物化視圖,該視圖可以在特定時間間隔自動刷新。這怎麼可以在SQL Server中使用索引視圖或其他技術來實現? 底層表非常大,基表中的變化非常頻繁。創建在特定時間自動編譯的索引視圖

回答

1

據我所知,索引視圖將始終返回當前結果。無需安排更新,因爲如果底層數據發生變化,DBMS將自動刷新視圖。

如果您不想承擔維護索引視圖的開銷,可以在不需要時刪除它,然後在使用它之前重新創建(例如在每日/每週/每月報表運行之前)。

+0

如果底層表非常龐大,該怎麼辦 – kinkajou

+1

基準索引視圖創建開銷和時間。 Oracle允許的定期更新肯定比MSSQL提供的選項更靈活(總是會產生一點開銷,以使索引視圖保持最新狀態,或者定期承擔全部開銷以根據需要重新創建)。 MSSQL不提供增量式的選項來定期更新索引視圖。如果你真的需要這樣做,一種選擇是使用一個你定期更新的表格,例如通過調度存儲過程。 –

+0

讓我試一下,非常感謝您的幫助:) – kinkajou

0

我認爲這可以通過使用腳本和SQL Server代理作業的組合來實現。一旦在索引中編寫了重新組織/重新構建操作,就可以使用相同的腳本插入SQL Server代理作業以按計劃運行。

另一種選擇是查看數據庫維護計劃。根據基礎表的大小,您可以嘗試創建分區索引,以便索引維護變得輕鬆一些。