2015-01-06 4 views

ответ

3

Там нет никакой разницы.

Select Count(*) from TableName 
Select Count(1) from TableName 

Это очень распространенное мнение о том, что граф (1) работать лучше по сравнению с Count (), однако это не так. Если вы проверите, посмотрев план выполнения, вы увидите, что такое же действие выполняется как командами, так и количеством проверяемых строк. Затраченное время может быть несколько разным интервалом использования ЦП для подсчета (), но почти так же, как и счет (1). Путаница, как правило, заключается в том, что в более старой версии некоторых продуктов RDBMS, таких как Oracle, разница в производительности для выбора count (*) и count (1), но последние версии не имеют какой-либо разницы.

см это: http://www.sqlserverf1.com/difference-between-select-count-and-count1-in-sql-server/

и

Count(*) vs Count(1)

+0

Каковы различия? – bilal

+0

@bilal Нет никакой разницы. .. Проверьте сообщение: http://stackoverflow.com/questions/1221559/count-vs-count1 – Backtrack

+1

Я думаю, что путаница в стоимости исполнения также связана с тем, что 'SELECT *' обычно дороже, чем 'SELECT 1' или 'SELECT intColumn'. Конечно, 'COUNT (*)' будет иметь конкретный код оптимизации в синтаксическом анализаторе/движке, который признает, что нет необходимости извлекать содержимое каждого столбца. – Turophile

Смежные вопросы