sql >> データベース >  >> RDS >> Sqlserver

where句でローカル変数を使用する代わりに

    ローカル変数の使用 WHERE フィルターで FULL TABLE SCAN が発生します。 SS はコンパイル時にローカル変数の値を認識していないためです。そのため、列で使用できる最大スケールの実行計画が作成されます。

    パフォーマンスの問題を防ぐために、SS はコンパイル時に変数の値を認識している必要があります。 SP を定義し、これらのローカル変数をパラメータとして渡す 問題解決の一つです。もう 1 つの解決策は、sp_executesql を使用することです。 それらのローカル変数をパラメーターとして再度渡します...

    または、OPTION ( RECOMPILE ) を追加することもできます あなたのSQL文の最後に、ローカル変数をコンパイルさせます。これでパフォーマーの問題は解決します。



    1. チェックボックスデータをmysqlに挿入します

    2. MySQLでDATETIMEフィールドを取得するには、DATEフィールドとTIMEフィールドを追加します

    3. mysqlワークベンチからデータベースをエクスポートできません

    4. 重複する値で配列値をランク付けし、同点の場合に一部の位置をスキップするにはどうすればよいですか?