Programmierer verwenden Standard Query Language ( SQL) auf eine Datenbank zugreifen und seinen Inhalt ändern . Da eine Datenbank enthält weit mehr Daten, als es zu einem bestimmten Zeitpunkt verarbeitet werden können , beschränkt sie ihre Arbeit zu einem kleinen Teil des Speichers als den Kontext Bereich . Programmierer Zugriff auf den Kontext Bereich mit einem Cursor . Implizite und explizite Cursor dienen dem gleichen Zweck, wesentliche Programmierer , um die Zeilen durch eine SQL -Anweisung zurückgegeben sequentiell zugreifen , aber jede bietet auch eine einzigartige Reihe von Stärken und Nachteile. Creation
Standardmäßig greift SQL-Daten mit Hilfe eines impliziten Cursors . Programmierer und Datenbank- Ingenieure schreiben Sie einfach eine SQL-Anweisung , und führen Sie es , und SQL wird automatisch auf eine implizite Cursor verlassen, um die Anweisung auszuführen. Sie brauchen nicht zu instanziieren oder eine Variable auf eine implizite Cursor verwenden . Um eine explizite Cursor zu verwenden, müssen Sie jedoch explizit instanziieren es mit den cursor_name Suchbegriffe. Nachdem der Thread beendet den Code -Block , den expliziten SQL Cursor entfernt aus dem Speicher.
Einreihig Retrieval
Wenn richtig eingesetzt, führt eine explizite Cursor effizienter als eine implizite Cursor beim Abrufen eine einzelne Zeile aus einer Datenbank. Eine implizite Cursor muss zwei Hin-und Rückfahrten , um eine Zeile aus einer Datenbank zurück. Die erste Reise dient dazu, die Zeile abzurufen, die zweite zu beurteilen, ob die Anzahl der Zeilen wird die maximale Anzahl von Zeilen erlaubt überschreiten . Im Gegensatz dazu macht eine explizite Cursor nur ein einziges Hin-und Rückfahrt mit der Datenbank , um eine Zeile abzurufen. Sie sollten nicht über dieses kleine Unterschied unter gewöhnlichen Umständen machen, aber in Situationen, in denen Sie viele einreihige Abfragen ausführen müssen , verwenden Sie eine explizite Cursor .
Geschwindigkeit
Unter der großen Mehrzahl der Fälle führt eine SQL-Abfrage , die auf einer impliziten Cursor setzt schneller als eine Abfrage, die auf einer expliziten Cursor setzt . Natürlich sollten Sie eine explizite Abfrage , wenn Sie eine sehr große Anzahl von single-row -Abfragen ausführen müssen , aber unter fast jedem anderen Umstand , sollten Sie eine implizite Abfrage verwenden . Implizite Abfragen nicht nur schneller auszuführen, sondern Programmierer finden sie einfacher zu bedienen und zu verwalten.
Steuerung
Ein Programmierer nicht ausüben kann viel größere Kontrolle über eine explizite Cursor als eine implizite Cursor . Sie können direkt die Bewegung und Ausführung eines expliziten Cursor , aber eine implizite Cursor bleibt unter der unabhängige Steuerung der internen Motor SQL ist . Sie können nicht auf eine implizite Cursor Attribute wie Sie können mit einem externen Cursor , noch können Sie ganz einfach nutzen Verzweigung oder andere Entscheidung Aussagen .