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

クエリは高速に実行されますが、ストアドプロシージャでは低速で実行されます

    OK、以前にもこのような問題が発生しました。

    これを修正する方法は、SP内にローカルパラメータを作成することでした。

    DECLARE @LOCAL_Contract_ID int, 
            @LOCAL_dt_From smalldatetime, 
            @LOCAL_dt_To smalldatetime, 
            @LOCAL_Last_Run_Date datetime
    
    SELECT  @LOCAL_Contract_ID = @Contract_ID, 
            @LOCAL_dt_From = @dt_From, 
            @LOCAL_dt_To = @dt_To, 
            @LOCAL_Last_Run_Date = @Last_Run_Date
    

    次に、渡されたパラメータではなく、SP内のローカルパラメータを使用します。

    これにより、通常、私たちの問題は修正されました。

    これはパラメータのスニッフィングによるものと思われますが、証拠はありません。申し訳ありません... X-)

    編集:

    さまざまなアプローチをご覧くださいSQLServerパラメータスニッフィングを修正するには いくつかの洞察に満ちた例、説明、修正について。



    1. `EXECUTEIMMEDIATE`Oracleステートメントの実行エラーの取得

    2. 2038-01-19以降のMySQLfrom_unixtime?

    3. サーバーを起動できません:TCP / IPポートでバインド:要求されたアドレスを割り当てることができません

    4. PHPでmysqlエントリが空かどうかを確認するにはどうすればよいですか?