Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

requête du serveur sql s'exécutant lentement à partir de java

J'ai eu un problème similaire, avec une requête très simple (SELECT . FROM . WHERE =.) prenant jusqu'à 10 secondes pour renvoyer une seule ligne lors de l'utilisation d'une connexion jdbc en Java, tout en ne prenant que 0,01 s dans sqlshell. Le problème était le même que j'utilise le pilote MS SQL officiel ou le pilote JTDS.

La solution était de paramétrer cette propriété dans l'url jdbc :sendStringParametersAsUnicode=false

Exemple complet si vous utilisez le pilote officiel MS SQL :jdbc:sqlserver://yourserver;instanceName=yourInstance;databaseName=yourDBName;sendStringParametersAsUnicode=false;

Instructions si vous utilisez différents pilotes jdbc et informations plus détaillées sur le problème ici :http://emransharif.blogspot.fr/2011/07/performance-issues-with-jdbc-drivers.html

Dans mon cas, j'avais plus de 30 millions d'enregistrements dans la table à partir de laquelle je cherchais. La durée pour compléter la requête est passée de plus de 10 secondes à environ 0,01 s après application de la propriété.

J'espère que cela aidera quelqu'un !