Database Autonomy Service (DAS), yavaş sorguları ve verimsiz SQL ifadelerini otomatik olarak algılar, kök nedenlerini teşhis eder ve manuel müdahale gerektirmeden düzeltmeler uygular. SQL ifadelerini yeniden yazarak ve dizin kullanımını ayarlayarak sorgu gecikme sürelerini azaltır ve kaynak tüketimini düşürür.
Manuel SQL optimizasyonu neden yetersiz kalıyor?
Veritabanı yöneticileri (DBA'ler) ve geliştiriciler giderek büyüyen bir sorunla karşı karşıyadır: SQL iş yükleri statik değildir. İş süreçlerinin yinelemeleri, veri dağılımındaki değişimler, yoğun nokta değişiklikleri ve veritabanı sürüm yükseltmeleri performans profillerini sürekli olarak yeniden şekillendirir. Bu değişimlere ayak uydurmak orantısız düzeyde zaman ve personel kaynağı gerektirir.
Manuel optimizasyon, iki kritik zaman noktasına bağlı yapısal zayıflıklara sahiptir:
T1 — Performans istisnasının algılanması ve optimizasyonun başlaması
T2 — Düzeltmenin uygulanması ve örneğin normale dönmesi

Geleneksel iş akışlarında T1 geç gelir; genellikle sorun kullanıcı deneyimini uzun bir süre boyunca olumsuz etkiledikten sonra fark edilir. T1 ile T2 arasındaki boşluk tamamen manuel çabaya bağlıdır ve bu sırada arıza riski birikir. Veri hacimleri arttıkça bu model çöker: daha fazla personel eklemek sorunu çözmez.
Bu döngüyü kapatan otomatik SQL optimizasyonu oluşturmak, altı boyutta zorluklar içerir:
| Boyut | Zorluk |
|---|---|
| Doğruluk | Gürültü olmadan doğru istisnaları doğru zamanda algılama |
| Teşhis | Eyleme geçirilebilir, yüksek güven düzeyine sahip optimizasyon önerileri oluşturma |
| Güvenlik | Çevrimiçi değişikliklerin üretim ortamını kararsız hale getirmemesini sağlama |
| Kapsamlılık | Optimizasyon sonuçlarını birden fazla boyutta gerçek zamanlı olarak izleme |
| Bağlantı | Hem semptomları hem de kök nedenleri ele almak için SQL kısıtlama ve SQL optimizasyonunu koordine etme |
| Ölçek | Yüz binlerce ila milyonlarca sunucuda otomatik optimizasyonu destekleme |
Nasıl çalışır?
DAS otomatik SQL optimizasyonu, beş aşamalı kapalı bir döngü olarak çalışır. Her aşama bir sonrakini besleyerek manuel süreçlerin bıraktığı boşlukları ortadan kaldırır.

1. Aşama: Algılama
DAS, iş yüklerini üç tür sorun için sürekli olarak izler: yavaş sorgulara neden olan yeni SQL ifadeleri, performansı kötüleşen SQL ifadeleri ve tutarlı şekilde verimsiz kalan SQL ifadeleri. Algılama şu üç koşul altında tetiklenir:
Zamanlanmış analiz — Yavaş sorgular, düzenli operasyon ve bakım zaman penceresi periyotlarına göre çevrimdışı olarak analiz edilir
Gerçek zamanlı kötüleşme — İş yükü istisna algılama algoritması, performans düşüşlerini gerçekleştiği anda belirler; karmaşık olaylarda otomatik SQL kısıtlama ve otomatik SQL optimizasyonu birlikte devreye girer
İş yükü değişiklikleri — İş SQL'i yayınlandığında veya yayından kaldırıldığında, DAS veri hacminin veya sorgu dağılımının mevcut dizinlerin işleyebileceği sınırları aştığını tespit eder
2. Aşama: Teşhis
Sorunlu SQL ifadeleri teşhis motoruna gönderilir; bu motor, veritabanı optimize edicilerinin kullandığı yaklaşımla aynı olan maliyet tabanlı bir model kullanarak her olası düzeltmeyi değerlendirir. Öneriler arasında optimal dizinler oluşturma, SQL ifadelerini yeniden yazma ve motor önerme yer alır. Her öneri, yürütme maliyetine göre puanlanır; bu sayede sezgisel tahminler yerine sıralı ve nicel sonuçlar elde edilir.
SQL teşhis ve optimizasyon özelliği, Alibaba Group bünyesinde yıllardır üretim ortamında çalışmaktadır; grubun iş uygulamaları arasında günde yaklaşık 50.000 SQL ifadesini teşhis etmektedir. Teşhis başarı oranı %98'in üzerinde, yavaş sorgu öneri oranı ise %75'in üzerinde seyretmektedir.
3. Aşama: Planlama
DAS, her önerinin riskini otomatik olarak değerlendirir, kademeli dağıtım planı oluşturur ve mevcut iş yükü ile örnek profiline göre optimizasyon görevlerini zamanlar. Manuel zamanlamaya gerek yoktur.
4. Aşama: Uygulama
Değişiklikler operasyon ve bakım zaman penceresinde uygulanır. Büyük veri hacimli parçalama senaryolarında kademeli dağıtım planı değişiklikleri toplu işler halinde uygular. Yürütme sırasında DAS, birincil ve ikincil örnekler arasındaki çoğaltma gecikmesini izler. Gecikme yapılandırılmış eşiği aşarsa dizin değiştirme görevleri hemen askıya alınır; herhangi bir anda örnek başına yalnızca bir değişiklik görevi çalışır.
5. Aşama: Doğrulama ve onaylama
Değişiklikler etkili olduktan sonra karar motoru, hem optimize edilmiş SQL ifadelerini hem de ilgili SQL şablonlarını kapsayan bir izleme görevi başlatır. Karar ağacı modeli kullanarak optimizasyon öncesi ve sonrası performans ölçümlerini karşılaştırır; tam SQL ifadelerini ve yavaş sorgulara neden olanları izler.
Varsayılan izleme döngüsü 24 saattir. Herhangi bir noktada performans kötüleşirse değişiklikler otomatik olarak geri alınır. 24 saat içinde geri alma işlemi gerçekleşmezse optimizasyon başarılı olarak işaretlenir ve gerçek optimizasyon faydaları hesaplanır.
Döngü genelinde olay temelli koordinasyon
DAS Event Center bu aşamaları birbirine bağlar. Uyarı sistemi, gerçek zamanlı algılama, çevrimdışı analiz veya iş yükü izlemesinden gelen istisna olaylarının tümü Event Center'a akar. Teşhis sonrasında DAS yeni bir optimizasyon olayı oluşturur ve bunu bir sonraki aşamayı yönlendirmek üzere Event Center'a geri yönlendirir.

DAS otomatik SQL optimizasyonu veri odaklı kapalı bir döngüdür. Önceki şekil tüm süreci basit bir şekilde göstermektedir.
DAS otonomi merkezinde otonomi hizmetini etkinleştirdiğinizde, optimizasyon önerilerinin otomatik olarak mı uygulanacağını yoksa devam etmeden önce onayınızı mı gerektireceğini seçebilirsiniz.
Değişiklik güvenliği
Üretim veritabanlarında yapılan otomatik değişiklikler doğası gereği risk taşır. DAS bu durumu üç katmanlı güvenlik önlemiyle ele alır:
Değişiklik öncesi kontroller
Değişiklikler ancak aşağıdaki tüm ölçümler güvenli aralıklar içinde kaldığında ilerler:
Birincil ve ikincil örnekler arasındaki çoğaltma gecikmesi
Veritabanı iş yükü
Tablespace kullanımı
Değişiklikler yapılandırılmış operasyon ve bakım zaman penceresiyle sınırlıdır; böylece modifikasyonlar yoğun trafik dönemlerinden uzak tutulur.
Kademeli dağıtım
Büyük veri hacimli parçalama senaryolarında DAS, değişiklikleri tek seferde değil toplu işler halinde uygulayan kademeli bir dağıtım planı otomatik olarak oluşturur. Yürütme sırasında DAS çoğaltma gecikmesini sürekli izler. Gecikme yapılandırılmış eşiği aşarsa o örnek için tüm dizin değiştirme görevleri derhal askıya alınır. Herhangi bir anda örnek başına yalnızca bir değişiklik görevi çalışır.
Otomatik geri alma
Her değişiklikten sonra karar motoru, karar ağacı modeli kullanarak optimize edilmiş SQL ifadelerinin ve ilgili SQL şablonlarının performansını izler. Tam SQL ifadeleri ve yavaş sorgu SQL'leri arasında optimizasyon öncesi ve sonrası ölçümleri karşılaştırır. 24 saatlik izleme penceresi sırasında herhangi bir noktada performans kötüleşirse değişiklikler otomatik olarak geri alınır; manuel müdahale gerekmez.
Desteklenen veritabanı motorları
Otomatik SQL optimizasyonu aşağıdaki veritabanı motorlarını destekler: ApsaraDB RDS for MySQL, PolarDB for MySQL ve ApsaraDB RDS for PostgreSQL.