通過SQL Server2005索引視圖提高性能

通過SQL Server2005索引視圖提高性能

ID:37676650

大?。?99.84 KB

頁數(shù):24頁

時間:2019-05-28

通過SQL Server2005索引視圖提高性能_第1頁
通過SQL Server2005索引視圖提高性能_第2頁
通過SQL Server2005索引視圖提高性能_第3頁
通過SQL Server2005索引視圖提高性能_第4頁
通過SQL Server2005索引視圖提高性能_第5頁
資源描述:

《通過SQL Server2005索引視圖提高性能》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、通過SQLServer2005索引視圖提高性能發(fā)布日期:2005年04月18日撰稿人:EricHanson投稿人:GailErickson、LuborKollar、JasonWard1摘要:本文檔介紹了SQLServer2005EnterpriseEdition中經(jīng)過改進的索引視圖功能。文中對索引視圖進行了說明介紹,并討論了可通過該功能改善性能的一些具體情況。內(nèi)容什么是索引視圖?應用索引視圖的優(yōu)點SQLServer2005的索引視圖有哪些新增功能?設計注意事項創(chuàng)建索引視圖示例有關(guān)索引視圖的常見問題如需獲得更多信息什么是索引視圖?多年以來,Micr

2、osoft?SQLServer?一直支持創(chuàng)建稱為視圖的虛擬表。通常,這些視圖的主要作用是:?提供一種安全機制,將用戶限制到一個或多個基表的某個數(shù)據(jù)子集中。?提供一種機制,允許開發(fā)人員自定義用戶通過邏輯方式查看存儲在基表中的數(shù)據(jù)的方式。通過SQLServer2000,SQLServer視圖的功能得到了擴展,實現(xiàn)了系統(tǒng)性能方面的收益??稍谝晥D上創(chuàng)建唯一的聚集索引及非聚集索引,來提高最復雜的查詢的數(shù)據(jù)訪問性能。在SQLServer2000和2005中,具有唯一的聚集索引的視圖即為索引視圖。本文所討論的內(nèi)容適用于SQLServer2005,其中有許多內(nèi)容

3、也適用于SQLServer2000。從數(shù)據(jù)庫管理系統(tǒng)(DBMS)的角度看來,視圖是對數(shù)據(jù)(一種元數(shù)據(jù)類型)的一種描述。當創(chuàng)建了一個典型視圖時,通過封裝一個SELECT語句(定義一個結(jié)果集來表示為虛擬表)來定義元數(shù)據(jù)。當在另一個查詢的FROM子句中引用視圖時,將從系統(tǒng)目錄檢索該元數(shù)據(jù),并替代該視圖的引用擴展元數(shù)據(jù)。視圖擴展之后,SQLServer查詢優(yōu)化器會為執(zhí)行查詢編譯一個執(zhí)行計劃。查詢優(yōu)化器會搜索針對某個查詢的一組可能的執(zhí)行計劃,并根據(jù)對執(zhí)行每個查詢計劃所需的實際時間的估計,選擇所能找到的成本最低的計劃。對于非索引視圖,解析查詢所必需的視圖部分

4、會在運行時被具體化。任何計算(比如:聯(lián)接或聚合)都在每個引用視圖的查詢執(zhí)行時完成1。在視圖上創(chuàng)建了唯一的聚集索引后,該視圖的結(jié)果集隨即被具體化,并保存在數(shù)據(jù)庫的物理存儲中,從而在執(zhí)行時節(jié)省了執(zhí)行這一高成本操作的開銷。在查詢執(zhí)行中,可通過兩種方式使用索引視圖。查詢可直接引用索引視圖,或者更重要的是,如果查詢優(yōu)化器確定該視圖可替換成本最低的查詢計劃中的部分或全部查詢,那么就可以選定它。在第二種情況中,使用索引視圖2替代基礎表及其一般索引。不必在查詢中引用視圖以使查詢優(yōu)化器在查詢執(zhí)行時使用該視圖。這使得現(xiàn)有的應用程序可以從新創(chuàng)建的索引視圖中受益,而不必

5、進行更改。注意索引視圖是SQLServer2000和2005各版本的一個功能。在SQLServer2000和2005的Developer和Enterprise版本中,查詢處理器可使用索引視圖來解析結(jié)構(gòu)上與該視圖相匹配的查詢,即便不按名稱來引用視圖。在其他版本中,必須按名稱來引用視圖,并對視圖引用使用NOEXPAND提示來查詢索引視圖的內(nèi)容。通過索引視圖改善性能運用索引提高查詢性能不算是一個新概念;但是,索引視圖提供了一些借助標準索引無法取得的性能收益。索引視圖可通過以下方式提高查詢性能:?可預先計算聚合并將其保存在索引中,從而在查詢執(zhí)行時,最小化

6、高成本的計算。?可預先聯(lián)接各個表并保存最終獲得的數(shù)據(jù)集。?可保存聯(lián)接或聚合的組合。該圖說明了當查詢優(yōu)化器使用索引視圖時,通常所能取得的性能改進。所列舉的查詢在復雜性上有所不同(比如:聚合計算的數(shù)量、所用表的數(shù)量或謂詞的數(shù)量)并包含來自真實的生產(chǎn)環(huán)境的具有數(shù)百萬行的表。在視圖上使用非聚集索引其次,視圖上的非聚集索引可提供更好的查詢性能。與表上的非聚集索引類似,視圖上的非聚集索引可提供更多選項,供查詢優(yōu)化器在編譯過程中選擇。例如,如果查詢包含聚集索引所未涉及的列,那么優(yōu)化器可在計劃中選擇一個或多個輔助索引,避免對索引視圖或基表進行費時的完全掃描。對架

7、構(gòu)添加索引會增加數(shù)據(jù)庫的開銷,因為索引需要持續(xù)的維護。在索引數(shù)量和維護開銷間尋求適當?shù)钠胶恻c時,應謹慎權(quán)衡。返回頁首3應用索引視圖的優(yōu)點在實施索引視圖前,分析數(shù)據(jù)庫工作負荷。運用查詢及各種相關(guān)工具(比如:SQLProfiler)方面的知識來確定可從索引視圖獲益的查詢。頻繁發(fā)生聚合和聯(lián)接的情況最適合使用索引視圖。無論是否頻繁發(fā)生,只要某個查詢需要很長的響應時間,同時快速獲得響應的開銷很高,那么就適合使用索引視圖。例如,一些開發(fā)人員發(fā)現(xiàn)為高級主管們在月末運行的報告,創(chuàng)建預先計算和存儲查詢的應答的索引視圖很有用。不是所有的查詢都能從索引視圖中獲益。與一

8、般索引類似,如果未使用索引視圖,就無法從中受益。在這種情況下,不僅無法實現(xiàn)性能改善,而且會在磁盤空間、維護和優(yōu)化方面產(chǎn)生額外的成本。然而

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。