De DB2- database management systeem , zoals bij de meeste relationele databases , gebruik speciale bestanden genaamd indexen op te nemen lookups versnellen . De meeste van de tijd , programma's gebruiken een index om een bepaalde record uit een database tabel te halen , maar DB2 kunt u meerdere records die een bereik vertegenwoordigen lokaliseren . In het laatste geval een Structured Query Language verklaring dat ongelijkheden gebruikt zoals groter of kleiner te maken dan u . Waarom Gebruik een index ? Zonder een index , moet een computer elke record lezen in een tabel totdat het lokaliseert een dat een criterium past . Bijvoorbeeld , een online retailer heeft een database tabel met 100.000 klanten . Toen Joe Smith inlogt met zijn klant-id , zou de computer moeten tienduizenden verslagen te lezen tot hij zijn gevestigd . Door zelf , de operatie duurt een paar seconden , vermenigvuldigd met duizenden klanten , wordt dit uur extra verwerking . Een index slaat alleen de klant -id's in een apart bestand georganiseerd voor snelle toegang . DB2 lokaliseert de gewenste positie record in het bestand na het lezen van een paar index verslagen , met de positie van nummer , het haalt het record in de hoofdtabel direct . Met behulp van een index , DB2 vindt een record in een paar duizendsten van een seconde , sterk versnellen veel database- taken . Gelijkheid en ongelijkheid Een typisch programma maakt gebruik van een gelijkheid om een geïndexeerde plaat halen van een DB2-tabel , zoals de volgende SQL- code illustreert : SELECT customer_name , adres , stad, staat FROM klanten WHERE CUSTOMER_ID = '51412 ' ; de WHERE clausule in de SELECT-instructie gelijk het CUSTOMER_ID veld aan een klant ID-waarde . Soms kan u records wilt zien met een reeks waarden , zoals in de volgende SQL-instructie : SELECT customer_name , adres , stad, staat FROM klanten WHERE CUSTOMER_ID > = '51400 ' ; Hier wordt de staat trekt vele records van de database , te beginnen met een met een klantnummer groter dan of gelijk aan 51400 . Het gebruik van meer dan of gelijk aan symbool een voorbeeld van een ongelijkheid . Hoewel een gelijkheid haalt records die overeenstemmen met een enkele waarde , een ongelijkheid vindt verslagen van hogere of lagere waarde . The Net Exploitant DB2 gebruikt index van een tabel waar mogelijk , maar het hangt af van uw SQL statement is WHERE-component . Indien de verklaring heeft ongelijkheden , kunnen DB2 nog steeds gebruik maken van de index , maar de efficiëntie kunnen lijden . De operator LIKE illustreert hoe de index werkt in verschillende situaties , in feite het creëren van ongelijkheid met zijn jokertekens , " % " en de meest efficiënte SQL- instructie selecteert een enkele , ononderbroken reeks , zoals de volgende SQL- shows " _ . " : SELECT customer_name , adres , stad, staat FROM klanten WHERE CUSTOMER_ID LIKE '514 % ' ; de verklaring vindt alle records die customer_IDs beginnen met DB2 vindt de eerste record dat dit criterium voldoet " 514 . " , haalt alle volgende records die overeenkomen , stopt daarna . De volgende SQL-instructie is minder efficiënt : SELECT customer_name , adres , stad, staat FROM klanten WHERE CUSTOMER_ID LIKE ' _1400 ' ; Hier , het jokerteken " _ " geeft al klant -ID's die eindigen met " 1400 " , maar die begint met een willekeurig aantal . DB2 moet zoeken meeste index , vinden alle ID's die beginnen met " 1 ", " 2 " en zo verder tot het einde van de tabel . De index bespaart minder tijd in deze situatie . Multi - Field Indexes De WHERE clausules van veel SELECT-instructies opgeven meerdere velden . Om de snelheid van deze Selecteert verbeteren , kan een index meer dan een veld tegemoet . Bijvoorbeeld , de volgende SQL ziet er voor records met een combinatie van bewerkingen gelijkheid en ongelijkheid : SELECT customer_name , adres , stad, staat FROM klanten WHERE status = ' IL ' AND zip_code > = '60600 ' ; < br > Als u vaak gegevens met dezelfde velden en criteria , maakt u een nieuwe index combineren van de velden . Voor het beste rendement , zet de velden gelijkheid in de index eerst, gevolgd door de ongelijkheid velden .
|