Database Autonomy Service (DAS), her gün saat 01:00'de çalışarak önceki güne ait tüm örneklerinizdeki yavaş SQL sorgularını çevrimdışı veri analiziyle inceler ve otomatik olarak etiketler. DAS, yavaş SQL sorgularını otomatik olarak sınıflandırır, optimizasyon için önceliklendirir ve yönetim önerileri ile veri dışa aktarma imkanı sunar.
Ön koşullar
-
Veritabanı örneğiniz aşağıdakilerden biri olmalıdır:
ApsaraDB RDS for MySQL
PolarDB for MySQL
MyBase MySQL
ApsaraDB RDS for PostgreSQL
-
Bu özellik, Çin anakarası, Çin (Hong Kong) ve Singapur bölgelerindeki veritabanı örneklerini destekler.
Not1 Nisan 2023 tarihinden itibaren sorgu yönetimi, Çin (Hong Kong) ve Singapur bölgelerindeki veritabanı örneklerini desteklemektedir.
İşletim ve Bakım hizmeti etkinleştirilmiştir.
Video eğitimi
Sınırlamalar
Sorgu yönetimi T+1 çevrimdışı analizini kullanır. Bir SQL sorgusunu Optimization Not Required olarak etiketlerseniz, Optimizable SQL sorgu sayısındaki değişiklik ertesi gün görünür hale gelir.
DAS tarafından önceden tanımlanmış SQL etiketleri devre dışı bırakılamaz.
Her veritabanı örneği için DAS, yürütme sayısına göre en yüksek 200 yavaş SQL sorgusunu analiz eder. Bu nedenle, her örnek için maksimum Slow SQL Templates sayısı 200'dür.
Temel kavramlar
|
|
|
|
|
|
|
|
|
|
|
|
Yordam
DAS konsolu üzerinden oturum açın.
Sol gezinme bölmesinde Intelligent O&M Center > Query Governance seçeneğini belirleyin.
-
Query Governance sayfasında sorgu yönetimi sonuçlarını görüntüleyin.
Belirli bir örneğin sonuçlarını görmek için zaman aralığına, bölgeye ve motora göre filtreleme yapabilir veya bir örnek ID'si girebilirsiniz.
-
Query Governance Overview: Sistem SQL şablonlarını etiketleyip sınıflandırdıktan sonraki sonuçları görüntüleyin.
NotDAS, yalnızca DAS Enterprise Edition etkinleştirilmiş olan örneklerdeki Failed SQL Executions sayısını hesaplar.
Query Governance Trend: Seçilen zaman aralığında sorgu yönetimi sonuçlarının eğilimini görüntüleyin.
-
Top Rankings: Best-performing Instances ve Worst-performing Instances listelerini görüntüleyin.
Worst-performing Instances: En sorunlu örnekleri belirlemek için örnekleri yavaş sorgu yürütme sayısına göre azalan sırada sıralar.
Best-performing Instances: Örnekleri yavaş sorgu yürütme sayısındaki değişime göre artan sırada sıralar. Negatif bir değer daha az yavaş sorgu yürütmesi (iyi optimizasyon) anlamına gelirken, pozitif bir değer daha fazlasını ifade eder.
DAS, Optimizable SQL sıralamalarına odaklanmanızı önerir.
-
SQL to Be Optimized: Yönetim gerektiren SQL deyimlerini belirlemek için filtreler ayarlayın.
NotBu filtreler VE mantığıyla birleştirilir.
Birden fazla veritabanı adını virgül (,) ile ayırarak VEYA mantığıyla birleştirin.
Birden fazla SQL anahtar kelimesini boşlukla ayırarak VE mantığıyla birleştirin.
Birden fazla veritabanı kullanıcı adını virgül (,) ile ayırarak VEYA mantığıyla birleştirin.
Birden fazla kural etiketi seçmek, bunları VEYA mantığıyla birleştirir.
Hedef SQL örneğinin Actions sütununda, ayrıntılı yönetim önerilerini görüntülemek için Suggestions öğesine tıklayın.
-
Hedef SQL örneğinin Actions sütununda, SQL deyimine manuel olarak etiket eklemek için Add Tag öğesine tıklayın. Etiketler hakkında daha fazla bilgi için bkz. Manuel Etiketleme.
Ayrıca birden fazla SQL deyimini aynı anda seçip etiketleyebilirsiniz.
Hedef SQL örneğinin Actions sütununda, SQL deyimi için yavaş sorgu günlük örneğinin ayrıntılarını görüntülemek üzere Samples seçeneğine tıklayın.
Hedef SQL örneğinin Actions sütununda, SQL deyimi için yavaş sorgu günlük analizi ayrıntılarını görüntülemek amacıyla Trend seçeneğine tıklayın. Yavaş sorgu günlük analizi hakkında daha fazla bilgi için bkz. Yavaş sorgu günlükleri.
Gerektiğinde optimize edilebilir SQL deyimi verilerini dışa aktarın ve paylaşın. Daha fazla bilgi için bkz. en iyi uygulamalar.
-
Failed SQL: Görüntülemek istediğiniz SQL deyimlerini belirlemek için filtreler ayarlayın.
NotDAS, yalnızca DAS Enterprise Edition etkinleştirilmiş örneklerdeki Failed SQL sayısını hesaplar.
-
Veritabanı adına ve SQL anahtar kelimesine göre filtreleme yapabilirsiniz. Bu iki filtre VE mantığı kullanılarak birleştirilir.
Birden fazla veritabanı adı virgül (,) ile ayrılır ve VEYA mantığı kullanılarak birleştirilir.
Birden fazla SQL anahtar kelimesi boşlukla ayrılır ve VE mantığı kullanılarak birleştirilir.
Hedef SQL örneğinin Actions sütununda, SQL deyimi için örnek ayrıntılarını görüntülemek üzere Samples seçeneğine tıklayın.
-
En iyi uygulamalar
-
SQL sorgularının optimize edilip edilmeyeceğini belirlemek için etiketleri kullanın:
Yönetim, deyimleri Overall Slow SQL listesinden iki kategoriye ayırır: Optimization Not Required ve Optimizable SQL. Bu deyimleri filtrelemek ve önceliklendirmek için aşağıdaki SQL etiketlerini kullanın.
ID
Etiket adı
Düzey
Öneri
Açıklama
NEW_SQL
Yeni yavaş SQL
Kritik
✔️
Son yedi gün içinde görünmemiş bir yavaş SQL sorgusu.
DAS_IGNORE
DAS tarafından yoksayıldı
Bildirim
➖
DAS, sorguyu optimizasyon gerektirmiyor olarak otomatik şekilde etiketler. Örnekler arasında
show,create,xa,commit,rollback,select sleepveyaexplainile başlayan SQL deyimleri yer alır.FUZZY_LIKE
Bulanık LIKE sorgusu
Bildirim
➖
Bir
likeyan tümcesi bulanık eşleşme için kullanılır; bu durum dizin kullanımını engeller.HAS_EXPR
İfade içeriyor
Bildirim
➖
Sorgu bir ifade içerir. Hesaplamada yer alan sütun bir dizin kullanamaz.
LARGE_IN_LIST
Büyük IN listesi
Bildirim
➖
INyan tümcesi 200'den fazla öğe içerir; bu durum büyük olasılıkla bir program tarafından oluşturulur. İlgili sütunlarda dizinler kullanılamaz.SELECT_STAR
Tam sütun SELECT
Bildirim
➖
SELECTkullanırken, gereksiz sütunların döndürülmesinden kaynaklanan performans sorunlarını ve kaynak israfını önlemek için yalnızca gerekli alanları belirtin.INDEX_ADVISOR
Dizin önerisi
Bildirim
✔️
SQL yürütmeyi hızlandırmak için bir dizin oluşturma önerisi.
COMPLEX_JOIN
Karmaşık JOIN
Bildirim
➖
Üçten fazla tabloyu
joinetmeyin.joinettiğiniz alanlar aynı veri türlerine sahip olmalıdır. Çok tablolu birleştirmeler için birleştirme alanlarının dizinlendiğinden emin olun.CROSS_DB
Çapraz veritabanı sorgusu
Bildirim
➖
Veritabanlarını ve tablolarını örnekler arasında geçirdiğinizde çapraz veritabanı sorguları kullanılamayabilir.
SUBQUERY
Alt sorgu içeriyor
Bildirim
➖
Sorgu bir alt sorgu içerir. Daha iyi performans için bunu bir
JOINile yeniden yazmayı düşünün.DEEP_PAGING
Derin sayfalama
Kritik
➖
Sorgu, derin sayfalama için bir
LIMITyan tümcesi kullanır. Sorguyu bir birleştirme ile yeniden yazmanızı öneririz.WITHOUT_PREDICATE
Koşul yok
Kritik
✔️
Deyim hiçbir koşul içermiyor. Tam tablo taraması içerip içermediğini kontrol edin.
NULL_COMPARE
NULL eşleşme hatası
Kritik
➖
Bir değerin NULL ile doğrudan karşılaştırılması her zaman NULL sonucu verdiği için, bir
NULLdeğerini kontrol etmek amacıylaIS NULLveyaIS NOT NULLkullanın.COUNT_NOT_STAR
Uygun olmayan COUNT sözdizimi
Kritik
➖
count(sütun_adı) veyacount(sabıt) yerineCOUNT()kullanın.count(), SQL92 tarafından tanımlanan satır sayma standardı sözdizimidir. Veritabanından bağımsızdır veNULLveya non-NULLdeğerlerinden etkilenmez.count(sütun_adı), sütununNULLdeğerine sahip olduğu satırları saymaz.LARGE_ROWS_EXAMINED
Aşırı satır tarandı
Bildirim
➖
Sorgu ortalama olarak 50.000'den fazla satır tarar. Aşırı tarama daha fazla kaynak tüketir; bu durum sorguyu yavaşlatır ve genel veritabanı performansını etkileyebilir.
NotDaha seçici filtre koşulları kullanmayı düşünün.
LARGE_ROWS_SENT
Aşırı satır döndürüldü
Bildirim
➖
Sorgu ortalama olarak 5.000'den fazla satır döndürür. Döndürülen satır sayısını azaltmayı düşünün.
NO_ADVICE
Öneri yok
Bildirim
➖
Analiz önerisi mevcut değil.
PERIOD_SQL
Periyodik SQL
Bildirim
➖
Her gün sabit bir zamanda yürütülür.
Optimizable SQL üzerine odaklanın. Optimizable SQL deyimi sayısını azaltmak için SQL deyimlerini Optimization Not Required olarak işaretlemek amacıyla aşağıdaki etiketleri kullanın. Aşağıdaki etiketler manuel etiketlemeyi destekler.
ID
Etiket adı
Düzey
Açıklama
USER_IGNORE
Optimize etmeye gerek yok
Bildirim
Bu etiketi ekledikten sonra DAS, sorguyu ertesi günkü Optimize Edilebilir SQL istatistiklerinden hariç tutar.
DAS_IMPORTANT
Önemli SQL
Bildirim
SQL sorgusunu önemli olarak işaretler.
DAS_NOT_IMPORTANT
Önemli olmayan SQL
Bildirim
SQL sorgusunu önemli olmayan olarak işaretler.
DAS_IN_PLAN
Optimizasyon planlandı
Bildirim
SQL sorgusunu optimizasyon için zamanlanmış olarak işaretler. -
Verileri dışa aktarın:
-
SQL Details sekmesinde şu anda görüntülenen tüm verileri indirmek için Create Export Task seçeneğine tıklayabilirsiniz.
NotDışa aktarılan veriler üç gün boyunca indirilebilir durumdadır.
Farklı filtre koşulları (örneğin örnekler veya kurallar) ile indirme görevleri oluşturun ve bunları optimizasyon için farklı sahiplere atayın.
Alternatif olarak, yalnızca bu öğeleri dışa aktarmak için birden fazla SQL kaydını seçin.
-
-
Verileri paylaşın:
Filtrelenmiş yavaş SQL sorgularını ekip üyelerinizle iki şekilde paylaşabilirsiniz:
Birden fazla SQL kaydını seçip Batch Sharing seçeneğine tıklayabilirsiniz. Sistem kısa bir bağlantı oluşturur. DAS konsoluna erişim izni olan kullanıcılar bağlantıya tıkladığında yalnızca sizin seçtiğiniz SQL kayıtlarını görür.
Alternatif olarak, tüm filtreleri de dahil olmak üzere geçerli görünümünüzü yakalayan bir URL oluşturmak için Export öğesinin yanındaki Share seçeneğine tıklayın. DAS konsolu izinlerine sahip kullanıcılar, filtreleri yeniden yapılandırmadan aynı verileri görmek için URL'yi açabilir.
API referansı
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|