レポートに対してこれを実行したいのですが、テーブルに20,000,000のレコードがあり、アプリケーションでタイムアウトが発生します。
SELECT
T.transactionStatusID,
TS.shortName AS TransactionStatusDefShortName,
count(*) AS qtyTransactions
FROM
Transactions T
INNER JOIN TransactionTypesCurrencies TTC
ON T.id_Ent = TTC.id_Ent
AND T.trnTypeCurrencyID = TTC.trnTypeCurrencyID
INNER JOIN TransactionStatusDef TS
ON T.id_Ent = TS.ent_Ent
AND T.transactionStatusID = TS.ID
WHERE
T.id_Ent = @id_Ent
GROUP BY
T.transactionStatusID,
TS.shortName
私の知る限り、COUNT(*)は全表スキャンを引き起こし、クエリに時間がかかりすぎます。MSSQL 2005を使用している場合、何か助けはありますか?
編集:
プロジェクトリーダーは、クエリは1日だけで役立つと言っていますか?