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

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 までご連絡ください。
MySQL文字列タイプ:ストレージ、パフォーマンス、ベストプラクティスMySQL文字列タイプ:ストレージ、パフォーマンス、ベストプラクティスMay 10, 2025 am 12:02 AM

mysqlstringTypesimpactStorageandperformanceAseasfollows:1)churisfixed-regents、whuscanbasterbutlessspace-efficient.2)varcharisvariaible、morespace-efficient-butpotentiallyslower.3)Textisforgergetext、storedoutext、

MySQL文字列タイプの理解:Varchar、Text、CharなどMySQL文字列タイプの理解:Varchar、Text、CharなどMay 10, 2025 am 12:02 AM

mysqlstringTypesincludevarchar、テキスト、char、列挙、およびセット。1)varcharisSatileforvariaible-lengthstringsuptoaspoecifedlimit.2)TextisidealforLargetExtStorageWithDeinLength.3)charispixed-consinterconsistentalikodes.4)

MySQLの文字列データ型は何ですか?MySQLの文字列データ型は何ですか?May 10, 2025 am 12:01 AM

mysqloffersvariousstringdatatypes:1)charfixed-lengthstrings、2)varcharforvariable-lengthtext、3)binaryandvartyforbinarydata、4)blobandtextforlargedata、and5)enumandsetforControlledinput.

新しいMySQLユーザーに権限を付与する方法新しいMySQLユーザーに権限を付与する方法May 09, 2025 am 12:16 AM

tograntpermissionstonewmysqlusers、フォローステープ:1)Accessmysqlasauserwithsufthiveerprivileges、2)createanewuser withthecreateusercommand、3)usethegrantcommandtospecifypermissionsionsionsionsionsionsionsionsionsionsionselect、挿入、挿入、挿入、更新、4)

MySQLにユーザーを追加する方法:ステップバイステップガイドMySQLにユーザーを追加する方法:ステップバイステップガイドMay 09, 2025 am 12:14 AM

toadduusersinmysqucrectivally andcurally、soflowthesteps:1)usethecreateuserstatementtoaddanewuser、指定するhostandastrongpassword.2)補助金を使用して、補助金を使用して、補助すること、

MySQL:複雑な権限を持つ新しいユーザーの追加MySQL:複雑な権限を持つ新しいユーザーの追加May 09, 2025 am 12:09 AM

toaddanewuserwithpermissionsinmysql、followthesesteps:1)createtheuserwithcreateuser'newuser '@' localhost'identifiedifiedifiedifiedby'pa ssword ';。2)grantreadacestoalltablesin'mydatabase'withgrantselectonmydatabase.to'newuser'@'localhost';。3)grantwriteaccessto '

MySQL:文字列データ型とコレクションMySQL:文字列データ型とコレクションMay 09, 2025 am 12:08 AM

MySQLの文字列データ型には、CHAR、VARCHAR、バイナリ、Varbinary、BLOB、およびテキストが含まれます。照合は、文字列の比較とソートを決定します。 1.Charは固定長の文字列に適しており、Varcharは可変長文字列に適しています。 2.バイナリとVarbinaryはバイナリデータに使用され、BLOBとテキストは大規模なオブジェクトデータに使用されます。 3. UTF8MB4_UNICODE_CIなどのルールのソートは、高度と小文字を無視し、ユーザー名に適しています。 UTF8MB4_BINは症例に敏感であり、正確な比較が必要なフィールドに適しています。

MySQL:Varcharsにはどの長さを使用すればよいですか?MySQL:Varcharsにはどの長さを使用すればよいですか?May 09, 2025 am 12:06 AM

最適なMySQLVarcharの列の長さの選択は、データ分析に基づいており、将来の成長を検討し、パフォーマンスの影響を評価し、文字セットの要件を評価する必要があります。 1)データを分析して、典型的な長さを決定します。 2)将来の拡張スペースを予約します。 3)パフォーマンスに対する大きな長さの影響に注意してください。 4)ストレージに対する文字セットの影響を考慮します。これらの手順を通じて、データベースの効率とスケーラビリティを最適化できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール