0

いくつかの基準で行数を取得する最も速い方法は何ですか?
テーブルがあります:transactions(id int (PK), userId int, typeId int, dateCreated date, (and about 5-6 additional columns))
このテーブルには何百万もの行があります。

次に、このテーブル内のレコードのカウントを取得する必要があります...カウントの条件は、1 ~ 3 列の任意の組み合わせにすることが(userId, typeId, dateCreated)でき、dateTime は「from」および「To」にすることができます。

最速の方法でカウントを取得するには、どのようなクエリとインデックスが必要ですか? 実際のテーブルデータを読み取らずに、行数を取得するためにインデックス/統計のみを使用することは可能ですか? この場合、パフォーマンスに影響がありますか
?count(*)count(id)

ありがとうございました。

4

1 に答える 1

0

インデックスから取得できます。100% 正確かどうかはわかりませんが、数行以上のカウントを見逃すことはありません。

select ob.name,  ix.rowcnt 
from sys.sysindexes ix
join sys.sysobjects ob ON ix.id = ob.id 
where ob.xtype = N'U' and ob.name = N'MyTable'

この方法で、すべてのテーブルのカウントを一度に取得できることに注意してください。obs: テーブル内の各インデックスの値を返すことに注意してください

于 2014-03-05T11:43:04.430 に答える