Производительность SQL count(*)

У меня есть SQL-таблица BookChapters с более чем 20 миллионами строк. Он имеет кластеризованный первичный ключ (bookChapterID) и не имеет других ключей или индексов. Выполнение следующего запроса занимает миллисекунды

if (select count(*) from BookChapters) = 0
...

. Однако это занимает более 10 минут, когда я изменяю его следующим образом

if (select count(*) from BookChapters) = 1
...

или

if (select count(*) from BookChapters) > 1
...

Почему так? Как заставить select count(*)выполняться быстрее?

35
задан Aleksey Cherenkov 21 June 2012 в 20:40
поделиться