Die Bedeutung der Cursorposition
Gilt für: Access 2013, Office 2013
Jeder Cursor verwendet temporäre Ressourcen zum Speichern der Daten. Bei diesen Ressourcen kann es sich um Arbeitsspeicher, eine Auslagerungsdatei auf einer Festplatte, temporäre Dateien auf der Festplatte oder sogar temporären Speicherplatz in der Datenbank handeln. Der Cursor wird als clientseitiger Cursor bezeichnet, wenn sich diese Ressourcen auf dem Clientcomputer befinden. Der Cursor wird als serverseitiger Cursor bezeichnet, wenn sich diese Ressourcen auf dem Server befinden.
Clientseitige Cursor
Rufen Sie in ADO mithilfe von adUseClientCursorLocationEnum für einen clientseitigen Cursor auf. Bei einem clientseitigen Nicht-Keysetcursor sendet der Server das gesamte Resultset über das Netzwerk an den Clientcomputer. Der Clientcomputer stellt die temporären Ressourcen, die vom Cursor und vom Resultset benötigt werden, bereit und verwaltet sie. Die clientseitige Anwendung kann das gesamte Resultset durchsuchen, um die benötigten Zeilen zu bestimmen.
Statische und keysetgesteuerte clientseitige Cursor können eine erhebliche Last für die Arbeitsstation bedeuten, falls sie zu viele Zeilen enthalten. Alle Cursorbibliotheken können zwar Cursor mit Tausenden von Zeilen erstellen, aber Anwendungen zum Abrufen solch umfangreicher Rowsets weisen möglicherweise eine beeinträchtigte Leistung auf. Es gibt natürlich Ausnahmen. Für manche Anwendungen kann ein umfangreicher clientseitiger Cursor perfekt geeignet sein und die Leistung stellt kein Problem dar.
Ein offensichtlicher Vorteil des clientseitigen Cursors ist die schnelle Reaktion. Nachdem das Resultset auf den Clientcomputer heruntergeladen wurde, werden die Zeilen sehr schnell durchsucht. Die Anwendung ist bei clientseitigen Cursorn im Allgemeinen skalierbarer, weil die Ressourcenanforderungen des Cursors auf jeden einzelnen Client und nicht auf den Server verteilt werden.
Serverseitige Cursor
Rufen Sie in ADO mithilfe von adUseServerCursorLocationEnum für einen serverseitigen Cursor auf. Mit einem serverseitigen Cursor verwaltet der Server das Resultset mithilfe von Ressourcen, die vom Servercomputer bereitgestellt werden. Der serverseitige Cursor gibt nur die angeforderten Daten über das Netzwerk zurück. Diese Art von Cursor bietet manchmal eine bessere Leistung als der clientseitige Cursor, insbesondere in Situationen, in denen übermäßiger Netzwerkverkehr ein Problem darstellt.
Es ist jedoch wichtig, darauf hinzuweisen, dass ein serverseitiger Cursor – zumindest vorübergehend – wertvolle Serverressourcen für jeden aktiven Client verbraucht. Sie müssen entsprechend planen, um sicherzustellen, dass Ihre Serverhardware alle serverseitigen Cursor verwalten kann, die von aktiven Clients angefordert werden. Außerdem kann ein serverseitiger Cursor langsam sein, da er nur den Zugriff auf eine einzelne Zeile ermöglicht – es ist kein Batchcursor verfügbar.
Serverseitige Cursor sind hilfreich beim Einfügen, Aktualisieren oder Löschen von Datensätzen. Bei serverseitigen Cursorn sind für eine Verbindung mehrere aktive Anweisungen möglich.