ホームページ > データベース > 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' は非 null 式であるため) が同じ結果を生成することです。

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート