日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQLServer數(shù)據(jù)庫分頁存儲過程優(yōu)化效率分析

SQL Server數(shù)據(jù)庫分頁存儲過程優(yōu)化效率分析是本文主要要介紹的內(nèi)容,接下來我們就開始介紹這一過程,SQL Server數(shù)據(jù)庫分頁存儲過程優(yōu)化效率分析先來對比兩段分頁SQL,假設條件:news表有15萬記錄,NewsTypeId=10有9萬記錄,當前查詢NewsTypeID=10。那么,你會認為哪個SQL效率會高呢?

創(chuàng)新互聯(lián)是一家專業(yè)提供武漢企業(yè)網(wǎng)站建設,專注與網(wǎng)站設計制作、網(wǎng)站設計、H5響應式網(wǎng)站、小程序制作等業(yè)務。10年已為武漢眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。

代碼一:

 
 
 
  1. DECLARE @cc INT  
  2. SELECT NewsId,ROW_NUMBER() OVER(ORDER BY SortNum DESC)   
  3. AS RowIndex INTO #tb FROM news WITH(NOLOCK)   
  4. WHERE NewsTypeId=@NewsTypeId AND IsShow=1 
  5. SET @cc = @@ROWCOUNT  
  6. SELECT n.* FROM news AS n WITH(NOLOCK), #tb   
  7. As t WHERE t.RowIndex>@PageIndex*@PageSize   
  8. AND t.RowIndex<=(@PageIndex+1)*@PageSize  
  9. AND t.newsid=n.newsid  
  10. SELECT @cc  
  11. DROP TABLE #tb 

代碼二:

 
 
 
  1. DECLARE @cc INT  
  2. SELECT NewsId,ROW_NUMBER() OVER(ORDER BY SortNum DESC)  
  3. AS RowIndex INTO #tb FROM news WITH(NOLOCK)   
  4. WHERE NewsTypeId=@NewsTypeId AND IsShow=1 
  5. SET @cc = @@ROWCOUNT  
  6. SELECT NewsId INTO #tb2 FROM #tb As t   
  7. WHERE t.RowIndex>@PageIndex*@PageSize AND t.RowIndex<=(@PageIndex+1)*@PageSize  
  8. SELECT * FROM news WITH(NOLOCK)   
  9. WHERE NewsId IN (SELECT * FROM #tb2)  
  10. SELECT @cc  
  11. DROP TABLE #tb  
  12. DROP TABLE #tb2 

答案是代碼二遠遠高于代碼一。在代碼一中加粗代碼的操作會引起整表掃描,因為數(shù)據(jù)庫引擎在認為WHERE表達式中滿足條件記錄大于一定閥值的時候,就不再去進行查詢優(yōu)化,而直接使用表掃描??磮?zhí)行信息:

 
 
 
  1. 表 'news'。掃描計數(shù) 1,邏輯讀取 342 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。  
  2. (98361 行受影響)  
  3. (1 行受影響)  
  4. (40 行受影響)  
  5. 表 '#tb________________________________________00000004C024'。  
  6. 掃描計數(shù) 1,邏輯讀取 257 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。  
  7. 表 'news'。掃描計數(shù) 1,邏輯讀取 2805 次,物理讀取 0 次,預讀 235 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。  
  8. (1 行受影響)  
  9. (1 行受影響)  
  10. 原本,我想的執(zhí)行計劃,加粗部分的代碼應該是聚焦索引查找,這樣性能就提高很多。看代碼二:  
  11. 表 'news'。掃描計數(shù) 1,邏輯讀取 342 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。  
  12. (98361 行受影響)  
  13. (1 行受影響)  
  14. 表 '#tb____________________________________00000004BEEF'。  
  15. 掃描計數(shù) 1,邏輯讀取 257 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。  
  16. (40 行受影響)  
  17. (1 行受影響)  
  18. (40 行受影響)  
  19. 表 'news'。掃描計數(shù) 0,邏輯讀取 131 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。  
  20. 表 '#tb2___________________________________00000004BEF0'。  
  21. 掃描計數(shù) 1,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。  
  22. (1 行受影響)  
  23. (1 行受影響) 

很明顯,代碼二與代碼一中的IO操作數(shù)大大降低。且代碼一隨著@PageIndex越來越大,效率會越來越低;但代碼二的效率不會隨@PageIndex變化而改變。

以上就是SQL Server數(shù)據(jù)庫分頁存儲過程優(yōu)化效率分析的全部內(nèi)容,本文就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!


網(wǎng)站題目:SQLServer數(shù)據(jù)庫分頁存儲過程優(yōu)化效率分析
本文URL:http://www.5511xx.com/article/cdoihhj.html