Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

query del server sql in esecuzione lenta da java

Ho avuto un problema simile, con una richiesta molto semplice (SELECT . FROM . WHERE =.) che impiegava fino a 10 secondi per restituire una singola riga quando si utilizzava una connessione jdbc in Java, mentre richiedeva solo 0,01 secondi in sqlshell. Il problema era lo stesso se stavo usando il driver MS SQL ufficiale o il driver JTDS.

La soluzione era impostare questa proprietà nell'URL jdbc :sendStringParametersAsUnicode=false

Esempio completo se stai utilizzando il driver ufficiale MS SQL:jdbc:sqlserver://yourserver;instanceName=yourInstance;databaseName=yourDBName;sendStringParametersAsUnicode=false;

Istruzioni se si utilizzano driver jdbc diversi e informazioni più dettagliate sul problema qui:http://emransharif.blogspot.fr/2011/07/performance-issues-with-jdbc-drivers.html

Nel mio caso, avevo più di 30 milioni di record nella tabella da cui stavo cercando. La durata per completare la richiesta è passata da più di 10 secondi a circa 0,01 secondi dopo l'applicazione della proprietà.

Spero che questo possa aiutare qualcuno!