Performance of COUNT SQL function

风格不统一 提交于 2019-12-17 18:42:06

问题


I have two choices when writing an SQL statement with the COUNT function.

  1. SELECT COUNT(*) FROM <table_name>
  2. SELECT COUNT(some_column_name) FROM <table_name>

In terms of performance, what is the best SQL statement? Can I obtain some performance gain by using option 1?


回答1:


Performance should not matter because they do 2 different aggregates

  • COUNT(*) is all rows, including NULLs
  • COUNT(some_column_name), excludes NULL in "some_column_name"

See the "Count(*) vs Count(1)" question for more




回答2:


Option 2 actually counts all the fields where some_column_name is not null. Option 1 counts all the fields where any field is not null. So you might actually get different results out of these two queries. Most of the time you actually want to count all the rows, and then the fastest option, which does not check for any of the fields, is simply SELECT COUNT(1) FROM ...




回答3:


No, there is no performance gain in Sql Server.



来源:https://stackoverflow.com/questions/1747990/performance-of-count-sql-function

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!