MSSQLのTopとMAX効率テスト

2853 ワード

環境:
MSSQL 2008は、キャッシュが使用されていない場合に実行されます.
表には8 W本の記録がある
分類1には134件の記録がある
それぞれ3つの文をテストしました
-- A
select 
    1
from  1 
WHERE Ftype='  1'
ORDER BY   1
-- B
select 
  Top 1   1
from  1 
WHERE Ftype='  1'
Order by   1 desc


-- C
select 
  MAX(  1)
from  1 
WHERE Ftype='  1'

 
A文はすぐに0秒近く
B文は8秒近くかかります
C文はBと同じように8秒かかります
 
TOPとMAXの効率は低いようですね
それから最大値を求めて書き方を変えました
 
declare @var01
select 
  @var01 =   1
from  1 
WHERE Ftype='  1'
ORDER BY   1 ASC

select @var01

スピードはAの書き方と同じです
 
テストを続けたばかりです
Top 100に変更して、Top 200はスピードが速いです
Top 1に変更すると、Top 10は速度が遅く、MSが分からない.
転載先:https://www.cnblogs.com/DKSoft/p/3415345.html