sql分頁語句的執行效率

項目完成了,老是被一些效率問題困擾,查看一些資料,總結記錄了幾種sql分頁的執行效率:sql

方法一:ide

  
  
  
  
  1. 1.  
  2. SELECT TOP 頁大小 *  
  3. FROM table1  
  4. WHERE id NOT IN  
  5.           (  
  6.           SELECT TOP 頁大小*(頁數-1) id FROM table1 ORDER BY id  
  7.           )  
  8. ORDER BY id 

方法二:spa

 

  
  
  
  
  1. SELECT TOP 頁大小 *  
  2. FROM table1  
  3. WHERE id > 
  4.           (  
  5.           SELECT ISNULL(MAX(id),0)   
  6.           FROM   
  7.                 (  
  8.                 SELECT TOP 頁大小*(頁數-1) id FROM table1 ORDER BY id  
  9.                 ) A  
  10.           )  
  11. ORDER BY id 

 

  
  
  
  
  1. SELECT TOP 頁大小 *   
  2. FROM   
  3.         (  
  4.         SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1  
  5.         ) A  
  6. WHERE RowNumber > 頁大小*(頁數-1) 

總結:方法1利用id範圍not in分頁,效率次之xml

            方法2利用id最大值分頁,效率最高it

            方法3利用遊標分頁,效率最差table

相關文章
相關標籤/搜索