Die DB2-Datenbank -Management-System , wie bei den meisten relationalen Datenbanken beschäftigt spezielle Dateien genannt Indizes Rekord Suchvorgänge beschleunigen . Die meisten der Zeit , Programme verwenden, einen Index, um einen bestimmten Datensatz aus einer Datenbank -Tabelle abrufen , jedoch können Sie DB2 lokalisieren mehrere Datensätze , die eine Reihe stellen . Im letzteren Fall , erstellen Sie eine Structured Query Language Anweisung, die Ungleichheiten verwendet wie größer oder kleiner als . Warum ein Index ?
Ohne einen Index muss ein Computer jeden Datensatz in einer Tabelle zu lesen, bis es findet eine, die ein Kriterium entspricht . Zum Beispiel hat ein Online-Händler eine Datenbank Tabelle mit 100.000 Kunden . Wenn Joe Smith anmeldet mit seiner Kundennummer , würde der Computer haben , um Zehntausende von Datensätzen zu lesen, bis es entfernt sein . Von selbst, dauert der Vorgang ein paar Sekunden , multipliziert mit Tausenden von Kunden , wird diese Stunden zusätzliche Verarbeitung . Ein Index speichert nur die Kunden-IDs in einer separaten Datei für den schnellen Zugriff organisiert . DB2 ortet der gewünschte Datensatz die Position in der Datei nach der Lektüre ein paar Index-Datensätze , mit der Zahl der Position, ruft er den Datensatz in der Haupttabelle direkt . Mit einem Index findet DB2 einen Datensatz in ein paar Tausendstel einer Sekunde , stark beschleunigt viele Datenbank- Aufgaben .
Gleichheit und Ungleichheit
Ein typisches Programm eine Gleichheit verwendet eine indizierte Datensatz aus einer DB2-Tabelle abrufen , wie die folgende SQL-Code zeigt :
SELECT customer_name , Adresse, Ort, Bundesland FROM Kunden WHERE = '51412 ' cUSTOMER_ID ;
der WHERE-Klausel in die SELECT-Anweisung entspricht die cUSTOMER_ID Feld einem Kunden -ID-Wert . Gelegentlich möchten Sie vielleicht , um Datensätze mit einer Reihe von Werten , wie in der folgenden SQL-Anweisung finden Sie unter:
SELECT customer_name , Adresse, Ort, Bundesland FROM Kunden WHERE CUSTOMER_ID > = '51400 ';
< p> Hier zieht der Aussage viele Datensätze aus der Datenbank , beginnend mit dem eine mit einer Kunden-ID größer als oder gleich 51400 . Die Verwendung der größer als oder gleich Symbol ist ein Beispiel einer Ungleichheit. Obwohl eine Gleichheit ruft Datensätze passend einen einzelnen Wert , findet eine Ungleichheit Aufzeichnungen von größerer oder geringerer Wert .
Der Like-Operator
DB2 verwendet eine Tabelle , wo der Index möglich, obwohl es hängt von Ihrer SQL-Anweisung WHERE-Klausel . Wenn die Anweisung hat Ungleichheiten können DB2 noch den Index verwenden , aber die Effizienz leiden können. Der LIKE-Operator veranschaulicht, wie der Index in verschiedenen Situationen funktioniert , in der Tat die Schaffung Ungleichheiten mit seinen Platzhalterzeichen "%" und der effizienteste SQL -Anweisung wählt eine einzige , ununterbrochene Reihe , wie die folgende SQL zeigt "_ . ":
SELECT customer_name , Adresse, Ort, Bundesland FROM Kunden WHERE LIKE '514 % cUSTOMER_ID ';
die Anweisung findet alle Datensätze mit customer_IDs beginnend mit DB2 findet die erste Platte , die dieses Kriterium erfüllt " 514 ". , ruft alle nachfolgenden Datensätze, die Spiel, stoppt dann. Der nächste SQL-Anweisung ist weniger effizient :
SELECT customer_name , Adresse, Ort, Bundesland FROM Kunden WHERE LIKE ' _1400 ' CUSTOMER_ID ;
Hier das Platzhalterzeichen "_" legt alle Kundennummern , dass Ende mit " 1400 ", sondern die mit einer beliebigen Anzahl beginnt . DB2 muss suchen die meisten den Index finden Sie alle IDs , die mit " 1", " 2" und so beginnen am durch das Ende der Tabelle. Der Index spart weniger Zeit in dieser Situation.
Mehrfeldsuche Indizes
Die WHERE-Klauseln von SELECT-Anweisungen angeben vielen verschiedenen Bereichen . Um die Geschwindigkeit dieser SELECTs zu verbessern, kann ein Index Platz für mehr als ein Feld . Zum Beispiel sieht die folgende SQL- Datensätze für die Verwendung einer Kombination von Gleichheit und Ungleichheit Operationen :
SELECT customer_name , Adresse, Ort, Bundesland FROM Kunden WHERE State = ' IL ' AND zip_code > = '60600 ';
Wenn Sie abrufen oft Daten mit dem gleichen Felder und Kriterien , erstellen Sie einen neuen Index kombiniert die Felder . Für die beste Effizienz , setzen die Gleichheit Felder im Index , gefolgt von den Bereichen Ungleichheit .