Il sistema di gestione di database DB2 , come con la maggior parte dei database relazionali , impiega file speciali chiamati indici per velocizzare la ricerca di record . Il più delle volte , i programmi di utilizzare un indice per recuperare un record specifico di una tabella di database , tuttavia, DB2 consente di individuare più record che rappresentano un intervallo. In quest'ultimo caso , si crea una dichiarazione Structured Query Language , che utilizza le disuguaglianze , come superiore o inferiore . Perché utilizzare un indice ?
Senza un indice , un computer deve leggere ogni record di una tabella fino a quando non individua uno che corrisponde a un criterio . Ad esempio , un rivenditore online ha una tabella di database contenente 100.000 clienti . Quando Joe Smith accede con il suo ID cliente , il computer avrebbe dovuto leggere decine di migliaia di record fino a quando non trova il suo . Di per sé , l'operazione richiede pochi secondi , moltiplicato per migliaia di clienti , questo diventa ore di elaborazione aggiuntiva . Un indice memorizza solo gli ID cliente in un file separato organizzato per un rapido accesso . Individua DB2 la desiderata posizione del record del file dopo aver letto alcuni record di indice , con il numero di posizione , recupera il record nella tabella principale direttamente . L'utilizzo di un indice , DB2 trova un record in pochi millesimi di secondo , accelerando notevolmente molte attività di database .
Uguaglianza e disuguaglianza
Un tipico programma utilizza una parità per recuperare un record indicizzato da una tabella DB2 , come il seguente codice SQL illustra :
SELEZIONA CUSTOMER_NAME , indirizzo , città, stato FROM clienti WHERE customer_id = '51412 ';
la clausola WHERE l'istruzione SELECT equipara il campo customer_id ad un valore di ID cliente. Di tanto in tanto , si può decidere di visualizzare i record con un intervallo di valori , come nella seguente istruzione SQL :
CUSTOMER_NAME SELECT, indirizzo , città, stato FROM clienti WHERE customer_id > = '51400 ';
< p > Qui , l'istruzione tira molti record dal database , a cominciare da quello avente un ID cliente maggiore o uguale a 51400 . L' uso della maggiore o uguale a simbolo è un esempio di una disuguaglianza . Anche se una uguaglianza recupera i record che corrispondono a un singolo valore , una disuguaglianza trova record di maggiore o minore valore .
The Operatore Like
DB2 utilizza l'indice di un tavolo ovunque possibile , anche se dipende l'istruzione SQL è WHERE. Se l'istruzione ha disuguaglianze , DB2 può ancora utilizzare l'indice , ma di efficienza può soffrire . L' operatore LIKE illustra come l'indice funziona in diverse situazioni , in effetti creando disparità con i caratteri jolly , " %" e l'istruzione SQL più efficiente di selezionare un singolo , serie ininterrotta , come mostra la seguente SQL " _ ". :
SELEZIONA CUSTOMER_NAME , indirizzo , città, stato FROM clienti WHERE customer_id COME '514 % ';
l'affermazione trova tutti i record che hanno customer_IDs iniziano con DB2 trova il primo record che soddisfa questo criterio " 514 . " , recupera tutti i record successivi quella partita , poi si ferma. L'istruzione SQL successiva è meno efficiente :
Seleziona CUSTOMER_NAME , indirizzo , città, stato FROM clienti WHERE customer_id LIKE ' _1400 ';
Qui, il carattere jolly "_" indica tutti gli ID dei clienti che terminare con " 1400" , ma che inizia con un numero qualsiasi . DB2 deve verificare maggior dell'indice , trovare tutti gli ID che iniziano con " 1 ", " 2" e così via attraverso l'estremità del tavolo . L'indice consente di risparmiare meno tempo in questa situazione .
Multi -Field indici
WHERE di molte istruzioni SELECT specificano più campi . Per migliorare la velocità di questi seleziona , un indice può ospitare più di un campo . Ad esempio, il seguente SQL cerca i record utilizzando una combinazione di operazioni di uguaglianza e disuguaglianza :
SELEZIONA CUSTOMER_NAME , indirizzo , città, stato FROM clienti WHERE stato = ' IL ' E zip_code > = '60600 ';
Se spesso recuperare i dati utilizzando gli stessi campi e criteri , creare un nuovo indice che combina i campi . Per la migliore efficienza , mettere i campi di parità dell'indice primo , seguito dai campi di disuguaglianza .