2017-08-18 2 views
0

javaでsqlserver-jdbcドライバの実行クエリを使用していますが、結果セットを返す前に約700秒待っていますが、代わりにnavicatまたはSSMSでこれを行うのはわずか50秒です。誰もが似たような問題を抱えているので、私はdatebaseをあまり知らないので、理由を見つけることができません。なぜsqlserverのプロシージャを実行するjdbcは10分かかりますが、navicatまたはssmsは50秒しかかかりません。

+0

助けてくれる情報がさらに必要です。いくつかのコードを表示すると、どのクエリが遅く実行されていますか? – Carra

答えて

0

はあなたのSPの実行計画をキャッシュされた取得するそのスクリプトを使用します。

SELECT cp.objtype AS ObjectType, 
OBJECT_NAME(st.objectid,st.dbid) AS ObjectName, 
cp.usecounts AS ExecutionCount, 
st.TEXT AS QueryText, 
qp.query_plan AS QueryPlan 
FROM sys.dm_exec_cached_plans AS cp 
CROSS APPLY sys.dm_exec_query_plan(cp.plan_handle) AS qp 
CROSS APPLY sys.dm_exec_sql_text(cp.plan_handle) AS st 
WHERE objtype ='Proc' AND OBJECT_NAME(st.objectid,st.dbid) = '__YOUR_SP_NAME__'; 

私はSSMSとのSQLServer-JDBCドライバが異なるキャッシュされたプランを使用したとします。

関連する問題