ホームページ > データベース > mysql チュートリアル > OPTION (RECOMPILE) によって SQL クエリが驚くほど高速になるのはいつですか?

OPTION (RECOMPILE) によって SQL クエリが驚くほど高速になるのはいつですか?

Mary-Kate Olsen
リリース: 2025-01-07 12:17:40
オリジナル
347 人が閲覧しました

When Does OPTION (RECOMPILE) Make SQL Queries Surprisingly Faster?

オプション (RECOMPILE) 謎: 存在しない場合よりも驚くほど高速になる理由

はじめに

オプション (RECOMPILE) SQL Server の ) 句は常に高価な操作であると考えられてきましたが、特定の操作にはこの句が含まれています。クエリによりパフォーマンスが大幅に向上する可能性があります。このパラドックスは多くの開発者を困惑させ、根底にあるメカニズムや OPTION (RECOMPILE) が本当に有利である状況についての疑問を引き起こしました。

ある開発者が遭遇した質問

クエリに OPTION (RECOMPILE) を追加すると、実行時間が 5 分から 0.5 秒に大幅に短縮されるという異常な状況が発生しました。この動作は、クエリがクエリ アナライザーから実行されたか、SqlCommand.ExecuteReader() を使用した C# アプリケーション経由で実行されたかに関係なく継続しました。クエリ呼び出しでは、最適ではないパラメータ スニッフィングに関する懸念を排除するために、常に同じパラメータが使用されました。

説明

OPTION (RECOMPILE) が常に有効であるという想定に反して、コストのかかる操作ですが、特定のシナリオでは有益な場合があります。一般的な説明の 1 つは、基になるデータやパラメーターが大幅に変更された場合に実行プランを再構築する必要があるということです。

SQL Server がストアド プロシージャ (またはパラメーター化されたクエリ) を作成するとき、SQL Server は、初期データとパラメータ。ただし、異なるデータまたはパラメータを使用した後続の実行は、キャッシュされた実行プランと一致しなくなる可能性があります。このような場合、OPTION (RECOMPILE) を使用して実行プランを再コンパイルすると、SQL Server が現在の条件に合わせて最適化されるため、パフォーマンスが向上する可能性があります。

ここで示した特定のケースでは、開発者はクエリの実行を再構築することを検討する必要があります。 sp_updatestats を使用して統計を計画および更新します。このプロセスにより、キャッシュされた実行計画が最新の情報に基づいていることが保証され、実行のたびに再コンパイルする必要性が減ります。

重要なポイント

  • OPTION (RECOMPILE) は、動的 SQL が使用される場合、またはデータとパラメーターが変更される場合に実行可能なオプションです。
  • OPTION (RECOMPILE) を使用する前に、不必要な再コンパイルを排除するために、実行計画を再構築し、統計を更新することを検討する必要があります。
  • クエリが実行のたびに再コンパイルを必要とすることは一般にまれです。

以上がOPTION (RECOMPILE) によって SQL クエリが驚くほど高速になるのはいつですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート