取得したテーブルを含むSQLクエリがあります。
派生クエリは次のようになります。
SELECT
ObjectId, MIN(StatusHistoryId) AS FirstStatusHistoryId
FROM
dbo.StatusHistory
WHERE
ObjectType = 'SchemeTypeApplication'
AND (StatusId = 504 OR StatusId = 501)
AND IsDeleted = 0
GROUP BY
ObjectId
これは、それ自体で完了するのに約2分かかり、30万行近くを引き戻します。クエリ全体(これを内部に含む)は、ほぼ同じです。派生テーブルがないと、1秒もかからないので、問題を引き起こしているのは派生クエリであることがわかります。
私の質問は、dereivedテーブルクエリの速度を改善する方法はありますか?たぶん、StatusHistoryテーブルにいくつかのインデックスを追加します(私はインデックス付けに少しごちゃごちゃしています...)?または、派生テーブルを使用する以外のアプローチはありますか?
任意の提案をいただければ幸いです。
ありがとう