国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

索引視圖

2024-07-21 02:12:54
字體:
來源:轉載
供稿:網友
  在前面我們已經提到過有關視圖的下述觀點:由于視圖返回的結果集與具有行列結構的表有著相同的表格形式,并且我們可以在sql 語句中像引用表那樣引用視圖,所以我們常把視圖稱為虛表。標準視圖的結果集并不以表的形式存儲在數據庫中,而是在執行引用了視圖的查詢時,sql server 2000 才把相關的基本表中的數據合并成視圖的邏輯結構。
    上面的結論常讓我們產生這樣的焦慮:由于是在執行了引用了視圖的查詢時,sql server 2000 才把相關的基本表中的數據合并成視圖的邏輯結構,那么當查詢所引用的視圖包含大量的數據行或涉及到對大量數據行進行合計運算或連接操作,毋庸置疑,動態地創建視圖結果集將給系統帶來沉重的負擔,尤其是經常引用這種大容量視圖。
    解決這一令人頭痛問題的方法就是為視圖創建聚簇索引,只有這樣才會顯著地提高系統的性能。當在視圖上創建了聚簇索引后,視圖的結果集與有聚簇索引的表的數據集一樣是存儲在數據中的。
    此外,在視圖上創建索引還會帶來這樣的好處;優化器可以在那些在from 從句中不直接命名視圖的查詢中使用視圖索引,而且對已存在的視圖而言,由于不必重新編寫查詢代碼,從而提高了查詢從索引視圖中檢索數據的效率。
    如果在視圖上創建索引,那么視圖中的數據會被立即存儲在數據庫中,對索引視圖進行修改,那么這些修改會立即反映到基礎表中。同理,對基礎表所進行的數據修改也會反映到索引視圖那里。索引的惟一性大大提高了sql server 查找那些被修改的數據行。
    維護索引視圖比維護基礎表的索引更為復雜。所以,如果認為值得以因數據修改而增加系統負擔為代價來提高數據檢索的速度,那么應該在視圖上創建索引。在為視圖創建索引前,視圖本身必須滿足以下條件:
  • 在執行create view 命令時,必須將ansi_nulls 和quoted_identifier選項設置為on 狀態;
  • 在使用create table 命令創建索引所引用的基礎表時,ansi_nulls 選項應設置為on;
  • 該視圖所引用的對象僅包括基礎表而不包括其它的視圖;
  • 視圖所引用的基礎表必須與視圖同屬于同一數據庫且有相同的所有者;
  • 在創建視圖時必須使用schemabinding 選項;
  • 如果視圖引用了用戶自定義函數,那么在創建這些用戶自定義函數時也必須使用schemabinding 選項 ;
  • 視圖必須以owner.objectname 的形式來使所引用的表或用戶自定義函數;
  • 視圖所引用的函數必須是確定性的;
  • 另外值得注意的是,在創建視圖的select 語句中不應該包含下面的transact-sql語法;
  • select 語句中不能使用*或tablename.*來定義列,必須直接給出列名,否則不可以;
  • 表示行集合的函數;
  • union、 distinct、 top、 order by、 compute、 compute by、count(*) 等;
  • avg、 max、 min、 stdev、 stdevp、 var 和varp 等合計運算函數。
    通常而言,可以在視圖上創建多個索引,但是應該記住,在視圖上所創建的第一個索引必須是聚簇索引,然后才可以創建其它的非聚簇索引。
    在第八章我們已經詳細介紹了create index 命令但是如果準備為視圖創建索引那么在執行該命令以前您必須確保以下條件否則創建將會失敗。
  • create index 命令的執行者必須是視圖的所有者;
  • 在執行創建索引命令期間,ansi_nulls、 ansi_padding、 ansi_warnings、arithabort、 concat_null_yields_null、 quoted_identifiers 諸選項應被設置成on 狀態;
  • numeric_roundabort 選項被設置為off 狀態;
  • 視圖不能包括text、 ntext、 image 類型的數據列;
  • 如果視圖的select 語句中包含order by 選項,則聚簇索引的關鍵值只能是order by 從句中所定義的數據列。

    在視圖上創建了索引之后,如果打算修改視圖數據,則應該保證修改時的選項設置與創建索引時的選項設置一樣,否則sql server 將產生錯誤信息,并回滾所做的insert、update 和delete 操作。

  • 本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。
  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 遵义市| 抚宁县| 建阳市| 铁岭县| 洪江市| 凤城市| 钟祥市| 丹凤县| 稻城县| 德格县| 阿拉善盟| 惠州市| 商水县| 奈曼旗| 四川省| 巴塘县| 合阳县| 乌兰察布市| 东莞市| 黄平县| 桂林市| 武功县| 通海县| 华容县| 荥阳市| 沭阳县| 乐清市| 富平县| 邯郸市| 伊宁市| 五常市| 湄潭县| 盐亭县| 麻城市| 墨竹工卡县| 高密市| 迭部县| 郑州市| 铜山县| 南溪县| 洛隆县|