Cursori impliciti vs. Cursori espliciti

March 15

Cursori impliciti vs. Cursori espliciti


I programmatori usano il linguaggio di query standard (SQL) per accedere a un database e modificarne il contenuto. Poiché un database contiene molti più dati di quanto può elaborare in qualsiasi momento, si limita il suo lavoro di una piccola porzione di memoria chiamata area contesto. I programmatori accedere all'area contesto utilizzando un cursore. cursori impliciti ed espliciti servono allo stesso scopo essenziale che permette ai programmatori di accedere alle righe restituite da un'istruzione SQL in sequenza, ma ognuno offre anche un set unico di punti di forza e svantaggi.

Creazione

Per impostazione predefinita, SQL accede ai dati utilizzando un cursore implicito. I programmatori e gli ingegneri di database semplicemente scrivere un'istruzione SQL ed eseguirlo, e SQL verranno automaticamente contare su un cursore implicito per eseguire l'istruzione. Non è necessario creare un'istanza o dichiarare una variabile di utilizzare un cursore implicito. Per usare un cursore esplicito, tuttavia, è necessario creare un'istanza in modo esplicito utilizzando le parole chiave nome_cursore. Una volta che il filo esce dal blocco di codice, SQL rimuove il cursore esplicito dalla memoria.

Singolo recupero Row

Se usato correttamente, un cursore esplicito eseguito in modo più efficiente di un cursore implicito quando si recuperano una singola riga da un database. Un cursore implicito deve fare due viaggi di andata per tornare una riga da un database. Il primo viaggio serve per recuperare la riga, il secondo per valutare se il numero di righe supererà il numero massimo di righe consentite. Al contrario, un cursore esplicito fa solo un singolo di andata e ritorno al database per recuperare una riga. Non si deve preoccupare di questa differenza minore in circostanze normali, ma in situazioni in cui è necessario eseguire molti richiami una sola riga, utilizzare un cursore esplicito.

Velocità

Sotto la grande maggioranza dei casi, una query SQL che si basa su un cursore implicito eseguito più rapidamente di una query che si basa su un cursore esplicito. Naturalmente, è necessario utilizzare una query esplicito quando si ha bisogno di eseguire un gran numero di query sola riga, ma sotto quasi ogni altra circostanza, si dovrebbe utilizzare una query implicita. query impliciti non solo eseguire più rapidamente, ma i programmatori trovano più facili da usare e gestire.

Controllo

Un programmatore non può esercitare un maggiore 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 attributi di un cursore implicito, come si può con un cursore esterno, né è possibile usare facilmente ramificazione o altre dichiarazioni di decisione.