sql >> データベース >  >> RDS >> Sqlserver

SELECT COUNT(column) は SELECT COUNT(*) より速い/遅いですか?

    SELECT COUNT(*) FROM MyTable をいくつか試してみました 対 SELECT COUNT(SomeColumn) FROM MyTable さまざまなサイズのテーブル、および SomeColumn の場所 1 回はクラスター化キー列で、1 回は非クラスター化インデックスにあり、1 回はまったくインデックスにありません。

    いずれの場合も、すべてのサイズのテーブル (300,000 行から 1 億 7000 万行まで) で、違いは見られません 速度または実行計画のいずれかに関して - すべての場合において、COUNT クラスター化インデックススキャンを実行することで処理されます->つまり、基本的にテーブル全体をスキャンします。クラスター化されていないインデックスが含まれている場合、SELECT COUNT(*) を実行している場合でも、スキャンはそのインデックスで行われます。 !

    それらをカウントする方法や速度に違いはないようです.それらをすべてカウントするには、SQL Serverはテーブル全体をスキャンする必要があります.期間.

    テストは SQL Server 2008 R2 Developer Edition で行われました



    1. ハッシュ結合とマージ結合(Oracle RDBMS)の違いは何ですか?

    2. MySQL:別のテーブルからのCOUNTでテーブルを更新しますか?

    3. SQLサーバーとasp.netでのウィンドウ認証

    4. PHP経由でMYSQLにCSVをインポートする