Dağıtık Sistemlerde Sorgu Optimizasyonu
Bu bölümde, dağıtılmış veritabanı sistemindeki sorgu optimizasyonu anlatılmaktadır.
Dağıtılmış Sorgu İşleme Mimarisi
Dağıtılmış bir veri tabanı sisteminde, bir sorgunun işlenmesi, hem genel hem de yerel düzeyde optimizasyondan oluşur. Sorgu, istemci veya kontrol sahasındaki veritabanı sistemine girer. Burada kullanıcı doğrulanır, sorgu kontrol edilir, çevrilir ve global düzeyde optimize edilir.
Mimari şu şekilde temsil edilebilir:
Global Sorguları Yerel Sorgularla Eşleme
Global sorguları yerel olanlarla eşleştirme süreci şu şekilde gerçekleştirilebilir -
Genel bir sorguda gerekli olan tablolar, birden çok siteye dağıtılmış parçalara sahiptir. Yerel veritabanları yalnızca yerel veriler hakkında bilgi içerir. Kontrol eden site, dağıtım hakkında bilgi toplamak için global veri sözlüğünü kullanır ve parçalardan global görünümü yeniden oluşturur.
Çoğaltma yoksa, global iyileştirici, parçaların depolandığı sitelerde yerel sorgular çalıştırır. Çoğaltma varsa, global optimizer siteyi iletişim maliyeti, iş yükü ve sunucu hızına göre seçer.
Global optimizer, siteler arasında en az miktarda veri aktarımı gerçekleşecek şekilde dağıtılmış bir yürütme planı oluşturur. Plan, parçaların konumunu, hangi sorgu adımlarının yürütülmesi gerektiğini ve ara sonuçların aktarılmasına dahil olan süreçleri belirtir.
Yerel sorgular, yerel veritabanı sunucuları tarafından optimize edilir. Son olarak, yatay parçalar durumunda yerel sorgu sonuçları birleştirme işlemi ile birleştirilir ve dikey parçalar için birleştirme işlemi gerçekleştirilir.
Örneğin, aşağıdaki Proje şemasının Şehre göre yatay olarak parçalanmış olduğunu düşünelim, şehirler Yeni Delhi, Kalküta ve Haydarabad.
PROJE
PId | Kent | Bölüm | Durum |
Durumu "Devam ediyor" olan tüm projelerin ayrıntılarını almak için bir sorgu olduğunu varsayalım.
Genel sorgu & inus;
$$ \ sigma_ {durum} = {\ küçük "devam eden"} ^ {(PROJE)} $$
Yeni Delhi'nin sunucusundaki sorgu -
$$ \ sigma_ {status} = {\ küçük "devam eden"} ^ {({NewD} _- {PROJECT})} $$
Kolkata'nın sunucusundaki sorgu -
$$ \ sigma_ {status} = {\ küçük "devam eden"} ^ {({Kol} _- {PROJECT})} $$
Haydarabad'ın sunucusundaki sorgu -
$$ \ sigma_ {status} = {\ küçük "devam eden"} ^ {({Hyd} _- {PROJECT})} $$
Genel sonucu elde etmek için, üç sorgunun sonuçlarını aşağıdaki gibi birleştirmemiz gerekir -
$ \ sigma_ {durum} = {\ küçük "devam eden"} ^ {({YeniD} _- {PROJE})} \ cup \ sigma_ {durum} = {\ küçük "devam eden"} ^ {({kol} _- {PROJE})} \ cup \ sigma_ {durum} = {\ küçük "devam eden"} ^ {({Hyd} _- {PROJECT})} $
Dağıtılmış Sorgu Optimizasyonu
Dağıtılmış sorgu optimizasyonu, her biri bir sorgunun gerekli sonuçlarını üreten çok sayıda sorgu ağacının değerlendirilmesini gerektirir. Bu, öncelikle büyük miktarda çoğaltılmış ve parçalanmış verinin varlığından kaynaklanmaktadır. Dolayısıyla hedef, en iyi çözüm yerine en uygun çözümü bulmaktır.
Dağıtılmış sorgu optimizasyonunun ana sorunları şunlardır:
- Dağıtılmış sistemde kaynakların optimum kullanımı.
- Sorgu ticareti.
- Sorgunun çözüm alanının azaltılması.
Dağıtılmış Sistemdeki Kaynakların Optimal Kullanımı
Dağıtılmış bir sistem, bir sorguya ilişkin işlemleri gerçekleştirmek için çeşitli sitelerde bir dizi veritabanı sunucusuna sahiptir. Optimum kaynak kullanımı için yaklaşımlar aşağıdadır -
Operation Shipping- Operasyon nakliyesinde operasyon, müşteri yerinde değil, verilerin saklandığı yerde yürütülür. Sonuçlar daha sonra müşteri sitesine aktarılır. Bu, işlenenlerin aynı yerde mevcut olduğu operasyonlar için uygundur. Örnek: Seçme ve Proje işlemleri.
Data Shipping- Veri gönderiminde, veri parçaları işlemlerin yürütüldüğü veritabanı sunucusuna aktarılır. Bu, işlenenlerin farklı sitelerde dağıtıldığı işlemlerde kullanılır. Bu, iletişim maliyetlerinin düşük olduğu ve yerel işlemcilerin istemci sunucusundan çok daha yavaş olduğu sistemlerde de uygundur.
Hybrid Shipping- Bu, veri ve operasyon nakliyesinin bir kombinasyonudur. Burada veri parçaları, işlemin çalıştığı yüksek hızlı işlemcilere aktarılır. Sonuçlar daha sonra müşteri sitesine gönderilir.
Sorgu Ticareti
Dağıtık veritabanı sistemleri için sorgu ticareti algoritmasında, dağıtılmış bir sorgu için kontrol / müşteri sitesi alıcı olarak adlandırılır ve yerel sorguların yürütüldüğü sitelere satıcılar denir. Alıcı, satıcıları seçmek ve küresel sonuçları yeniden yapılandırmak için bir dizi alternatif formüle eder. Alıcının hedefi, optimum maliyeti elde etmektir.
Algoritma, alıcının satıcı sitelerine alt sorgular atamasıyla başlar. Optimum plan, nihai sonucun yeniden yapılandırılması için iletişim maliyeti ile birlikte satıcılar tarafından önerilen yerel optimize edilmiş sorgu planlarından oluşturulur. Global optimal plan formüle edildikten sonra sorgu yürütülür.
Sorgunun Çözüm Alanının Azaltılması
Optimal çözüm genellikle çözüm alanının azaltılmasını içerir, böylece sorgu ve veri aktarımı maliyeti azalır. Bu, tıpkı merkezi sistemlerde sezgisel tarama gibi, bir dizi sezgisel kural aracılığıyla elde edilebilir.
Aşağıda bazı kurallar verilmiştir -
Seçim ve projeksiyon işlemlerini olabildiğince erken gerçekleştirin. Bu, iletişim ağı üzerindeki veri akışını azaltır.
Belirli bir sahayla ilgili olmayan seçim koşullarını ortadan kaldırarak yatay parçalar üzerindeki işlemleri basitleştirin.
Birden fazla sitede bulunan parçalardan oluşan birleştirme ve birleştirme işlemlerinde, parçalı verileri verilerin çoğunun bulunduğu siteye aktarın ve orada işlem yapın.
Birleştirilecek grupları nitelemek için yarı birleştirme işlemini kullanın. Bu, veri aktarım miktarını azaltır ve bu da iletişim maliyetini düşürür.
Yaygın yaprakları ve alt ağaçları dağıtılmış bir sorgu ağacında birleştirin.