MariaDB için Azure Veritabanı yavaş sorgu günlükleri

Önemli

MariaDB için Azure Veritabanı kullanımdan kaldırılıyor. MySQL için Azure Veritabanı geçiş yapmanızı kesinlikle öneririz. MySQL için Azure Veritabanı geçiş hakkında daha fazla bilgi için bkz. MariaDB için Azure Veritabanı ne oluyor?.

MariaDB için Azure Veritabanı yavaş sorgu günlüğü kullanıcılar tarafından kullanılabilir. İşlem günlüğüne erişim desteklenmez. Yavaş sorgu günlüğü, sorun gidermeye yönelik performans sorunlarını belirlemek için kullanılabilir.

Yavaş sorgu günlüğü hakkında daha fazla bilgi için yavaş sorgu günlüğü için MariaDB belgelerine bakın.

Sunucunuzda Sorgu Deposu etkinleştirildiğinde yavaş sorgu günlüklerinizde "CALL mysql.az_procedure_collect_wait_stats (900, 30);" gibi sorguların günlüğe kaydedildiğini görebilirsiniz. Sorgu Deposu özelliği sorgularınızla ilgili istatistikleri topladığı için bu davranış beklenir.

Yavaş sorgu günlüğünü yapılandırma

Varsayılan olarak yavaş sorgu günlüğü devre dışıdır. Etkinleştirmek için ON olarak ayarlayın slow_query_log . Bu, Azure portalı veya Azure CLI kullanılarak etkinleştirilebilir.

Ayarlayabileceğiniz diğer parametreler şunlardır:

  • long_query_time: Bir sorgu long_query_time (saniye) içinde daha uzun sürüyorsa bu sorgu günlüğe kaydedilir. Varsayılan değer 10 saniyedir.
  • log_slow_admin_statements: ON, slow_query_log yazılan deyimlerde ALTER_TABLE ve ANALYZE_TABLE gibi yönetim deyimleri içeriyorsa.
  • log_queries_not_using_indexes: Dizin kullanmayan sorguların slow_query_log günlüğe kaydedilip kaydedilmediğini belirler
  • log_throttle_queries_not_using_indexes: Bu parametre, yavaş sorgu günlüğüne yazılabilir dizin dışı sorgu sayısını sınırlar. log_queries_not_using_indexes AÇıK olarak ayarlandığında bu parametre geçerlilik kazanır.
  • log_output: "Dosya" ise, yavaş sorgu günlüğünün hem yerel sunucu depolama alanına hem de Azure İzleyici Tanılama Günlüklerine yazılmasına izin verir. "None" seçilirse, yavaş sorgu günlüğü yalnızca Azure İzleyici Tanılama Günlüklerine yazılır.

Önemli

Tablolarınız dizine alınmadıysa ve log_throttle_queries_not_using_indexes parametrelerini ON log_queries_not_using_indexes olarak ayarlamak MariaDB performansını etkileyebilir çünkü bu dizine alınmamış tablolarda çalıştırılan tüm sorgular yavaş sorgu günlüğüne yazılır.

Yavaş sorguları uzun süre günlüğe kaydetmeyi planlıyorsanız , "Hiçbiri" olarak ayarlanması log_output önerilir. "Dosya" olarak ayarlanırsa, bu günlükler yerel sunucu depolama alanına yazılır ve MariaDB performansını etkileyebilir.

Yavaş sorgu günlüğü parametrelerinin tam açıklamaları için MariaDB yavaş sorgu günlüğü belgelerine bakın.

Yavaş sorgu günlüklerine erişme

MariaDB için Azure Veritabanı yavaş sorgu günlüklerine erişmek için iki seçenek vardır: yerel sunucu depolama veya Azure İzleyici Tanılama Günlükleri. Bu, parametresi kullanılarak log_output ayarlanır.

Yerel sunucu depolaması için Azure portalını veya Azure CLI'yı kullanarak yavaş sorgu günlüklerini listeleyebilir ve indirebilirsiniz. Azure portalda sunucunuza gidin. İzleme başlığı altında Sunucu Günlükleri sayfasını seçin. Azure CLI hakkında daha fazla bilgi için bkz . Azure CLI kullanarak sunucu günlüklerini yapılandırma ve bu günlüklere erişme.

Azure İzleyici Tanılama Günlükleri yavaş sorgu günlüklerini Azure İzleyici Günlüklerine (Log Analytics), Azure Depolama veya Event Hubs'a aktarmanıza olanak tanır. Daha fazla bilgi için aşağıya bakın.

Yerel sunucu depolama günlüğü saklama

Sunucunun yerel depolama alanına oturum açarken günlükler oluşturuldukları günden itibaren yedi güne kadar kullanılabilir. Kullanılabilir günlüklerin toplam boyutu 7 GB'ı aşarsa, kullanılabilir alan sağlanana kadar en eski dosyalar silinir. Sunucu günlükleri için 7 GB depolama sınırı ücretsizdir ve uzatılamaz.

Günlükler her 24 saatte bir veya hangisi önce gelirse 7 GB döndürülür.

Dekont

Yukarıdaki günlük saklama, Azure İzleyici Tanılama Günlükleri kullanılarak yöneltilen günlükler için geçerli değildir. Yayılmakta olan veri havuzlarının bekletme süresini (örneğin Azure Depolama) değiştirebilirsiniz.

Tanılama günlükleri

MariaDB için Azure Veritabanı, Azure İzleyici Tanılama Günlükleri ile tümleşiktir. MariaDB sunucunuzda yavaş sorgu günlüklerini etkinleştirdikten sonra, bunların Azure İzleyici günlüklerine, Event Hubs'a veya Azure Depolama'a yayınlanmış olmasını seçebilirsiniz. Tanılama günlüklerini etkinleştirme hakkında daha fazla bilgi edinmek için tanılama günlükleri belgelerinin nasıl yapılır bölümüne bakın.

Aşağıdaki tabloda her bir günlükte neler olduğu açıklanmaktadır. Çıkış yöntemine bağlı olarak, dahil edilen alanlar ve bunların görüntülenme sırası değişebilir.

Özellik Açıklama
TenantId Kiracı kimliğiniz
SourceSystem Azure
TimeGenerated [UTC] Günlüğün UTC olarak kaydedildiği zaman damgası
Type Günlüğün türü. Her zaman AzureDiagnostics
SubscriptionId Sunucunun ait olduğu abonelik için GUID
ResourceGroup Sunucunun ait olduğu kaynak grubunun adı
ResourceProvider Kaynak sağlayıcısının adı. Her zaman MICROSOFT.DBFORMARIADB
ResourceType Servers
ResourceId Kaynak URI
Resource sunucusunun adı
Category MySqlSlowLogs
OperationName LogEvent
Logical_server_name_s sunucusunun adı
start_time_t [UTC] Sorgunun başladığı zaman
query_time_s Sorgunun yürütülmesi için geçen toplam süre
lock_time_s Sorgunun kilitlendiği toplam süre
user_host_s Username
rows_sent_s Gönderilen satır sayısı
rows_examined_s İncelenen satır sayısı
last_insert_id_s last_insert_id
insert_id_s Kimlik Ekle
sql_text_s Tam sorgu
server_id_s Sunucu Kimliği
thread_id_s İş Parçacığı Kimliği
\_ResourceId Kaynak URI

Dekont

için sql_text, 2048 karakteri aşarsa günlük kesilir.

Azure İzleyici Günlüklerinde günlükleri analiz etme

Yavaş sorgu günlükleriniz Tanılama Günlükleri aracılığıyla Azure İzleyici Günlüklerine bağlandıktan sonra yavaş sorgularınızın daha fazla analizini gerçekleştirebilirsiniz. Başlamanıza yardımcı olacak bazı örnek sorgular aşağıda verilmiştir. Aşağıdakini sunucu adınız ile güncelleştirdiğinden emin olun.

  • Belirli bir sunucuda 10 saniyeden uzun sorgular

    AzureDiagnostics
    | where LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlSlowLogs'
    | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
    | where query_time_d > 10
    
  • Belirli bir sunucuda en uzun 5 sorgu listeleme

    AzureDiagnostics
    | where LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlSlowLogs'
    | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
    | order by query_time_d desc
    | take 5
    
  • Belirli bir sunucuda yavaş sorguları minimum, maksimum, ortalama ve standart sapma sorgu süresine göre özetleme

    AzureDiagnostics
    | where LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlSlowLogs'
    | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
    | summarize count(), min(query_time_d), max(query_time_d), avg(query_time_d), stdev(query_time_d), percentile(query_time_d, 95) by LogicalServerName_s
    
  • Belirli bir sunucudaki yavaş sorgu dağılımının grafiğini oluşturma

    AzureDiagnostics
    | where LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlSlowLogs'
    | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
    | summarize count() by LogicalServerName_s, bin(TimeGenerated, 5m)
    | render timechart
    
  • Tanılama Günlükleri etkinleştirilmiş tüm MariaDB sunucularında 10 saniyeden uzun sorguları görüntüleme

    AzureDiagnostics
    | where Category == 'MySqlSlowLogs'
    | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
    | where query_time_d > 10
    

Sonraki Adımlar