Signification de l’emplacement du curseur
Chaque curseur utilise des ressources temporaires pour contenir ses données. Ces ressources peuvent être de la mémoire, un fichier d’échange sur disque, des fichiers temporaires sur disque, voire un stockage temporaire dans la base de données. Le curseur est appelé curseur côté client quand ces ressources se trouvent sur l’ordinateur client. Le curseur est appelé curseur côté serveur quand ces ressources se trouvent sur le serveur.
Curseurs côté client
Dans ADO, appelez un curseur côté client en utilisant adUseClient CursorLocationEnum. Avec un curseur côté client autre que de jeu de clés, le serveur envoie la totalité du jeu de résultats via le réseau à l’ordinateur client. L’ordinateur client fournit et gère les ressources temporaires nécessaires au curseur et au jeu de résultats. L’application côté client peut parcourir la totalité du jeu de résultats pour déterminer les lignes dont elle a besoin.
Les curseurs côté client, statiques et de jeu de clés, peuvent imposer une charge importante à votre station de travail s’ils incluent trop de lignes. Bien que toutes les bibliothèques de curseurs soient capables de générer des curseurs avec des milliers de lignes, des applications conçues pour extraire des ensembles de lignes aussi volumineux offrent parfois des performances médiocres. Il y a bien sûr des exceptions. Pour certaines applications, un curseur volumineux côté client peut être parfaitement approprié, et les performances peuvent ne pas être problématiques.
Un avantage évident du curseur côté client est la rapidité de réponse. Une fois le jeu de résultats téléchargé sur l’ordinateur client, la navigation dans des lignes est très rapide. Votre application est généralement plus évolutive avec des curseurs côté client, car la satisfaction des besoins en ressources du curseur dépend des différents clients, pas du serveur.
Curseurs côté serveur
Dans ADO, appelez un curseur côté serveur en utilisant adUseServer CursorLocationEnum. Avec un curseur côté serveur, le serveur gère le jeu de résultats à l’aide de ressources fournies par l’ordinateur serveur. Le curseur côté serveur retourne uniquement les données demandées sur le réseau. Ce type de curseur offre parfois de meilleures performances qu’un curseur côté client, en particulier dans des situations où un trafic réseau excessif pose problème.
Toutefois, il est important de souligner qu’un curseur côté serveur consomme, au moins temporairement, des ressources du serveur précieuses pour chaque client actif. Vous devez planifier en conséquence pour vous assurer que le matériel de votre serveur est capable de gérer tous les curseurs côté serveur demandés par des clients actifs. Par ailleurs, un curseur côté serveur peut être lent, car il ne fournit l’accès qu’à une ligne unique. Aucun curseur de lot n’est disponible.
Les curseurs côté serveur sont utiles lors de l’insertion, de la mise à jour ou de la suppression d’enregistrements. Avec des curseurs côté serveur, vous pouvez avoir plusieurs instructions actives sur la même connexion.