requête sql server lenteur de java

J'ai un programme java qui s'exécute en un tas de requêtes sur une base de données sql server. La première de ces requêtes à l'encontre d'une vue renvoie sur 750k enregistrements. Je peux exécuter la requête via sql server management studio, et j'obtiens des résultats dans environ 30 secondes. cependant, j'ai débuté le programme à exécuter la nuit dernière. quand j'ai vérifié ce matin, cette requête n'avait pas encore retourné les résultats pour le programme java, à 15 heures plus tard.

J'ai accès à la base de données pour faire à peu près tout ce que je veux, mais je ne suis vraiment pas sûr de savoir comment commencer le débogage. Que doit-on faire pour savoir ce qui est à l'origine de ce genre de situation? Je ne suis pas administrateur de base de données, et je ne suis pas intimement familier avec le sql server configuration de l'outil, de sorte que le plus de détails vous pouvez me donner sur la façon de faire ce que vous pourriez suggérer serait appréciée.

heres le code

stmt = connection.createStatement();
clientFeedRS = stmt.executeQuery(StringBuffer.toString());

EDIT1:

Bien ça fait un moment, et il s'est détourné, mais ce problème est de retour. J'ai regardé dans la mise à niveau du pilote jdbc v 1.2 à 2.0, mais nous sommes coincés sur jdk 1.4, et v 2.0 exigent jdk 1.5, donc c'est un non-starter. Maintenant, je suis à la recherche de mon propriétés de chaîne de connexion. Je vois 2 qui pourrait être utile.

SelectMethod=cursor|direct
responseBuffering=adaptive|full

Actuellement, avec le problème de latence, je suis en cours d'exécution avec le curseur, comme le selectMethod, et avec la valeur par défaut pour responseBuffering qui est plein. Est la modification de ces propriétés susceptibles de les aider? si oui, quel en serait l'idéal? Je suis en train de penser, basé sur ce que je peux trouver en ligne, qui à l'aide d'une sélection directe de la méthode et de la réponse adaptative de mise en mémoire tampon qui pourrait résoudre mon problème. toutes les pensées?

EDIT2:

Bien j'ai fini de changer à la fois de ces de la chaîne de connexion params, à l'aide de la valeur par défaut sélectionner la méthode(direct) et en spécifiant le responseBuffering adaptatif. Il finit par ce qui marche le mieux pour moi et soulage les problèmes de latence, j'ai été voir. merci pour toute l'aide.

un détachement de votre appel à jdbc serait utile dans la compréhension de ce que, si quelque chose, c'est mal
Quel est le programme Java? Un extrait de code de la façon dont vous êtes accédant à la DB est certainement nécessaire. Aussi, est-SQL Server Studio de limiter les résultats (pour, par exemple, les 1000 premières lignes) qui pourrait biaiser les résultats?
si elle était de limiter les résultats à 1k lignes, comment puis-je être sûr qu'il ne l'est pas?
Sont SSMS et votre application Java s'exécutant dans le même lieu? Si SSM est exécuté localement sur le Serveur SQL, et votre application Java n'est pas le cas, ce n'est pas exactement un niveau de comparaison.
oui, l'exécution de la requête via SSMS, au même endroit, je suis de l'exécution de l'application java.

OriginalL'auteur shsteimer | 2009-06-07