B-Tree и Bitmap
Има два вида индекси, използвани в Oracle. Това са B-Tree и Bitmap. Тези индекси се използват за настройка на производителността, което на практика прави търсенето на записи и извличането им доста бързо. Функциите за индекси създават запис за всички стойности, които се появяват в индексираните колони. B-Tree индексите са типът, който се използва от OLTP системите и които се изпълняват главно по подразбиране. Bitmap, от друга страна, се предлага като силно компресиран индекс формат, който в повечето случаи се използва в хранилища с данни.
Най-общо Bitmap може да се посочи като метод за индексиране, въпреки че ползите от производителността и спестяванията при съхранение могат да се търсят. Използването му, както беше посочено по-горе, е главно в средата за съхранение на данни. Причината за това е, че актуализациите на данни не са толкова чести и ad hoc заявките са повече в околната среда. При прилагането на Bitmap се предпочитат ниски кардинални данни. Bitmap е предпочитаният избор за елементи от колони, които имат ниски опции като пол, които ще имат само 2 стойности и са предпочитани. Статичните данни в склада също са добра характеристика на данните, които биха се реализирали отлично с помощта на Bitmap. Друга характеристика на Bitmap е поток от битове, при който всеки бит се реализира до стойността на колоната в един ред на таблица.
Индексът на B-дърво, от друга страна, е индекс, който се създава на колони, които съдържат много уникални стойности. Индексът B-Tree има подредени записи, когато всеки запис има стойност на ключа за търсене и указател, който се отнася до даден ред и стойност. В случай, че сървърът намери съвпадащо ограничение, което се отнася до въпросната стойност, показалецът се разгръща, за да донесе реда.
Една от разликите между двете е, че има слабо дублиране и висока ко-сърдечност в B-Tree, докато обратното се случва в Bitmap. Bitmap има високи копия на копия и ниска сърдечност. Счита се, че Bitmap индексът е изгоден пред B-Tree индекса, тъй като има таблици, които имат милиони редове, тъй като посочените колони имат ниска кардиналност. Следователно индексите в Bitmap предлагат по-добра производителност, за разлика от индексите B-Tree.
B-Trees изглежда много бързо, когато се събира малък набор от данни, в повечето случаи данните не трябва да надвишават 10% от размера на базата данни. Тези две работят заедно, когато има много различни стойности, които са индексирани. Също така е уникално за B-Tree, че няколко индекса могат да бъдат обединени, за да се получи много ефективна програма. От друга страна, Bitmap има тенденция да работи най-добре, когато има по-ниски индексирани стойности за максимална ефективност.
B-дърветата са лоши, когато става въпрос за търсене на по-големи подмножества от данни, които надвишават 10% от данните за подмножеството. Bitmap поема това предизвикателство, за да даде висококачествени резултати, тъй като работи по-добре, когато има няколко различни стойности.
Ако има много индекси в заетата таблица, използваща B-Tree, проблем може да възникне в резултат на малки санкции, наложени при вмъкване на индексирани данни или в случай, че трябва да вмъквате и актуализирате индексирани данни. Това не е проблем с Bitmap, тъй като той е много ефективен при въвеждането и актуализирането на стойности, независимо от размера, който е под въпрос.
резюме
B-Tree и Bitmap са два типа индекси, използвани в Oracle
Bitmap е метод за индексиране, предлагащ ползи от производителността и спестяване на съхранение
B-Tree index е индекс, който се създава на колони, които съдържат много уникални стойности
B-Tree работи най-добре с много различни индексирани стойности
Bitmap работи най-добре с много различни индексирани стойности