Oracle izveidot indeksu

Oracle Izveidot Indeksu



Oracle datu bāzēs indekss attiecas uz datu struktūru, kas paātrina datu izguves operācijas datu bāzes tabulā. Tomēr par to var tikt piemērotas papildu rakstīšanas darbības un uzglabāšanas vieta jūsu datubāzē.

Viens piemērs tam, kur datu bāzes indekss varētu būt noderīgs, ir klientu attiecību pārvaldības sistēma.







Šādā sistēmā mums var būt datu bāzes tabula, kurā tiek glabāta klienta informācija. Tas varētu ietvert vārdu, adresi, maksājuma veidus, kontaktinformāciju utt.



Ja tabulā ir daudz ierakstu, iespējams, miljoniem no tiem, konkrētas klienta informācijas meklēšana datubāzē var aizņemt daudz laika un resursu. Tā ir negatīva parādība, īpaši datu bāzēs, kur veiktspēja ir kritiska.



Lai to apietu, mēs varam izmantot datu bāzes indeksu.





Piemēram, klienta vārda kolonnā varam izveidot indeksu, kas ļautu datu bāzes sistēmai ātri atrast un izgūt konkrēta klienta informāciju, izmantojot vārdu. Tāpēc tā vietā, lai datu bāzes programma iet cauri visām tabulas rindām un kolonnām, tā izmanto tikai indeksu, lai meklētu informāciju par klientiem.

Šajā apmācībā jūs uzzināsit, kā Oracle datubāzē izmantot komandu CREATE INDEX, lai inicializētu jaunu indeksu.



Oracle Izveidot indeksa paziņojumu

Tālāk ir parādīta priekšraksta CREATE INDEX sintakse Oracle datu bāzēs:

IZVEIDOT INDEX indeksa_nosaukums
ON tabulas_nosaukums (kolonna1, kolonna2, ...);

Iepriekš minētā sintakse izveido tabulā indeksu ar nosaukumu indeksa_nosaukums ar nosaukumu tabulas_nosaukums, izmantojot norādītās kolonnas (kolonna1, kolonna 2 utt.) kā indeksa atslēgu.

Oracle primārā atslēga ir kolonna vai kolonnu kopa, kas unikāli identificē katru tabulas rindu. Pēc noklusējuma Oracle automātiski izveido unikālu indeksu tabulas primārās atslēgas kolonnās, lai ieviestu unikalitātes ierobežojumu un uzlabotu primārās atslēgas uzmeklēšanas veiktspēju.

Tomēr dažos gadījumos jums var būt nepieciešams manuāli izveidot jaunu indeksu konkrētai tabulai.

Apskatīsim dažus piemērus, kā mēs varam to paveikt.

Oracle izveides indeksa piemērs

Pieņemsim, ka mums ir tabula, kurā ir informācija par darbiniekiem, kā parādīts tālāk esošajā izvadā:

izvēlieties vārdu_vārdu, uzvārdu, algu, pieņemšanas_datumu no DARBINIEKIEM;

Oracle izveido indeksu vienai kolonnai

Pieņemsim, ka mēs vēlamies izveidot indeksu, izmantojot kolonnu first_name. Mēs varam izpildīt vaicājumu, kā parādīts:

izveidot indeksu first_name_lookup vietnē EMPLOYEES(FIRST_NAME);

Šis CREATE INDEX priekšraksts izveido indeksu ar nosaukumu first_name_lookup tabulā EMPLOYEES, izmantojot kolonnu FIRST_NAME kā indeksa atslēgu. Šo indeksu var izmantot, lai uzlabotu to vaicājumu veiktspēju, kuros darbinieki tiek meklēti pēc viņu vārda.

Kad indekss ir izveidots, mēs varam to izmantot, lai meklētu konkrētu darbinieku, kā parādīts attēlā:

SELECT vārds, uzvārds, alga, nomas_datums
NO darbiniekiem
WHERE first_name = 'Viljams';

Rezultāts:

Bez first_name_lookup indeksa datu bāzes sistēmai būtu jāskenē visa tabula EMPLOYEES, lai atrastu visas rindas, kurās FIRST_NAME kolonna ir vienāda ar 'William'. Tomēr, ja indekss ir ievietots, datu bāzes sistēma var ātri uzmeklēt rindas indeksēt, izmantojot kā atslēgu 'Jāņa' vērtību, un pēc tam izgūt pieprasītās rindas no tabulas, kas būs daudz ātrāk.

Varat skatīt darbības, kas tiek izmantotas, veicot vaicājumu, izmantojot komandu izskaidrot plānu, kā parādīts attēlā:

paskaidrojiet plānu SELECT vārds, uzvārds, alga, nomas_datums
NO darbiniekiem
WHERE first_name = 'Viljams';

Rezultātā iegūtais vaicājumu plāns:

2. piemērs – Oracle Izveidojiet indeksu ar vairākām kolonnām

Līdzīgi mēs varam izveidot indeksu, kas sastāv no vairāk nekā vienas kolonnas dotajā tabulā. Piemēram, pieņemsim, ka mēs vēlamies izveidot indeksu, kas sastāv no kolonnas first_name un last_name.

Mēs varam izmantot kodu, kā parādīts:

izveidot indeksu multi_lookup uz EMPLOYEES(FIRST_NAME, LAST_NAME);

Šis CREATE INDEX priekšraksts izveido indeksu ar nosaukumu multi_lookup tabulā EMPLOYEES, izmantojot kolonnas FIRST_NAME un LAST_NAME kā indeksa atslēgu.

Kad indekss ir izveidots, mēs varam izmantot šo indeksu, kā parādīts vaicājuma paraugā, kā parādīts:

SELECT vārds, uzvārds, alga, nomas_datums
NO darbiniekiem
WHERE first_name = 'Viljams' AND last_name = 'Smits';

Iegūtā vērtība:

Un tur jums ir metode, kā paātrināt datu bāzes vaicājumus, izmantojot indeksus, lai ierobežotu meklēšanas jomu.

Secinājums

CREATE INDEX priekšraksts programmā Oracle ļauj izveidot tabulā indeksu, lai uzlabotu datu izguves darbību veiktspēju. Tomēr, lai gan indeksi var uzlabot vaicājumu veiktspēju, tie rada arī soda naudu par krātuves vietu, kas samazina rakstīšanas ātrumu, izmantojiet tos tikai nepieciešamības gadījumā.