視圖與臨時表的區(qū)別

          Posted on 2011-11-24 09:19 陳小東 閱讀(1003) 評論(0)  編輯  收藏
          臨時表
              臨時表與永久表相似,但臨時表存儲在 tempdb 中,當不再使用時會自動刪除。
              臨時表有兩種類型:本地和全局。它們在名稱、可見性以及可用性上有區(qū)別。本地臨時表的名稱以單個數(shù)字符號 (#) 打頭;它們僅對當前的用戶連接是可見的;當用戶從 SQL Server 實例斷開連接時被刪除。全局臨時表的名稱以兩個數(shù)字符號 (##) 打頭,創(chuàng)建后對任何用戶都是可見的,當所有引用該表的用戶從 SQL Server 斷開連接時被刪除。
              例如,如果創(chuàng)建了 employees 表,則任何在數(shù)據(jù)庫中有使用該表的安全權限的用戶都可以使用該表,除非已將其刪除。如果數(shù)據(jù)庫會話創(chuàng)建了本地臨時表 #employees,則僅會話可以使用該表,會話斷開連接后就將該表刪除。如果創(chuàng)建了 ##employees 全局臨時表,則數(shù)據(jù)庫中的任何用戶均可使用該表。如果該表在您創(chuàng)建后沒有其他用戶使用,則當您斷開連接時該表刪除。如果您創(chuàng)建該表后另一個用戶在使用該表,則 SQL Server 將在您斷開連接并且所有其他會話不再使用該表時將其刪除。

          視圖視圖
              可以被看成是虛擬表或存儲查詢。除非是索引視圖,否則視圖的數(shù)據(jù)不會作為非重復對象存儲在數(shù)據(jù)庫中。數(shù)據(jù)庫中存儲的是 SELECT 語句。SELECT 語句的結果集構成視圖所返回的虛擬表。用戶可以采用引用表時所使用的方法,在 Transact-SQL 語句中引用視圖名稱來使用此虛擬表
              視圖是一個虛擬表,其內(nèi)容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。視圖在數(shù)據(jù)庫中并不是以數(shù)據(jù)值存儲集形式存在,除非是索引視圖。行和列數(shù)據(jù)來自由定義視圖的查詢所引用的表,并且在引用視圖時動態(tài)生成。
          對其中所引用的基礎表來說,視圖的作用類似于篩選。定義視圖的篩選可以來自當前或其他數(shù)據(jù)庫的一個或多個表,或者其他視圖。分布式查詢也可用于定義使用多個異類源數(shù)據(jù)的視圖。例如,如果有多臺不同的服務器分別存儲您的單位在不同地區(qū)的數(shù)據(jù),而您需要將這些服務器上結構相似的數(shù)據(jù)組合起來,這種方式就很有用。
              通過視圖進行查詢沒有任何限制,通過它們進行數(shù)據(jù)修改時的限制也很少。
              視圖種類:索引視圖和索引視圖
              SQL Server 2005 查詢處理器對索引視圖和非索引視圖將區(qū)別對待: 索引視圖的行以表的格式存儲在數(shù)據(jù)庫中。如果查詢優(yōu)化器決定使用查詢計劃的索引視圖,則索引視圖將按照基表的處理方式進行處理。只有非索引視圖的定義才存儲,而不存儲視圖的行。查詢優(yōu)化器將視圖定義中的邏輯納入執(zhí)行計劃,而該執(zhí)行計劃是它為引用非索引視圖的 SQL 語句生成的。
              SQL Server 查詢優(yōu)化器用于決定何時使用索引視圖的邏輯與用于決定何時對表使用索引的邏輯相似。如果索引視圖中的數(shù)據(jù)包括所有或部分 SQL 語句,而且查詢優(yōu)化器確定視圖的某個索引是低成本的訪問路徑,則不論查詢中是否引用了該視圖的名稱,查詢優(yōu)化器都將選擇此索引。當 SQL 語句引用非索引視圖時,分析器和查詢優(yōu)化器將分析 SQL 語句的源和視圖的源,然后將它們解析為單個執(zhí)行計劃。

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           

          posts - 34, comments - 38, trackbacks - 0, articles - 0

          Copyright © 陳小東

          主站蜘蛛池模板: 儋州市| 太和县| 闽侯县| 尼玛县| 兴海县| 安徽省| 武清区| 宁国市| 苍梧县| 崇信县| 淄博市| 陵水| 丰镇市| 呼玛县| 永嘉县| 嘉善县| 仙居县| 梨树县| 阿克陶县| 阿合奇县| 雷波县| 宁明县| 平湖市| 平凉市| 枞阳县| 阿合奇县| 班戈县| 高邮市| 赞皇县| 芦溪县| 贡嘎县| 巨鹿县| 晋宁县| 石景山区| 四会市| 太保市| 赣榆县| 兰考县| 九龙县| 阳江市| 建始县|