programmatori utilizzano il linguaggio di query standard ( SQL) per accedere a un database e modificarne il contenuto . Poiché un database contiene molti più dati di quanto non può elaborare in un dato momento , confina il suo lavoro per una piccola porzione di memoria definita area di contesto. I programmatori accedono all'area contesto utilizzando un cursore . Cursori impliciti ed espliciti hanno lo stesso scopo essenziale di consentire ai programmatori di accedere alle righe restituite da un'istruzione SQL in modo sequenziale , ma ciascuno offre anche una serie unica di punti di forza e svantaggi. Creazione
Per impostazione predefinita , SQL accede ai dati utilizzando un cursore implicito . I programmatori e gli ingegneri del database semplicemente scrivere un'istruzione SQL ed eseguirlo , e SQL si baserà automaticamente su un cursore implicito per eseguire l'istruzione . Non è necessario creare un'istanza o dichiarare una variabile di utilizzare un cursore implicito . Per utilizzare un cursore esplicito , tuttavia, è necessario istanziare esplicitamente utilizzando le parole chiave cursor_name . Una volta che il thread esce dal blocco di codice SQL rimuove il cursore esplicito dalla memoria.
Fila singola Retrieval
Se usato correttamente , un cursore esplicito esegue più efficiente di un implicito cursore durante il recupero di una singola riga da un database. Un cursore implicito deve fare due viaggi di andata di restituire una riga da un database. Il primo viaggio serve per recuperare la riga , il secondo per valutare se il numero di righe supera il numero massimo di righe consentite . Al contrario , un cursore esplicito fa un solo viaggio di andata e ritorno al database per recuperare una riga . Non si deve preoccupare di questa differenza minore in circostanze ordinarie , ma in situazioni in cui è necessario eseguire molti recuperi di singolo-fila , utilizzare un cursore esplicito .
Velocità
Sotto la grande maggioranza dei casi, una query SQL che si basa su un cursore implicito viene eseguito più rapidamente di una query che si basa su un cursore esplicito . Naturalmente , è necessario utilizzare una query esplicita quando si ha bisogno di eseguire un gran numero di query di singolo-fila , ma in quasi ogni altra circostanza , è necessario utilizzare una query implicita . Query impliciti non solo eseguire più rapidamente, ma i programmatori li trovano più facile da utilizzare e gestire .
Controllo
Un programmatore non può esercitare un maggiore controllo su un cursore esplicito che un cursore implicito . È possibile controllare direttamente il movimento e l'esecuzione di un cursore esplicito , ma un cursore implicito rimane sotto il controllo indipendente di motore interno di SQL . Non è possibile accedere attributi di un cursore implicito che puoi con un cursore esterno , né è possibile utilizzare facilmente ramificazione o altre dichiarazioni decisionali .