5

質問は簡単です。どのクエリが高速になりますか:

SELECT TOP 1 value FROM table ORDER BY value

また

SELECT TOP 1  MIN(value) FROM table

ケース1、インデックスなし、ケース2、値にインデックスがあるという2つのケースがあると想定できます。
任意の洞察をいただければ幸いです。ありがとう!

4

1 に答える 1

9

インデックスが存在しない場合:

  • MIN(value)は、1回のスキャンでO(N)時間に実装する必要があります。
  • TOP 1 ... ORDER BYは、指定されたソートのためにO(N Log N)時間を必要とします(DBエンジンがインテントを読み取るのに十分スマートでない限り、これは本番コードでは信頼できません)。

インデックスが存在する場合:

  • どちらも、インデックスを使用して、O(1)時間のみを必要とします。
于 2013-03-07T16:20:41.330 に答える