SQL Server執行SQL語句時內存占用特點[4]

發表于:2008-10-13來源:作者:點擊數: 標簽:sqlSqlSQLSERVER語句
關鍵字: sql 在兩個表都有聚集索引情況下,邏輯讀最小,每個表只有2到3次。而且只有實際需要輸出的數據才會被讀入內存頁。兩個表都有非聚集索引情況下,消耗的邏輯讀和內存資源近似。 測試5:執行Merge Join 5.1 執行全表選取或者低選擇性選取 執行 SQL :
關鍵字:sql
在兩個表都有聚集索引情況下,邏輯讀最小,每個表只有2到3次。而且只有實際需要輸出的數據才會被讀入內存頁。兩個表都有非聚集索引情況下,消耗的邏輯讀和內存資源近似。

  測試5:執行Merge Join

  5.1 執行全表選取或者低選擇性選取

  執行SQL:

以下是引用片段:
 Select * From P_Order A
  Inner merge JOIN P_User B ON A.MobileNo=B.MobileNo

  如果兩張表都沒有任何索引,則兩張表都要進行全表掃描。所有的數據都要讀入內存頁。

  邏輯讀數近似等于兩張表的數據頁總和。SQL Server處理過程中將使用到臨時表。

  只有一張表有聚集索引的情形類似,SQL Server處理過程中將使用到臨時表。并且讀入所有的數據頁到內存。

  如果兩張表都有聚集索引,盡管兩表的數據都會被讀入內存頁,但邏輯讀數已經大大減少,等于其中一張表總數據內存頁數加上最終輸出的數據頁數。而且SQL Server處理過程中將不需要再使用臨時表。

  5.2 執行高選擇性選取

  對于這樣的高選擇性SQL語句,SQL Server 將提示無法生成執行計劃。

以下是引用片段:
Select * From P_Order A
  Inner merge JOIN P_User B ON A.MobileNo=B.MobileNo
  Where A.MobileNo=28913

  但可以執行:

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97