最適化しようとしている非常に単純なクエリがあります。issues_notes は単純なテーブルですが、meta_users はビューを介してクエリを実行しているリモート データベース サーバー上のテーブルです。
注文せずにクエリを実行するとすぐに返されますが、追加すると返されるORDER BY date
までに約4秒かかります。SQL Server に実行計画を表示してもらいましたがTable Spool
、結合でのみ発生する操作で速度が低下しているようです。この「最適化」を防ぐ方法はありますか?
クエリ:
SELECT
[issues_notes].[date],
[meta_users].[firstname],
[meta_users].[lastname],
[issues_notes].[note]
FROM
[issues_notes]
LEFT JOIN [issues_issue]
ON ([issues_notes].[issue_id] = [issues_issue].[id])
LEFT OUTER JOIN [meta_users]
ON ([issues_notes].[author_id] = [meta_users].[userid])
WHERE
([issues_issue].[issue_hash] = '%s' )
順序付けなしの実行計画:
次の順序での実行計画: