首頁 > 資料庫 > mysql教程 > SQL Server 中的 Count(*) 與 Count(1):是否有效能差異?

SQL Server 中的 Count(*) 與 Count(1):是否有效能差異?

Barbara Streisand
發布: 2025-01-23 18:22:08
原創
626 人瀏覽過

Count(*) vs. Count(1) in SQL Server: Is There a Performance Difference?

*SQL Server:Count() 與 Count(1) – 效能分析**

許多 SQL 使用者想知道 COUNT(*)COUNT(1) 之間的效能差異。 這兩個函數都對行進行計數,但是對效能有真正的影響嗎?

在 SQL Server(特別是 2005 年以後的版本)中,答案很簡單:不存在顯著的效能差異。

Microsoft 的文檔闡明 COUNT(*) 計算表中的所有行(或滿足指定條件的行)。 至關重要的是,COUNT(1)(因為「1」是非空表達式)產生相同的結果。

SQL Server 查詢最佳化器辨識這種等價關係。 它以相同的方式對待這兩個函數,從而產生相同的執行計劃、I/O 操作以及最終的性能。

考慮這些例子:

<code class="language-sql">SELECT COUNT(1) FROM dbo.tab800krows;
SELECT COUNT(1), FKID FROM dbo.tab800krows GROUP BY FKID;

SELECT COUNT(*) FROM dbo.tab800krows;
SELECT COUNT(*), FKID FROM dbo.tab800krows GROUP BY FKID;</code>
登入後複製

執行這些查詢將產生相同的結果,從而確認 COUNT(*)COUNT(1) 的功能等效。 因此,它們之間的選擇很大程度上取決於編碼風格或個人喜好;它不會影響 SQL Server 中的查詢效能。

以上是SQL Server 中的 Count(*) 與 Count(1):是否有效能差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板