用SQL Server 2005索引檢視表提高效能二

來源:互聯網
上載者:User

視圖限制

如要在 SQL Server 2005 中的視圖上建立一個索引,相應的視圖定義必須包含:

ANY、NOT ANY                        OPENROWSET、OPENQUERY、OPENDATASOURCE

不精確的(浮型、實型)值上的算術              OPENXML

COMPUTE、COMPUTE BY                     ORDER BY

CONVERT 產生一個不精確的結果                OUTER 聯結

COUNT(*)                          引用帶有一個已禁用的叢集索引的基表

GROUP BY ALL                        引用不同資料庫中的表或函數

派生的表(FROM 列表中的子查詢)               引用另一個視圖

DISTINCT                          ROWSET 函數

EXISTS、NOT EXISTS                     自我聯結

彙總結果(比如:SUM(x)+SUM(x))上的運算式          STDEV、STDEVP、VAR、VARP、AVG

全文謂詞 (CONTAINS、FREETEXT、CONTAINSTABLE、FREETEXTTABLE) 子查詢

不精確的常量(比如:2.34e5)                可為空白的運算式上的 SUM

內嵌或資料表值函式                       表提示(比如:NOLOCK)

MIN、MAX                          text、ntext、image、filestream 或 XML 列

不具有確定性運算式                    TOP

非 unicode 排序                       UNION

SQL Server 2005 可偵測的矛盾情況表示視圖將為空白(比如,當 0=1 及 ...)

注意 索引檢視表可能包含浮型和實型列;但是,如果這類列為非永久性的計算資料行,則不能包含在叢集索引鍵中。

GROUP BY 限制

如果存在 GROUP BY,VIEW 定義為:

一定包含 COUNT_BIG(*)。

一定不包含 HAVING、CUBE、ROLLUP 或 GROUPING()。

這些限制僅適用於索引檢視表定義。即便不能滿足上述 GROUP BY 限制,查詢也可以在其執行計畫中使用索引檢視表。

有關索引的要求

執行 CREATE INDEX 語句的使用者必須是視圖所有者。

如果視圖定義包含 GROUP BY 子句,唯一的叢集索引的鍵只能引用 GROUP BY 子句所指定的列。

一定不能在啟用 IGNORE_DUP_KEY 選項的情況下建立索引。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.