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

アプリケーションでのみデータベース クエリが遅くなるのはなぜですか?

    パラメータのスニッフィングが疑われます。

    set が異なるため、アプリケーションの接続に使用されるキャッシュされた実行計画は、おそらく SSMS 接続では使用できません。

    以下のクエリを使用して、ストアド プロシージャのキャッシュされたプランを取得できます。次に、それらが異なるかどうかを比較します (たとえば、遅い方がインデックス シークを実行し、他の方がスキャンを行う場所でブックマーク ルックアップを行っているか?)

    Use YourDatabase;
    
    SELECT *
    FROM sys.dm_exec_cached_plans 
    CROSS APPLY sys.dm_exec_sql_text(plan_handle) 
    CROSS APPLY sys.dm_exec_query_plan(plan_handle) 
    cross APPLY sys.dm_exec_plan_attributes(plan_handle) AS epa
    where sys.dm_exec_sql_text.OBJECTID=object_id('YourProcName') 
             and attribute='set_options'
    


    1. SQLCASEステートメント

    2. SQL Server 2008 :コンマ区切りのリストを入力しますか?

    3. PHPで変更/改訂スクリプトを追跡しますか?

    4. Postgres関数で列名としてテキスト入力を使用するにはどうすればよいですか?