B-Ağacı ve Bitmap arasındaki fark

B-Ağacı ve Bitmap

Oracle'da kullanılan iki tür dizin vardır. Bunlar B-Ağacı ve Bitmap. Bu indeksler performans ayarlama için kullanılır, bu da aslında kayıtları aramayı ve onları hızlı bir şekilde almayı sağlar. Dizin işlevleri, dizinlenmiş sütunlarda görünen tüm değerler için bir girdi oluşturur. B-Tree dizinleri, OLTP sistemleri tarafından kullanılan ve çoğunlukla varsayılan olarak uygulanan türdür. Diğer yandan Bitmap, çoğu durumda veri depolarında kullanılan oldukça sıkıştırılmış bir dizin biçimi olarak gelir.

Bitmap genel olarak bir endeksleme yöntemi olarak adlandırılabilir, ancak hangi performans avantajları ve depolama tasarrufları istenebilir. Daha önce belirtildiği gibi, kullanımı esas olarak veri ambarı ortamındadır. Bunun nedeni, veri güncellemelerinin sık olmaması ve geçici sorguların ortamda daha fazla olmasıdır. Bitmap'in uygulanmasında düşük kardinal veriler tercih edilir. Bitmap, cinsiyet gibi düşük seçenekleri olan, yalnızca 2 değeri olan ve tercih edilen sütun öğeleri için tercih edilen seçimdir. Depodaki statik veriler de Bitmap kullanılarak mükemmel bir şekilde uygulanacak verilerin iyi bir özelliğidir. Bitmap'in başka bir özelliği, her bitin tablonun tek bir satırındaki bir sütun değerine uygulandığı bir bit akışıdır..

Öte yandan, bir B-ağacı dizini, çok benzersiz değerler içeren sütunlarda oluşturulan bir dizindir. B-Tree dizininde, her bir girişin bir arama anahtarı değeri ve belirli bir satır ve değere karşılık gelen bir işaretçi olduğu sıralı girişler bulunur. Bir sunucunun söz konusu değerle ilgili bir eşleştirme kısıtlaması bulması durumunda, işaretçiyi satırı getirmek için konuşlandırılır.

İkisi arasındaki farklardan biri, B-Ağacı'nda düşük çoğaltma ve yüksek eşdüzeylik olması, Bitmap'te ise tam tersi olmasıdır. Bitmap'in yüksek çoğaltma örnekleri ve düşük samimiyeti vardır. Bitmap indeksi, belirtilen sütunların düşük kardinaliteye sahip olduğu için milyonlarca satıra sahip tablolara sahip olduğu için B-Tree endeksine göre avantajlı olduğu görülmektedir. Bu nedenle, Bitmap'teki dizinler, B-Ağacı dizinlerinin aksine daha iyi bir performans sunar.

B-Ağaçları küçük bir veri kümesi toplandığında son derece hızlı gibi görünmektedir, çoğu durumda veri veritabanı boyutunun% 10'unu geçmemelidir. Bu ikisi, değerleri endekslenen birçok farklı değer olduğunda birlikte çalışır. Çok verimli bir program oluşturmak için birkaç endeksin birleştirilmesi de B-Tree'ye özgüdür. Diğer yandan Bitmap, maksimum verimlilik için daha düşük endekslenmiş değerler olduğunda en iyi şekilde çalışma eğilimindedir.

B-ağaçları, alt küme verilerinin% 10'unu aşan daha büyük veri alt kümeleri ararken zayıftır. Bitmap, birkaç farklı değer olduğunda daha iyi çalıştığı için yüksek kaliteli sonuçlar sunmak için bu zorluğu üstlenir.

B-Ağacı kullanan meşgul bir tabloda çok sayıda dizin varsa, dizinli veri eklenirken verilen küçük cezalar veya dizinli veri ekleyip güncellemeniz gerektiğinde bir sorun ortaya çıkabilir. Bu, söz konusu boyut ne olursa olsun, değer ekleme ve güncelleme konusunda çok verimli olduğu için Bitmap ile ilgili bir sorun değildir..

özet

B-Ağacı ve Bitmap, Oracle'da kullanılan iki tür dizintir
Bitmap, performans avantajları ve depolama tasarrufu sağlayan bir dizin oluşturma yöntemidir
B-Tree dizini, çok benzersiz değerler içeren sütunlarda oluşturulan bir dizindir
B-Tree, birçok farklı indekslenmiş değerle en iyi şekilde çalışır
Bitmap, birçok farklı indekslenmiş değerle en iyi şekilde çalışır