Saya memiliki masalah yang sama, dengan permintaan yang sangat sederhana (SELECT . FROM . WHERE =.) membutuhkan waktu hingga 10 detik untuk mengembalikan satu baris saat menggunakan koneksi jdbc di Java, sementara hanya mengambil 0,01 detik di sqlshell. Masalahnya sama apakah saya menggunakan driver MS SQL resmi atau driver JTDS.
Solusinya adalah menyiapkan properti ini di url jdbc :sendStringParametersAsUnicode=false
Contoh lengkap jika Anda menggunakan driver resmi MS SQL :jdbc:sqlserver://yourserver;instanceName=yourInstance;databaseName=yourDBName;sendStringParametersAsUnicode=false;
Petunjuk jika menggunakan driver jdbc yang berbeda dan info lebih rinci tentang masalah di sini:http://emransharif.blogspot.fr/2011/07/performance-issues-with-jdbc-drivers.html
Dalam kasus saya, saya memiliki lebih dari 30 juta catatan di tabel yang saya cari. Durasi untuk menyelesaikan permintaan berubah dari lebih dari 10 detik, menjadi kira-kira 0,01 detik setelah menerapkan properti.
Semoga ini bisa membantu seseorang !