有人可以用簡單的英語向我解釋視圖上的索引是如何工作的嗎?我對錶格上的索引有一個相當簡單的理解;如何索引一個視圖的工作方式不同於讓底層表上的索引自然而然地完成它們的工作?索引如何在視圖上工作?
14
A
回答
8
假設你有限制表中某些行一個觀點:
create view dbo.vw_HotProducts
as
select * from dbo.Products where Hot = 1
現在,如果你對這個觀點創建索引,該指數只包含熱門產品。您可以將其與將視圖結果存儲在臨時表中進行比較。這對於具有多個連接的複雜查詢可能非常有用;基本上他們的輸出被緩存。
索引視圖的最大的缺點是它們被重新創建每次基礎表中數據的變化。這將索引視圖的使用限制在不經常更改的數據上,通常在數據倉庫或商業智能環境中使用。
5
見http://msdn.microsoft.com/en-us/library/aa258260(SQL.80).aspx
在 視圖創建唯一聚集索引提高查詢性能 因爲視圖存儲在數據庫 以同樣的方式與 表中的聚簇索引存儲。
該視圖是從適當的視圖到一個表變換。視圖定義用於更新此表。
甲骨文稱這些「物化視圖」。
6
本身的視圖不實或「堅持」,且沒有性能優勢。它只是一個宏觀that's expanded.
添加一個索引,它實際存在(堅持),所以優化器會考慮使用它。那不是宏。
我敢肯定,甲骨文稱他們爲「物化視圖」,這是一個更好的名字。
一個FYI相關:計算列有做同樣的事情一個持久選項...
+0
僅供參考 - 謝謝 – 2009-11-12 14:02:31
相關問題
- 1. SQL Server視圖索引如何在底層工作?
- 2. 如何在索引視圖上創建空間索引?
- 3. 部分視圖在索引視圖中不能正常工作。
- 4. 如何實現在tableView上添加索引搜索視圖?
- 5. DB索引如何工作?
- 6. numpy索引如何工作
- 7. geohash索引如何在Lucene中工作
- 8. 索引在MySQL中如何工作?
- 9. neo4j索引如何在幕後工作?
- 10. 索引如何在magento中工作?
- 11. 在視圖上創建全文索引
- 12. 錯誤將不會在窗體內工作索引視圖
- 13. window.location只在索引頁上工作
- 14. Z-索引不工作在菜單上
- 15. 索引和倒排索引在solr中如何工作?
- 16. 在索引的可用視圖中選擇索引的操作
- 17. 如何在視圖上實現聚簇索引
- 18. 如何在視圖上創建聚簇索引
- 19. MVC3:如何在_Layout上呈現索引視圖和局部視圖
- 20. 如何在MVC3的索引視圖中使用編輯視圖
- 21. 搜索視圖在android中不工作
- 22. 如何從索引視圖顯示zend framewrok上的圖像?
- 23. UNIQUE索引如何在多列上工作?
- 24. 谷歌索引如何工作以及網站地圖如何工作?
- 25. Zend的工具CLI總是創建索引操作索引視圖
- 26. 唯一索引不能在Dse圖上工作
- 27. 如何創建這個索引視圖?
- 28. Rails - 如何編寫索引視圖?
- 29. 焦點引擎不在集合視圖單元上工作
- 30. jquery on hover無法在引導樹視圖上工作
我們可以創建基於視(非鍵)列的索引? – 2009-11-12 11:06:13
@Q8-編碼器:視圖上的索引必須是聚簇且唯一的。所以你可以選擇一個非鍵列,只要它在視圖結果中唯一標識一行 – Andomar 2009-11-12 11:16:01
@Andomar:在任何數據改變時重新創建索引視圖是不正確的。 SQL Server將修改實例化視圖以反映對基表的任何更改。這就是爲什麼SQL Server對可以實現哪些視圖設置太多限制:幾個聚合,沒有外部連接,沒有聯合,沒有自連接等。當然,它只能通過INSERT/DELETE修改數據,而不是更新。但是我已經看到了在連接百萬行表的OLTP應用程序中成功使用的索引視圖。 YMMV – Tadmas 2009-11-12 13:38:16