CleverCode'tan bir meslektaşım yakın zamanda MySQL'de sql ifadelerini analiz etmek için profilleme aracı önerdi ve bu aracın çok iyi olduğunu, sorgulama sürecinde sql ifadelerine harcanan belirli zamanı doğru şekilde analiz edebildiğini buldu. CleverCode bunu burada özetliyor ve sizinle paylaşıyor.
1 Giriş
MySQL'in Query Profiler'ı, çok kullanışlı bir Sorgu tanı analiz aracıdır; bu arayışla bir sorgu yürütme sürecinde CPU, IO, IPC, SWAP gibi birden fazla kaynağın tüketimini, ayrıca SAYFA HATALARI, CONTEXT SWITCHE vb. örneklerini elde edebilir ve ayrıca sorgu yürütülürken kaynak dosyada MySQL tarafından çağrılan her fonksiyonun konumunu elde edebilirsiniz.
MySQL sürüm 5.0.37 veya daha sonrası, SQL ifadelerinin tükettiği kaynakların detaylarını anlamanızı sağlayan PROFILING hata ayıklama fonksiyonunu destekler. Sistemin getrusage() fonksiyonunu çağırmayı gerektirdiği için, yalnızca Linux/Unix sınıfı platformlarında kullanılabilir, Windows'ta kullanılamaz. Ayrıca, PROFILLEME iş parçacıkları için değil süreçleri işlemek için kullanılır ve sunucudaki diğer uygulamalar hata ayıklama sonuçlarınızı etkileyebilir, bu yüzden bu araç geliştirme sırasında hata ayıklama için uygundur ve üretim ortamında hata ayıklamak istiyorsanız sınırlamalarına dikkat etmelisiniz.
2 Operasyon
2.1 Profilin etkin olup olmadığını kontrol edin, varsayılan olarak kapalıdır.
2.2 Profilleme etkinleştirin. Değişken profilleme, her seferinde yeniden etkinleştirilmesi gereken bir kullanıcı değişkenidir.
2.3 Aşağıdaki ifadeleri çalıştırın: Daha önce SQL'in QCACHE'ta saklanmasını önlemek için, SQL çalıştırılırken SELECT i'lesinin QCACHE algılamamasını zorunlu kılmak önerilir. Bu, analizin doğruluğunu sunmanızı sağlar.
2.4 KullanımProfil sorgusunu gösterEn son olanıAçıklamanın uygulama bilgileri。 (Analiz: system_user 20 > sql_no_cache sayı(*) seçilir)
2.5 Gösteri profillerinin kullanılması. Sunucuda çalıştırılan ifadelerin listesini görüntüleyin. (sorgu kimliği, harcanan zaman, ifade).
2.6 Formülasyon ID'sinin yürütme bilgilerini sorgulamak için profili göster kullanın. Burada ID 6 ile ifade analiz ediyoruz. (Analiz: system_user yaş 20 > olan sql_no_cache sayı(*) seçilir).
2.7 CPU alın ve IO tüketimini bloklayın.
2.8 Ek Bilgi Edinme. "PROFIL *** SORGU için göster" (SORGU için PROFIL *** göster) uygulanarak elde edilebilir. Referans adresi: http://dev.mysql.com/doc/refman/5.6/en/show-profile.html.
|