Oracle Lumikha ng Index

Oracle Lumikha Ng Index



Sa mga database ng Oracle, ang isang index ay tumutukoy sa isang istraktura ng data na sumusulong sa bilis ng mga operasyon sa pagkuha ng data sa isang talahanayan ng database. Gayunpaman, maaaring may parusa ito ng dagdag na pagpapatakbo ng pagsulat at espasyo sa imbakan sa iyong database.

Isang halimbawa kung saan magiging kapaki-pakinabang ang isang database index ay sa isang customer relationship management system.







Sa ganitong sistema, maaari tayong magkaroon ng database table na nag-iimbak ng impormasyon ng customer. Maaaring kabilang dito ang pangalan, address, paraan ng pagbabayad, impormasyon sa pakikipag-ugnayan, atbp.



Kung ang talahanayan ay nagtataglay ng maraming mga tala, marahil milyon-milyon sa kanila, maaaring tumagal ng mahabang panahon at mga mapagkukunan upang maghanap ng partikular na impormasyon ng customer mula sa database. Ito ay isang negatibong kababalaghan, lalo na sa mga database kung saan kritikal ang pagganap.



Upang libutin ito, maaari tayong gumamit ng index ng database.





Halimbawa, maaari tayong gumawa ng index sa column ng pangalan ng customer na magbibigay-daan sa database system na mabilis na mahanap at makuha ang impormasyon ng isang partikular na customer gamit ang pangalan. Samakatuwid, sa halip na ang database engine ay dumaan sa lahat ng mga row at column sa talahanayan, ginagamit lamang nito ang index upang maghanap ng impormasyon ng customer.

Sa tutorial na ito, matututunan mo kung paano gamitin ang command na CREATE INDEX sa Oracle database para makapagsimula ng bagong index.



Oracle Lumikha ng Pahayag ng Index

Ang sumusunod ay nagpapakita ng syntax ng CREATE INDEX na pahayag sa mga database ng Oracle:

GUMAWA NG INDEX index_name
SA table_name (column1, column2, ...);

Ang syntax sa itaas ay lumilikha ng index na pinangalanang index_name sa talahanayan na may pangalang table_name gamit ang mga tinukoy na column (column1, column2, atbp.) bilang susi para sa index.

Sa Oracle, ang pangunahing susi ay isang column o hanay ng mga column na natatanging kinikilala ang bawat row sa isang table. Bilang default, awtomatikong gumagawa ang Oracle ng isang natatanging index sa mga pangunahing hanay ng pangunahing key ng isang talahanayan upang ipatupad ang paghihigpit sa pagiging natatangi at pagbutihin ang pagganap ng mga pangunahing paghahanap ng key.

Gayunpaman, sa ilang mga kaso, maaaring kailanganin mong lumikha ng isang bagong index para sa isang partikular na talahanayan nang manu-mano.

Tingnan natin ang ilang halimbawa kung paano natin ito maisasakatuparan.

Halimbawa ng Oracle Create Index

Ipagpalagay na mayroon kaming isang talahanayan na naglalaman ng impormasyon ng empleyado tulad ng ipinapakita sa output sa ibaba:

piliin ang first_name, last_name, suweldo, hire_date mula sa EMPLOYEES;

Oracle Lumikha ng Index para sa Isang Column

Ipagpalagay na gusto naming gumawa ng index gamit ang first_name column. Maaari kaming magpatakbo ng isang query tulad ng ipinapakita:

gumawa ng index first_name_lookup sa EMPLOYEES(FIRST_NAME);

Ang CREATE INDEX statement na ito ay lumilikha ng index na pinangalanang first_name_lookup sa EMPLOYEES table, gamit ang FIRST_NAME column bilang susi para sa index. Maaaring gamitin ang index na ito upang mapabuti ang pagganap ng mga query na naghahanap ng mga empleyado sa pamamagitan ng kanilang unang pangalan.

Kapag nagawa na namin ang index, magagamit namin ito para maghanap ng partikular na empleyado tulad ng ipinapakita:

PUMILI first_name, last_name, suweldo, hire_date
MULA sa mga empleyado
WHERE first_name = 'William';

Resulta:

Kung wala ang first_name_lookup index, ang database system ay kailangang i-scan ang buong EMPLOYEES table upang mahanap ang lahat ng row kung saan ang FIRST_NAME column ay katumbas ng 'William.' Gayunpaman, kapag nakalagay ang index, ang database system ay mabilis na makakahanap ng mga row sa index gamit ang 'John' na halaga bilang susi at pagkatapos ay kunin ang hiniling na mga hilera mula sa talahanayan, na magiging mas mabilis.

Maaari mong tingnan ang mga hakbang na ginamit kapag gumagawa ng query gamit ang explain plan command gaya ng ipinapakita:

ipaliwanag ang plano para sa SELECT first_name, last_name, suweldo, hire_date
MULA sa mga empleyado
WHERE first_name = 'William';

Nagreresultang plano ng query:

Halimbawa 2 – Oracle Lumikha ng Index na may Maramihang Mga Column

Katulad nito, maaari tayong lumikha ng isang index na binubuo ng higit sa isang column sa isang ibinigay na talahanayan. Halimbawa, ipagpalagay na gusto naming lumikha ng isang index na binubuo ng first_name at last_name column.

Maaari naming gamitin ang code tulad ng ipinapakita:

gumawa ng index multi_lookup sa EMPLOYEES(FIRST_NAME, LAST_NAME);

Ang CREATE INDEX statement na ito ay gumagawa ng index na pinangalanang multi_lookup sa EMPLOYEES table, gamit ang FIRST_NAME at LAST_NAME na mga column bilang susi para sa index.

Kapag nalikha na, magagamit natin ang index na ito gaya ng ipinapakita sa sample na query gaya ng ipinapakita:

PUMILI first_name, last_name, suweldo, hire_date
MULA sa mga empleyado
WHERE first_name = 'William' AT last_name = 'Smith';

Nagresultang halaga:

At doon, mayroon kang paraan ng pagpapabilis ng iyong mga query sa database sa pamamagitan ng paggamit ng mga index upang limitahan ang saklaw ng paghahanap.

Konklusyon

Ang pahayag ng CREATE INDEX sa Oracle ay nagbibigay-daan sa amin na lumikha ng isang index sa isang talahanayan upang mapabuti ang pagganap ng mga operasyon sa pagkuha ng data. Gayunpaman, bagama't maaaring mapabuti ng mga index ang pagganap ng query, nagkakaroon din sila ng mga parusa sa espasyo ng imbakan, na humahantong sa pinababang pagpapatakbo ng bilis ng pagsulat, gamitin lamang ang mga ito kapag kinakailangan.