Tüm Ürünler
Search
Belge Merkezi

Database Autonomy Service:SQL Explorer

Son Güncelleme:Oct 06, 2026

SQL Explorer and Audit içindeki ️SQL Explorer özelliğini kullanarak SQL sağlığını teşhis edin ve performans sorunlarını giderin.

Önkoşullar

  • Veritabanı örneği DAS'a eklenmiş ve bağlantı durumu Normal Connection olarak görüntüleniyor olmalıdır.

  • Örnek için SQL Explorer and Audit etkinleştirilmiş olmalıdır. Daha fazla bilgi için bkz. Enable SQL Explorer and Audit.

Çalışma prensibi

Etkinleştirildiğinde, SQL Explorer veritabanı çekirdeğinden doğrudan tüm DQL, DML ve DDL işlemlerini kaydederek CPU üzerinde ihmal edilebilir bir etki yaratır.

Kullanım notları

  • SQL ayrıntıları hariç olmak üzere, SQL Explorer'daki analitik ve istatistiksel veriler 30 gün boyunca saklanır.

  • SQL Explorer'daki SQL ayrıntı verileri, DAS Enterprise Edition için yapılandırılan süre boyunca saklanır.

  • SQL Explorer and Audit özelliğini devre dışı bırakmanız hizmetlerinizi etkilemez ancak bu özellik için saklanan tüm verileri temizler. Devre dışı bırakmadan önce gerekli verileri yerel makinenize aktarın. Daha fazla bilgi için bkz. Disable SQL Explorer and Audit.

  • PolarDB-X 1.0'a bağlı bir ApsaraDB RDS for MySQL örneğinde bir SQL ifadesi çalıştırıldığında, parçalama nedeniyle ApsaraDB RDS for MySQL örneğinde birden çok SQL günlüğü oluşturulur.

  • Veri geçişi geçici bağlantı kesintilerine neden olabilir ve bu durum SQL Explorer'da veri kaybına yol açabilir.

  • Çok yüksek yük altında az sayıda kayıt kaybolabilir; bu durum SQL Explorer'daki artımlı veri istatistiklerinin hatalı olmasına neden olabilir.

  • Bir parametre, kaydedilen maksimum SQL ifadesi uzunluğunu kontrol eder. SQL Explorer, bu sınırı aşan herhangi bir ifadeyi kısaltır. Veri toplama sırasında bir ön ek eklendiğinden, fiilen kaydedilen uzunluk yapılandırılan değerden biraz daha azdır.

    Not
    • ApsaraDB RDS for MySQL ve PolarDB for MySQL 5.6 ve 5.7 sürümleri için kaydedilen uzunluk loose_rds_audit_max_sql_size parametresi tarafından kontrol edilir.

    • ApsaraDB RDS for MySQL ve PolarDB for MySQL 8.0 sürümü için kaydedilen uzunluk loose_rds_audit_log_event_buffer_size parametresi tarafından kontrol edilir.

  • PgBouncer etkinleştirilmiş ApsaraDB RDS for PostgreSQL örneklerinde, PgBouncer üzerinden çalıştırılan SQL ifadeleri SQL Explorer tarafından kaydedilmez.

Yordam

  1. DAS konsolunda oturum açın.

  2. Sol gezinme bölmesinde Intelligent O&M Center > Instance Monitoring öğesine tıklayın.

  3. Hedef örneği bulun ve örnek ayrıntıları sayfasını açmak için örnek kimliğine tıklayın.

  4. Sol gezinme bölmesinde Request Analysis > SQL Explorer and Audit seçeneğine tıklayın ve ardından SQL Explorer sekmesine gidin.

  5. İhtiyaçlarınıza göre bir özellik seçin:

    Not

    Bir zaman aralığı seçerken bitiş saati başlangıç saatinden sonra olmalı ve aralık bir günü aşmamalıdır. Örnek için DAS Enterprise Edition özelliğini etkinleştirdiğinizde, SQL Explorer depolama süresi içindeki herhangi bir güne ait verileri sorgulayabilirsiniz.

    • Display by Time Range: SQL Explorer sonuçlarını görüntülemek için bir zaman aralığı seçin. Seçilen zaman aralığındaki tüm SQL ifadelerinin Execution Duration Distribution, Execution Duration ve Executions değerlerini görüntüleyebilirsiniz. Ayrıca Full Request Statistics bölümündeki tüm SQL ifadelerinin ayrıntılarını görüntüleyebilir ve sonuçları dışa aktarabilirsiniz.

      Not

      En fazla 1.000 SQL günlüğünü dışa aktarabilirsiniz. Daha fazla SQL günlüğü elde etmek veya daha uzun bir zaman aralığını kapsamak için Audit özelliğini kullanın.

    • Display by Comparison: SQL Explorer sonuçlarını karşılaştırmak istediğiniz zaman noktalarını seçin. Tüm SQL ifadeleri için Execution Duration Distribution, Execution Duration ve Executions karşılaştırmasını görüntüleyebilirsiniz. Ayrıntılı karşılaştırma sonuçlarını Requests by Comparison bölümünde de görebilirsiniz.

    • Source Statistics: SQL kaynaklarına ilişkin istatistikleri görüntülemek için bir zaman aralığı seçin. Seçilen zaman aralığındaki tüm SQL ifadelerinin kaynak bilgilerini görüntüleyebilirsiniz.

    • SQL Review: Seçilen bir zaman aralığı ve bir temel zaman aralığı için veritabanı örneğinde iş yükü analizi gerçekleştirir. Ayrıca örnekte çalışan SQL ifadelerini derinlemesine analiz eder ve dizin optimizasyon önerileri, SQL yeniden yazma önerileri, en çok kullanılan SQL'ler (TOP SQL), yeni SQL'ler, başarısız SQL'ler, SQL özellik analizi, yürütme değişikliği olan SQL'ler, performans düşüşü yaşanan SQL'ler ve en çok trafik yaratan tabloları sunar. Daha fazla bilgi için bkz. SQL Review.

    • Related SQL Identification: Görüntülemek istediğiniz ölçümleri seçin ve Analysis öğesine tıklayın. 1 ila 5 dakika sonra sistem, belirtilen zaman aralığında seçilen ölçümlerle en yakından eşleşen eğilimlere sahip SQL ifadelerini tanımlayıp görüntüler.

    Önemli
    • Sıcak ve soğuk depolama kullanan SQL Explorer and Audit için sistem, yedi günden eski verileri soğuk depolamaya taşır. Yedi günden eski SQL ayrıntı verilerini analiz ettiğinizde sistem verileri yeniden hesaplamak ve analiz etmek için bir görev oluşturur. Görev ilerlemesini ve geçmişini Task list sayfasında görüntüleyebilirsiniz.

    • Yedi günden eski SQL Explorer and Audit verilerine yönelik sorgular kullandıkça öde modeliyle ücretlendirilir. Daha fazla bilgi için bkz. billing details.

Sonuçlar

  • Execution Duration Distribution: Seçilen zaman aralığında SQL yürütme sürelerinin nasıl dağıldığını gösterir. Süreler dakikada bir kez hesaplanan yedi aralığa bölünür:

    • [0,1]ms 0 ms ile 1 ms (dahil) arasında süren SQL yürütmelerinin yüzdesini gösterir.

    • (1,2]ms 1 ms'den büyük ve 2 ms'ye kadar olan süreye sahip SQL yürütmelerinin yüzdesini gösterir.

    • (2,3]ms 2 ms'den büyük ve 3 ms'ye kadar olan süreye sahip SQL yürütmelerinin yüzdesini gösterir.

    • (3,10]ms 3 ms'den büyük ve 10 ms'ye kadar olan süreye sahip SQL yürütmelerinin yüzdesini gösterir.

    • (10,100]ms 10 ms'den büyük ve 100 ms'ye kadar olan süreye sahip SQL yürütmelerinin yüzdesini gösterir.

    • (0.1,1]s 0,1 saniyeden büyük ve 1 saniyeye kadar olan süreye sahip SQL yürütmelerinin yüzdesini gösterir.

    • >1s 1 saniyeden uzun süren SQL yürütmelerinin yüzdesini gösterir.

    Not

    Maviye yakın renkler daha sağlıklı SQL performansını, turuncu ve kırmızıya yakın renkler ise daha düşük performansı gösterir.

  • Execution Duration (SQL RT): Seçilen zaman aralığındaki SQL ifadelerinin yürütme süresini görüntüler.

  • Full Request Statistics: Seçilen zaman aralığındaki her SQL ifadesi türü için SQL metnini, süre yüzdesini, ortalama yürütme süresini ve yürütme eğilimini görüntüler.

    Not

    Süre yüzdesi, belirli bir SQL türünün toplam yürütme süresinin tüm SQL türlerindeki toplam süreye oranıdır. Daha yüksek bir yüzde, MySQL örneğinde daha fazla kaynak tüketimi olduğunu gösterir.

  • SQL ID: Bir SQL ID değerine tıklayarak ilgili ifade için performans eğilimini ve SQL örneklerini görüntüleyin.

  • SQL Sample: Hangi istemci uygulamasının SQL ifadesini başlattığını belirlemek için bir SQL Sample kullanın.

    Not

    SQL örnekleri UTF-8 kodlamasını kullanır.

SSS

S: ️SQL Explorer bölümündeki **Full Request Statistics** alanında ️SQL Explorerlogout!** ifadesi ne anlama gelir?

C: logout! bir bağlantı kesilmesini gösterir. Süresi, son etkileşim ile bağlantının kesilmesi arasındaki zamandır ve bağlantının boşta kalma süresini temsil eder. Status sütunundaki 1158 durumu, aşağıdaki nedenlerle oluşabilen bir ağ bağlantısı kesilmesini gösterir:

  • İstemci bağlantısının zaman aşımına uğraması.

  • Sunucunun beklenmedik şekilde bağlantıyı kesmesi.

  • interactive_timeout veya wait_timeout süresinin aşılması nedeniyle sunucunun bağlantıyı sıfırlaması.

S: ️SQL Explorer bölümündeki Source Statistics alanında **️SQL Explorer olarak neden yüzde işareti (%**) görünür?

C: Bu durum, saklı yordam kullandığınızda ortaya çıkabilir. Bu davranışı yeniden oluşturmak için aşağıdaki örneği izleyin:

Not

Bu örnekte bir ApsaraDB RDS for MySQL örneği, test_user adında bir test hesabı ve testdb adında bir test veritabanı kullanılır.

  1. ApsaraDB RDS konsolunda standart bir hesap oluşturun ve bu hesaba bir veritabanına erişim yetkisi verin. Daha fazla bilgi için bkz. (Deprecated, redirected to "Step 1") Create a database and an account.

  2. Test hesabını kullanarak komut satırından veritabanı örneğine bağlanın. Daha fazla bilgi için bkz. (Deprecated, redirected to "Step 2") Connect to an ApsaraDB RDS for MySQL instance by using a client or the CLI.

  3. Test veritabanına geçin ve aşağıdaki saklı yordamı oluşturun.

    -- Switch to the test database
    USE testdb;
    
    -- Create a stored procedure
    DELIMITER $$
    DROP PROCEDURE IF EXISTS `das` $$
    CREATE DEFINER=`test_user`@`%` PROCEDURE `das`()
    BEGIN
    SELECT * FROM information_schema.processlist WHERE Id = CONNECTION_ID();
    END $$
    DELIMITER;
  4. Yetkili bir hesap kullanarak veritabanı örneğine bağlanın. Daha fazla bilgi için bkz. (Deprecated, redirected to "Step 2") Connect to an ApsaraDB RDS for MySQL instance by using a client or the CLI.

  5. Saklı yordamı çağırın.

    -- Switch to the test database
    USE testdb;
    
    -- Call the stored procedure
    CALL das();
    
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+
    | ID     | USER      | HOST   | DB     | COMMAND | TIME | STATE     | INFO                                                                    |
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+
    | 487818 | test_user | %:2065 | testdb | Query   |    0 | executing | SELECT * FROM information_schema.processlist WHERE Id = CONNECTION_ID() |
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+

S: Günlükler bölümündeki veritabanı adı neden SQL ifadesindeki addan farklıdır?

C: Günlükler bölümünde gösterilen veritabanı adı oturumdan alınırken, SQL ifadesindeki veritabanı adı kullanıcı tarafından belirtilir. Çapraz veritabanı sorguları veya dinamik SQL gibi senaryolarda, kullanıcının girişi veya sorgu tasarımı ifadedeki veritabanı adını belirlediğinden bu iki ad farklılık gösterebilir.

S: SQL Explorer and Audit özelliğini etkinleştirmek veritabanı performansını etkiler mi? Etkisi ne kadar büyüktür?

C: Evet, ancak etki minimaldir ve neredeyse fark edilmez.

Belirli kaynaklar üzerindeki etki şu şekildedir:

  • CPU ve bellek: Tüketim son derece düşüktür ve ihmal edilebilir.

  • Depolama alanı: Özellik öncelikli olarak denetim bilgilerini depolar. Ancak DAS Enterprise Edition bu verileri DAS tarafında depoladığından veritabanı örneğinizin depolama alanını tüketmez.

  • Ağ: Ağ performansı üzerinde hiçbir etkisi yoktur.

  • Disk performansı: Etkisi yoktur. Denetim verileri veritabanı örneğinin disklerine değil, DAS depolamasına yazılır.

S: Yakalanan bir SQL ifadesi neden eksik görünüyor? Tam ifadeyi nasıl görüntüleyebilirim?

C: Bu durum, yürütülen SQL ifadesinin çok uzun olması durumunda ortaya çıkar. SQL Explorer'da ilgili konu kimliğini veya işlem kimliğini arayarak tam ifadeyi görüntüleyin.

S: Bir ApsaraDB RDS for PostgreSQL örneğinin denetim günlüklerinde bazı SQL ifadeleri neden -? olarak görüntülenir?

C: Bir ApsaraDB RDS for PostgreSQL örneğinin log_statement parametresi all olarak ayarlandığında, istemci tarafından gönderilen boş ifadeler de denetim günlüğüne kaydedilir. Bunlar SQL ifadesi sütununda - olarak görünür ve bu beklenen bir davranıştır. Boş ifadeleri gönderme mantığını optimize etmek için istemci tarafındaki kodunuzu gözden geçirin.

İlgili API'ler


API


Açıklama


GetErrorRequestSample


Belirtilen bir zaman aralığında bir veritabanı örneğinin SQL Explorer sonuçlarından başarısız SQL sorgularına ait en fazla 20 örneği eşzamansız olarak sorgular.


GetAsyncErrorRequestStatResult


Bir veritabanı örneğinin SQL Explorer sonuçlarından belirtilen bir SQL ifadesi için başarısız yürütme sayısını eşzamansız olarak alır.


GetAsyncErrorRequestListByCode


Bir veritabanı örneğinin SQL Explorer sonuçlarından belirtilen bir MySQL hata kodu üreten ifadelerin SQL kimliklerini eşzamansız olarak sorgular.


GetAsyncErrorRequestStatByCode


Bir veritabanı örneğinin SQL Explorer sonuçlarından MySQL hata kodlarını ve her bir hata koduna karşılık gelen SQL sorgu sayısını eşzamansız olarak sorgular.


GetFullRequestOriginStatByInstanceId


Bir veritabanı örneğinin SQL Explorer sonuçlarından erişim kaynağına göre kategorize edilmiş tam istek verileri hakkında istatistik toplar.


GetFullRequestStatResultByInstanceId


Bir veritabanı örneğinin SQL Explorer sonuçlarından SQL kimliğine göre kategorize edilmiş tam istek verileri hakkında eşzamansız olarak istatistik toplar.


GetFullRequestSampleByInstanceId


Bir veritabanı örneğinin SQL Explorer sonuçlarından SQL kimliğine göre en fazla 20 SQL örneğini sorgular.


GetDasSQLLogHotData


Bir veritabanı örneğinin SQL Explorer and Audit özelliği için son yedi gündeki sıcak depolamadaki verilerin ayrıntılarını sorgular.

En iyi uygulamalar

Troubleshoot slow SQL queries