您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)如何分析SQL SERVER的物化視圖,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
一直大家有一個印象,SQL SERVER 沒有物化視圖,導致給開發(fā)人員和DBA 的概念中ORACLE 的物化視圖高大上,SQL SERVER 則只能用著粗糙的傳統(tǒng)的VIEW,以及緩慢的性能。
NO NO NO ,誰說的,不叫物化視圖,不證明沒有SQL SERVER 有INDEX VIEW ,這就是物化視圖。
首先為什么物化視圖,比一般的VIEW 要高級。
試想如果你有1個表,然后在同一個時刻,有八個需求等著你,你需要和張大叔家的閨女吃個飯,然后同時刻你需要和李大嬸家的兒子打個游戲,然后宋叔叔家里沒人,你需要看一會他們家的熊孩子.........
你是不是累死了,如果這時候你要是有個 弟弟,妹妹什么的,替你干了這些活,你是不是就可以只取張大叔家了。
減少死鎖和BLOCKED ,生成多個自定義化的替身,節(jié)省在查詢時再生成數(shù)據(jù)的時間,讓整個查詢更快,這才是這個東西產(chǎn)生的理由和目的。
SQL SERVER 中的INDEX VIEW 的原理就是在建立VIEW的時候,對VIEW 進行建立 CLUSTER INDEX ,讓這個VIEW 變成一個物理的表,并且你可以在這個 VIEW 上建立 多個二級索引,讓VIEW 變?yōu)閷嶓w表,降低對可能對多個原始表,糾纏不清的關(guān)系。
說到這里,還是丑話說在前面,INDEX VIEW 建立也是要有條件的,這年月辦什么事情不都要有些條件。
INDEX VIEW 不能做的
以下SQL 語句中不能有的
1 COUNT
2 OPENDATASOURCE OPENQUERY OPENROWSET
3 LEFT RIGHT FULL JOIN
4 SELECT *
5 DISTINCT
6 TOP
7 CUBE ROLLUP GROUPING SET
8 UNION
9 EXCEPT
10 INTERSECT
11 PIVOT
12 UNPIVOT
13 GROUP BY HAVING
14 變動的條件
以上這些都不能再 INDEX VIEW 中存在,存在就不能建立SQL SERVER 的物化視圖,馬上有人就說 ORACLE 的物化視圖沒有那么多限制吧
呵呵,呵呵 ,呵呵, 百度一下吧,和SQL SERVER INDEX VIEW 相比, 半斤八兩,可能在極個別的地方有優(yōu)勢。
其實用大腦想想,就知道不能生成物化視圖的最根本的就是不能預測和變化,這是任何數(shù)據(jù)庫系統(tǒng)都不能再這樣的情況下運行的,大體 SQL SERVER 和 ORACLE 都是不能接受那些不能預測,復雜的變化在 INDEX VIEW 和 物化視圖中發(fā)生的。
說了這么多,那怎么建立 SQL SERVER 的物化視圖
1 把VIEW 變?yōu)?nbsp; INDEX VIEW 需要兩步
2 上圖在建立INDEX VIEW 不會報錯,在第二步給VIEW 創(chuàng)建必要的 CLUSTERED INDEX 會報錯,我們看看是什么錯誤
這里解釋一下,建立一個INDEX VIEW 是很簡單的
Create the view by using the WITH SCHEMABINDING
option.
Create the unique clustered index on the view.
去掉那些不確定的因素,讓INDEX VIEW 可以以更清晰的邏輯去更新數(shù)據(jù),與源表進行同步。
到底和普通的VIEW 有什么不同,第一個是使用了 INDEX VIEW 的視圖,第二個是刪除了從新建立不使用INDEX VIEW的視圖走的執(zhí)行計劃,上面是走INDEX VIEW的執(zhí)行計劃,下面是普通VIEW 的執(zhí)行計劃,孰優(yōu)孰劣 ARE YOU CLEAR?
并且在INDEX VIEW 上還可以建立二級索引,繼續(xù)加速INDEX VIEW的查詢速度
說到這里,重要的不是建立INDEX VIEW ,而是要考慮你是要一個復雜的VIEW 來一次性解決問題,還是要建立多個 INDEX VIEW 來解決問題的想法。
說到頭,如果你的系統(tǒng)沒有遇到瓶頸,你大可不必使用INDEX VIEW, 技術(shù)的演變,和需求都是一次一次的問題爆發(fā)和面臨的極限。
看完上述內(nèi)容,你們對如何分析SQL SERVER的物化視圖有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。