同様の問題があり、Java で jdbc 接続を使用すると、非常に単純な要求 (SELECT . FROM . WHERE =.) で 1 行を返すのに最大 10 秒かかりましたが、sqlshell では 0.01 秒しかかかりませんでした。公式の MS SQL ドライバーを使用していても、JTDS ドライバーを使用していても、問題は同じでした。
解決策は、jdbc url でこのプロパティをセットアップすることでした:sendStringParametersAsUnicode=false
MS SQL 公式ドライバーを使用している場合の完全な例:jdbc:sqlserver://yourserver;instanceName=yourInstance;databaseName=yourDBName;sendStringParametersAsUnicode=false;
別の jdbc ドライバーを使用する場合の手順と、問題に関する詳細情報はこちら:http://emransharif.blogspot.fr/2011/07/performance-issues-with-jdbc-drivers.html
私の場合、検索元のテーブルに 3,000 万件以上のレコードがありました。プロパティを適用すると、リクエストを完了するまでの時間が 10 秒以上から約 0.01 秒に短縮されました。
これが誰かの助けになることを願っています!