999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

利用SQL Server 2005索引視圖提高數據庫系統性能

2009-07-31 06:59:04何育朋朱思銘
科技經濟市場 2009年5期
關鍵詞:定義數據庫優化

何育朋 朱思銘

摘要:本文闡述如何使用SQL Server 2005 Enterprise Edition 的索引視圖改善數據庫系統的整體性能。

關鍵詞:SQL Server 2005;database;DBMS

1索引視圖的作用

Microsoft SQL Server 視圖的主要作用是:

1.1提供一種安全機制,將用戶限制到一個或多個基表的某個數據子集中。

1.2提供一種機制,允許開發人員自定義用戶通過邏輯方式查看存儲在基表中的數據的方式。

在SQL Server 2005中,具有唯一的聚集索引的視圖稱為索引視圖。

2利用索引視圖提高系統性能的方法

2.1可在視圖上使用非聚集索引。

視圖上的非聚集索引可提供更好的查詢性能。與表上的非聚集索引類似,視圖上的非聚集索引可提供更多選項,供查詢優化器在編譯過程中選擇。例如,如果查詢包含聚集索引所未涉及的列,那么優化器可在計劃中選擇一個或多個輔助索引,避免對索引視圖或基表進行費時的完全掃描。

對架構添加索引會增加數據庫的開銷,因為索引需要持續的維護。在索引數量和維護開銷間尋求適當的平衡點時,應謹慎權衡。

2.2可在查詢優化器中使用索引視圖。

SQL Server 查詢優化器自動決定何時對給定的查詢執行使用索引視圖。不必在查詢中直接引用視圖以供優化器在查詢執行計劃中使用。所以,現有的應用程序可運用索引視圖,而不用更改應用程序本身。

查詢優化器通過考慮幾個條件來決定索引視圖能否涵蓋整個或部分查詢。這些條件對應查詢中的一個 FROM 子句并由下列這幾個部分組成:

2.2.1查詢 FROM 子句中的表必須是索引視圖 FROM 子句中的表的超集。

2.2.2查詢中的聯接條件必須是視圖中的聯接條件的超集。

2.2.3查詢中的聚合列必須可從視圖中的聚合列的子集派生。

2.2.4查詢選擇列表中的所有表達式必須可從視圖選擇列表或未包含在視圖定義中的表派生。

2.2.5如果與其他謂詞所匹配的行的超集相匹配,那么該謂詞將歸入另一個謂詞。例如,“T.a=10”歸入“T.a=10 and T.b=20”。任何謂詞都可歸入其自身。視圖中限制表值的那部分謂詞必須歸入查詢中限制相同表的那部分謂詞。此外,必須以 SQL Server 可驗證的方式實現這一點。

2.2.6屬于視圖定義中的表的查詢搜索條件謂詞的所有列必須出現在下列視圖定義的一項或多項中:

(1)一個 GROUP BY 列表。

(2)視圖選擇列表(如不存在 GROUP BY)。

(3)視圖定義中相同或等價的謂詞。

情況(1)和(2)允許 SQL Server 對視圖的列應用查詢謂詞,以便進一步限制視圖的列。情況 (3) 比較特殊,它不需要對列進行篩選,因此該列不必出現在視圖中。如果查詢不止包含一個 FROM 子句(子查詢、派生表、UNION),優化器可能選擇幾個索引視圖來處理查詢,并將它們應用到不同 FROM 子句。

2.3可使用 NOEXPAND 視圖提示。

當 SQL Server 處理按名稱引用視圖的查詢時,視圖的定義只有在僅引用基表時才會被正常擴展。這個過程稱為視圖擴展。其屬于一種宏擴展形式。

NOEXPAND 視圖提示可強制查詢優化器將視圖視為帶有聚集索引的普通表。其可防止視圖擴展。只有在 FROM 子句中直接引用索引視圖,才會應用 NOEXPAND 提示。例如:

SELECT Column1, Column2, ...FROM Table1, View1 WITH (NOEXPAND) WHERE ...

2.4可使用 EXPAND VIEWS 查詢提示。

處理按名稱引用視圖的查詢時,除非對視圖引用添加 NOEXPAND 提示,否則 SQL Server 總會擴展視圖。該提示會嘗試匹配索引視圖和擴展查詢,除非在查詢末尾的一個 OPTION 子句中指定 EXPAND VIEWS 查詢提示。例如,假設數據庫中有一個索引視圖 View1,以下,根據其邏輯定義(其 CREATE VIEW 語句)對 View1 進行了擴展,然后 EXPAND VIEWS 選項會阻止在計劃中使用 View1 的索引視圖來解析該查詢。使用語句如下:

SELECT Column1, Column2, ... FROM Table1, View1 WHERE ...

OPTION (EXPAND VIEWS)

如要確保讓 SQL Server 通過從查詢所引用的基表直接訪問數據來處理該查詢,而不必訪問索引視圖,那么可使用 EXPAND VIEWS。在某些情況下,EXPAND 視圖有助于消除因使用索引視圖而導致的鎖爭用。在測試應用程序時,NOEXPAND 和 EXPAND VIEWS 都可幫助用戶在使用和不使用索引視圖的情況下進行性能評估。

對數據庫系統確定一組適當的索引可能很復雜。如果在設計一般索引時需要考慮眾多可能性,那么對架構添加索引視圖會大幅提高設計和潛在結果的復雜性。例如,索引視圖可用于:

2.4.1查詢中引用的表的任何子集。

2.4.2該表子集的查詢中的條件的任何子集。

2.4.3組合的列。

2.4.4聚合函數(比如:SUM)。

2.5可應用DTA優化物理數據庫的設計。

數據庫優化顧問 (DTA) 是 SQL Server 2005 的一項功能,可有效優化物理數據庫設計。使用 DTA 可讓管理員有一個更清晰的思路,可以更準確地、有針對性地組合使用確定索引、索引視圖和分區策略,從而簡化了物理數據庫的設計過程。

3結束語

下圖說明了使用以上方法通常所能取得的性能改進程度:

實踐證明,靈活使用上述方法,能提高數據庫整體性能。

參考文獻:

[1]Microsoft SQL Server 2005 Enterprise Edition English version helper document.

[2] ROBIN DEWSON.《SQL SERVER 2005基礎教程》[M].北京:人民郵電出版社,2006.

[3] SOLID QUALITY LEARNING[美].SQL SERVER 2005從入門到精通(應用技術基礎)[M],北京:清華大學出版社,2006.

猜你喜歡
定義數據庫優化
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
數據庫
財經(2016年6期)2016-02-24 07:41:51
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
主站蜘蛛池模板: 国产91小视频在线观看| 欧美在线视频不卡第一页| 中文字幕亚洲乱码熟女1区2区| 女高中生自慰污污网站| 国产精品乱偷免费视频| a色毛片免费视频| 人妻91无码色偷偷色噜噜噜| 永久免费无码成人网站| 国产成人高精品免费视频| 午夜在线不卡| 97在线碰| 国产欧美亚洲精品第3页在线| 亚洲一区色| 欧美国产在线看| 在线观看免费国产| 亚洲乱码在线播放| 亚洲第一天堂无码专区| 日本www在线视频| 国产美女一级毛片| 午夜福利网址| 天天综合网色中文字幕| 人妻丰满熟妇av五码区| 国产免费观看av大片的网站| 欧美一区中文字幕| 极品私人尤物在线精品首页| 日韩av电影一区二区三区四区| 亚洲成在人线av品善网好看| 制服丝袜一区二区三区在线| 国产极品美女在线观看| 欧美不卡视频一区发布| 伊人蕉久影院| 亚洲日韩精品伊甸| 亚洲精品免费网站| 亚洲AⅤ无码日韩AV无码网站| 亚洲Va中文字幕久久一区| 欧美区国产区| 婷婷伊人久久| 亚洲国产一区在线观看| 欧美国产日本高清不卡| 色男人的天堂久久综合| 69综合网| 久久99国产综合精品1| 全色黄大色大片免费久久老太| 欧美成人午夜在线全部免费| 亚洲国产理论片在线播放| 国产精品美女免费视频大全| 日韩AV无码免费一二三区| 嫩草国产在线| 日本a级免费| 亚洲无码91视频| 精品国产免费观看一区| 波多野结衣AV无码久久一区| 日日摸夜夜爽无码| 国产成人一区在线播放| 人妻中文久热无码丝袜| 国产剧情一区二区| 无码精品一区二区久久久| 中文字幕中文字字幕码一二区| 91精品网站| 日韩欧美国产中文| 亚洲自偷自拍另类小说| 日韩无码黄色| 久久频这里精品99香蕉久网址| 日韩欧美国产三级| 亚洲午夜综合网| 国产农村妇女精品一二区| 色欲不卡无码一区二区| 天堂在线视频精品| 亚洲无码在线午夜电影| 久久亚洲AⅤ无码精品午夜麻豆| 久青草网站| 国产18页| 亚洲无码高清一区二区| 好吊色妇女免费视频免费| 久热中文字幕在线| 国产丝袜第一页| 国产特一级毛片| 亚洲天堂色色人体| 久一在线视频| 91色国产在线| 久久精品国产精品青草app| 国产一级无码不卡视频|