2009-08-31 16 views
8

Genellikle bir sorgunun hedefi olan sayısal bir sütunun bölümlendirilmesi için bir performans avantajı olup olmadığını öğrenmek istiyorum. Şu anda ~ 50 milyon kayıt içeren somutlaşmış bir görünüm var. Düzenli bir b-ağaç dizinini kullanırken ve bu sayısal sütuna göre arama yaparken, 7 saniyelik bir maliyet ve yaklaşık 0,8 saniyede sorgu sonuçları elde ederim (asal olmayan önbellek ile). Bu sütun için global bir karma bölüm ekledikten sonra (64 bölümlü) 6'lık bir maliyet ve yaklaşık 0,2 saniyede sorgu sonuçları elde ediyorum (yine ön hazırlanmamış önbellek ile).Global olarak bölümlenmiş bir dizin bölümlenmemiş bir dizinden daha iyi (daha hızlı) mı?

İlk yanıtım, bölümlenmiş dizinin, sorgunun performansını geliştirmesidir. Ancak, bunun sadece tesadüf olabileceğini ve tamamen araştırılan değerlere veya farkında olmadığım diğerlerine bağlı olabileceğini anlıyorum. Yani benim sorum şu: büyük bir tablodaki sayısal bir sütuna global bir karma bölüm eklemeye yönelik bir performans yararı var mı, yoksa sadece bir tam aralıklı tarama yapmanın maliyeti ile hangi tartı taramasının tartılabileceğini belirleme maliyeti. endekslenmemiş bölüm

Eminim bu, birçok Oracle sorusu gibi, bir "bağlıdır" ile yanıtlanabilir. :) Her yaklaşımın faydalarını belirlemek için hangi faktörleri göz önünde bulundurmam gerektiğini öğrenmek istiyorum.

Teşekkürler!

cevap

4

Bu referansı araştırmanızda bulmuş olduğunuzdan eminim - Partitioned Tables and Indexes. Bununla birlikte, birileri ilgilenirse, ona bir bağlantı veririm, bu bölümleme konusunda çok iyi bir malzemedir.

Şu noktaya kadar - Bölünmüş dizin sadece endeksi parçalara ayırır (durumunuzdaki 16) ve verileri karma bölümleme anahtarına bağlı olarak yayar. Bunu kullanmak istediğinizde, Oracle anahtarın karma değerini "hesaplar" ve hangi bölümün arama ile devam edeceğini belirler.

Dizin aramanın nasıl çalıştığını bilmek, gerçekten çok büyük verilerde, geçiş yaptığınız dizin ağacını (normal dizin) azaltmak için bölümlenmiş dizini seçmenin daha iyi olduğunu düşünüyorum. Bu gerçekten tabloda yer alan verilere (normal indeks ağacının nasıl oluşturulduğuna) bağlıdır ve başlangıç ​​düğümünden düzenli ağaç traversinden daha düşük düğüme daha hızlı ve doğrudan atlamadır.

Son olarak, test sonuçlarından daha emin olmalısınız. Bir teknik kesin verilerinizden daha iyi sonuçlar verirse, bunu uygulamak için endişelenmeyin.

İlgili konular