.NET アプリケーションから SQL Server データベースに対して実行しているクエリがあり、完了するまでにかなりの時間がかかるようです (5 分以上)。私は c# でテスト アプリを作成して、何が長い間話されていたかを確認しようとしました (クエリはすぐに返されるはずです)。
要素を追加してどの部分が非常に時間がかかっているかを確認してクエリを再構築していたので、元のクエリのスペースと大文字と小文字の違いだけが唯一の違いである、実質的に逐語的にクエリを再構築することになりました。この違いは、約 100 ミリ秒で結果を返しました。
誰もこれを見たことがありますか?私たちのサーバー (同僚が同じ問題を抱えているため) またはコンピューターでオフになっているサービスがあるかどうか疑問に思っています。
これについてご協力いただきありがとうございます。
以下のコード例 (最後のクエリの最初の行の違い (fk_source と fk _Source):
//Original
OleDbCommand comm = new OleDbCommand("select min(ctc.serial_no) as MIN_INTERVAL from countstypecode ctc, source s, countstype ct, counts c where ct.value_id=c.value_id and s.c_id=ct.fk_source and " +
"ct.timeinterval=ctc.typename and ct.timeinterval in ('15min','1h','1day') and c.time_stamp >= CONVERT(datetime,'01-01-2008',105) and c.time_stamp < " +
"CONVERT(datetime,'01-01-2009',105) and s.c_id = '27038dbb19ed93db011a315297df3b7a'", dbConn);
//Rebuilt
OleDbCommand comm = new OleDbCommand("select min(ctc.serial_no) as MIN_INTERVAL from countstypecode ctc, source s, countstype ct, counts c where ct.value_id=c.value_id and s.c_id=ct.fk_Source and " +
"ct.timeinterval=ctc.typename and ct.timeinterval in ('15min','1h','1day') and c.time_stamp >= CONVERT(datetime,'01-01-2008',105) and c.time_stamp < " +
"CONVERT(datetime,'01-01-2009',105) and s.c_id='27038dbb19ed93db011a315297df3b7a'", dbConn);