Utilisation des instructions et des jeux de résultats
Quand vous travaillez avec le Pilote Microsoft JDBC pour SQL Server et les objets Statement et ResultSet qui l’accompagnent, il existe plusieurs techniques que vous pouvez utiliser pour améliorer les performances et la fiabilité de vos applications.
Utilisez l'objet d'instruction approprié
Quand vous utilisez l’un des objets Statement du pilote JDBC, par exemple l’objet SQLServerStatement, SQLServerPreparedStatement ou SQLServerCallableStatement, vérifiez que vous utilisez l’objet approprié pour la tâche.
- Si vous ne disposez pas de paramètres OUT, vous n'avez pas à utiliser l'objet SQLServerCallableStatement. Utilisez plutôt l’objet SQLServerStatement et SQLServerPreparedStatement.
- Si vous n'avez pas l'intention d'exécuter l'instruction plus d'une fois ou si vous ne disposez ni de paramètres IN ni de paramètres OUT, vous n'avez pas à utiliser l'objet SQLServerCallableStatement ou SQLServerPreparedStatement. Utilisez plutôt l’objet SQLServerStatement.
Utilisez l'accès simultané approprié aux objets ResultSet
Ne demandez pas d'accès simultané pouvant être mis à jour lorsque vous créez des instructions produisant des jeux de résultats, à moins que vous n'ayez réellement l'intention de mettre à jour les résultats. Le modèle de curseur en avant uniquement et en lecture seule est le plus rapide pour lire les petits jeux de résultats.
Limitez la taille de vos jeux de résultats
Utilisez la méthode setMaxRows (ou la syntaxe SET ROWCOUNT ou SELECT TOP N SQL) pour limiter le nombre de lignes retournées par des jeux de résultats potentiellement volumineux. Si vous devez gérer des jeux de résultats volumineux, songez à utiliser une mise en mémoire tampon adaptative des réponses en définissant la propriété de chaîne de connexion responseBuffering=adaptive, qui est le mode par défaut. Cette approche permet à l'application de traiter des jeux de résultats volumineux sans nécessiter de curseurs côté serveur ; par ailleurs, elle réduit l'utilisation de la mémoire de l'application. Pour plus d’informations, voir Utilisation de la mise en mémoire tampon adaptative.
Utilisez la taille d'extraction appropriée
Pour les curseurs côté serveur en lecture seule, il est nécessaire de choisir entre de nombreux allers-retours vers le serveur ou l'utilisation d'une grande quantité de mémoire dans le pilote. Pour les curseurs de serveurs pouvant être mis à jour, la taille d'extraction influence également la sensibilité des modifications au jeu de résultats et à l'accès simultané du serveur. Les mises à jour des lignes dans le tampon d’extraction actuel ne sont pas visibles tant qu’une méthode explicite refreshRow n’a pas été lancée ou que le curseur n’a pas quitté le tampon d’extraction. Les performances des tampons d'extraction importants seront meilleures (moins de boucles de connexion avec le serveur) ; néanmoins, les tampons sont moins sensibles aux modifications et réduisent l'accès simultané au serveur si CONCUR_SS_SCROLL_LOCKS (1009) est utilisé. Pour une sensibilité maximale aux modifications, utilisez une taille d'extraction de 1. Cependant, ce paramètre provoquera un aller-retour au serveur pour chaque ligne extraite.
Utilisez des flux pour les paramètres IN importants
Utilisez des flux ou des BLOB et des CLOB matérialisés de manière incrémentielle pour traiter la mise à jour d'importantes valeurs de colonne ou l'envoi d'importants paramètres IN. Le pilote JDBC envoie ces types au serveur en plusieurs allers-retours, ce qui vous permet de définir et de mettre à jour des valeurs plus importantes que ce que la mémoire peut contenir.
Voir aussi
Amélioration des performances et de la fiabilité avec le pilote JDBC