0
だから、私はかなり単純なクエリを使っていますが、非常に遅いです。SQLの複数の左結合はパフォーマンスが悪い
クエリを最適化する良い方法はありますか? LEFT JOINSを複数の列で分割する必要がありますか?複数回実行してUnion ALLを使用して一緒に参加するのはどうですか?
テーブルには50万行の行があり、索引付けされています。 助けてください。クエリは、あなたのLEFT JOIN
秒でOR
sがすべてでパフォーマンスを支援していない
SELECT
ep.Id,
ep.DisplayName,
ep.EmailAddress,
COALESCE(
gs.DisplayNameMember + ' (' + gd.DisplayName + ')',
ea.DisplayName ,
ep.TrusteeUserAccountName,
ep.Trustee
) AS Trustee
FROM
dbo.ExchangePermissions ep WITH (NOLOCK)
LEFT JOIN dbo.GroupDetail gd WITH (NOLOCK) ON (ep.Trustee = gd.[Identity] OR ep.Trustee = gd.DisplayName OR ep.TrusteeUserAccountName = gd.SamAccountName)
LEFT JOIN dbo.GroupMemberShip gs WITH (NOLOCK) ON gd.name = gs.groupname
LEFT JOIN dbo.ExchangeAccount ea WITH (NOLOCK) ON (ep.Trustee = ea.[Identity] OR ep.Trustee = ea.DisplayName OR ep.TrusteeUserAccountName = ea.SamAccountName)
WHERE
ep.OTHERID= @MyParameter
これはsprocですか?おそらくパラメータスニッフィングの問題?計画はここで長い道のりを行くだろう。 –
@Rigerta。十分に十分です。行 上記の実行計画を上記に追加しました – JCircio
@Jacobストアドプロシージャではありません – JCircio