Nwlapcug.com


Cursori impliciti vs cursori espliciti

Cursori impliciti vs cursori espliciti


I programmatori utilizzano standard query language (SQL) per accedere a un database e modificarne il contenuto. Perché un database contiene molti più dati che è possibile elaborare in un dato momento, confina il relativo lavoro per una piccola porzione di memoria chiamata l'area di contesto. I programmatori accedere all'area di contesto utilizzando un cursore. I cursori impliciti ed espliciti serviscono allo stesso scopo essenziale di permettere ai programmatori di accedere le righe restituite da un'istruzione SQL in modo sequenziale, ma ognuno 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 database semplicemente scrivere un'istruzione SQL ed eseguono, e SQL automaticamente si baserà su un cursore implicito per eseguire l'istruzione. Non è necessario creare un'istanza o dichiarare una variabile per utilizzare un cursore implicito. Per utilizzare un cursore esplicito, tuttavia, deve esplicitamente istanziarla utilizzando le parole chiave cursor_name. Una volta che il thread esce dal blocco di codice, SQL rimuove il cursore esplicito dalla memoria.

Singola riga recupero

Se usato correttamente, un cursore esplicito viene eseguito in modo più efficiente rispetto a un cursore implicito durante il recupero di una singola riga da un database. Un cursore implicito deve fare due viaggi di andata per 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 consentito. Al contrario, un cursore esplicito fa solo un singolo round trip al database per recuperare una riga. Non si deve preoccupare di questa piccola differenza in circostanze normali, ma in situazioni dove è necessario eseguire molti recuperi di singolo-fila, utilizzare un cursore esplicito.

Velocità

Sotto la grande maggioranza delle circostanze, 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, è consigliabile utilizzare una query esplicita quando è necessario eseguire un numero molto elevato di query di singolo-fila, ma sotto quasi ogni altra circostanza, è necessario utilizzare una query di implicito. Query implicita non solo eseguire più rapidamente, ma i programmatori trovano più facile da utilizzare e gestire.

Controllo

Un programmatore non può esercitare il maggior controllo su un cursore esplicito di un cursore implicito. È possibile controllare direttamente il movimento e l'esecuzione di un cursore esplicito, ma un cursore implicito rimane sotto il controllo indipendente del motore interno di SQL. Non è possibile accedere gli attributi di un cursore implicito come è possibile con un cursore esterno, né è possibile facilmente utilizzare ramificazione o altre istruzioni di decisione.