Azure SQL Veritabanı için Sorgu Performansı İçgörüleri

Şunlar için geçerlidir:Azure SQL Veritabanı

Sorgu Performansı İçgörüleri tek veritabanı ve havuza alınmış veritabanları için akıllı sorgu analizi sağlar. İş yükünüzdeki en çok kaynak tüketen ve uzun süre çalışan sorguları belirlemeye yardımcı olur. Genel olarak iş yükü performansını geliştirmek ve karşılığını ödediğiniz kaynağı verimli kullanmak için iyileştirilecek sorguları bulmanıza yardım eder. Sorgu Performansı İçgörüleri, veritabanı performansıyla ilgili sorunları daha kısa sürede gidermenize yardımcı olmak için şunları sağlar:

  • Veritabanı kaynağı (DTU) tüketiminizle ilgili daha ayrıntılı içgörüler
  • CPU, süre ve yürütme sayısına göre en çok kullanılan veritabanı sorgularıyla ilgili ayrıntılar (performans geliştirmeleri için olası ayarlama adayları)
  • Sorgu metnini ve kaynak kullanımı geçmişini görüntülemek için bir sorgunun ayrıntılarına inme olanağı
  • Veritabanı danışmanlarının performans önerilerini gösteren ek açıklamalar

Query Performance Insight

Önkoşullar

Sorgu Performansı İçgörüleri , Veritabanınızda Sorgu Deposu'un etkin olmasını gerektirir. Varsayılan olarak Azure SQL Veritabanı'ndaki tüm veritabanları için otomatik etkinleştirilir. Veri Deposu çalışmıyorsa Azure portal etkinleştirmenizi ister.

Not

Portalda "Bu veritabanında Sorgu Deposu düzgün yapılandırılmamış" iletisi görünüyorsa bkz. Sorgu Deposu yapılandırmasını iyileştirme.

İzinler

Sorgu Performansı İçgörüleri'ni kullanmak için şu Azure rol tabanlı erişim denetimi (Azure RBAC) izinlerine ihtiyacınız vardır:

  • En çok kaynak tüketen sorguları ve grafikleri görüntülemek için Okuyucu, Sahip, Katkıda Bulunan, SQL DB Katkıda Bulunanı veya SQL Server Katkıda Bulunanı izinleri gereklidir.
  • Sorgu metnini görüntülemek için Sahip, Katkıda Bulunan, SQL DB Katkıda Bulunanı veya SQL Server Katkıda Bulunanı izinleri gereklidir.

Sorgu Performansı İçgörüleri’ni kullanma

Sorgu Performansı İçgörüleri'nin kullanımı kolaydır:

  1. Azure portalını açın ve incelemek istediğiniz veritabanını bulun.

  2. Sol taraftaki menüden Akıllı Performans>Sorgu Performansı İçgörüleri'ni açın.

    Query Performance Insight on the menu

  3. İlk sekmede en çok kaynak tüketen sorguların listesini gözden geçirin.

  4. Ayrıntılarını görüntülemek için tek bir sorgu seçin.

  5. Akıllı Performans Performansı>önerilerini açın ve kullanılabilir performans önerileri olup olmadığını denetleyin. Yerleşik performans önerileri hakkında daha fazla bilgi için bkz. Azure SQL Veritabanı Danışmanı.

  6. Gözlemlenen aralığı değiştirmek için kaydırıcıları veya yakınlaştırma simgelerini kullanın.

    Performance dashboard

Not

Azure SQL Veritabanı Sorgu Performansı İçgörüleri'nde bilgileri işlemek için Sorgu Deposu'nun birkaç saatlik verileri yakalaması gerekir. Veritabanında etkinlik yoksa veya Sorgu Deposu belirli bir süre boyunca etkin değilse, Sorgu Performansı İçgörüleri bu zaman aralığını görüntülediğinde grafikler boş olur. Sorgu Deposu çalışmıyorsa istediğiniz zaman etkinleştirebilirsiniz. Daha fazla bilgi için bkz . Sorgu Deposu ile en iyi yöntemler.

Veritabanı performansı önerileri için Sorgu Performansı İçgörüleri gezinti bölmesinde Öneriler seçin.

The Recommendations tab

En çok CPU kullanan sorguları gözden geçirme

Varsayılan olarak, Sorgu Performansı İçgörüleri ilk açtığınızda en çok CPU kullanan beş sorguyu gösterir.

  1. Onay kutularını kullanarak dahil etmek veya grafikten çıkarmak için tek tek sorguları seçin veya temizleyin.

    Üst satır, veritabanı için genel DTU yüzdesini gösterir. Çubuklar, seçilen sorguların seçilen aralıkta tüketilen CPU yüzdesini gösterir. Örneğin, Geçmiş hafta seçiliyse, her çubuk tek bir günü temsil eder.

    Top queries

    Önemli

    Gösterilen DTU satırı, bir saatlik dönemlerde maksimum tüketim değerine toplanır. Yalnızca sorgu yürütme istatistikleriyle üst düzey bir karşılaştırmaya yöneliktir. Bazı durumlarda, yürütülen sorgulara kıyasla DTU kullanımı çok yüksek görünebilir, ancak bu durum söz konusu olmayabilir.

    Örneğin, bir sorgu DTU'yu yalnızca birkaç dakika için %100'e çıkarırsa, Sorgu Performansı İçgörüleri'ndeki DTU satırı tüm tüketim saatini %100 (en fazla toplanan değerin sonucu) olarak gösterir.

    Daha ince bir karşılaştırma için (bir dakikaya kadar) özel bir DTU kullanım grafiği oluşturmayı göz önünde bulundurun:

    1. Azure portalında Azure SQL Veritabanı> Monitoring'i seçin.
    2. Ölçümler’i seçin.
    3. +Grafik ekle'yi seçin.
    4. Grafikte DTU yüzdesini seçin.
    5. Buna ek olarak, sol üstteki menüden Son 24 saat'i seçin ve bunu bir dakika olarak değiştirin.

    Sorgu yürütme grafiğiyle karşılaştırmak için daha ayrıntılı bir ayrıntı düzeyiyle özel DTU grafiğini kullanın.

    Alt kılavuzda görünür sorgular için toplu bilgiler gösterilir:

    • Veritabanındaki sorgunun benzersiz tanımlayıcısı olan sorgu kimliği.
    • Gözlemlenebilir bir aralıkta sorgu başına CPU, toplama işlevine bağlıdır.
    • Sorgu başına süre, toplama işlevine de bağlıdır.
    • Belirli bir sorgu için toplam yürütme sayısı.
  2. Verileriniz eskirse Yenile düğmesini seçin.

  3. Gözlem aralığını değiştirmek ve tüketim artışlarını araştırmak için kaydırıcıları ve yakınlaştırma düğmelerini kullanın:

    Sliders and zoom buttons for changing the interval

  4. İsteğe bağlı olarak, görünümü özelleştirmek için Özel sekmesini seçebilirsiniz:

    • Ölçüm (CPU, süre, yürütme sayısı).
    • Zaman aralığı (son 24 saat, geçen hafta veya geçen ay).
    • Sorgu sayısı.
    • Toplama işlevi.

    Custom tab

  5. Özelleştirilmiş görünümü görmek için Git > düğmesini seçin.

    Önemli

    Sorgu Performansı İçgörüleri, seçiminize bağlı olarak en çok tüketen 5-20 sorguyu görüntülemekle sınırlıdır. Veritabanınız gösterilen en önemli sorguların ötesinde çok daha fazla sorgu çalıştırabilir ve bu sorgular grafiğe dahil edilmeyecektir.

    En çok gösterilenlerin ötesinde çok sayıda daha küçük sorgunun sık çalıştırıldığı ve DTU'nun çoğunluğunu kullandığı bir veritabanı iş yükü türü olabilir. Bu sorgular performans grafiğinde görünmez.

    Örneğin, gözlemlenen dönemdeki toplam tüketimi en çok tüketen diğer sorgulardan az olsa da, bir sorgu bir süre için önemli miktarda DTU tüketmiş olabilir. Böyle bir durumda, bu sorgunun kaynak kullanımı grafikte görünmez.

    Sorgu Performansı İçgörüleri sınırlamalarının ötesinde en çok sorgu yürütmelerini anlamanız gerekiyorsa, gelişmiş veritabanı performansı izleme ve sorun giderme için Azure SQL Analizler kullanmayı göz önünde bulundurun.

Tek tek sorgu ayrıntılarını görüntüleme

Sorgu ayrıntılarını görüntülemek için:

  1. En çok kullanılan sorgular listesinden herhangi bir sorguyu seçin.

    List of top queries

    Ayrıntılı bir görünüm açılır. Zaman içindeki CPU tüketimini, süresini ve yürütme sayısını gösterir.

  2. Ayrıntılar için grafik özelliklerini seçin.

    • En üstteki grafikte, genel veritabanı DTU yüzdesine sahip bir çizgi gösterilir. Çubuklar, seçili sorgunun tüketilen CPU yüzdesidir.
    • İkinci grafik, seçili sorgunun toplam süresini gösterir.
    • Alttaki grafik, seçili sorgunun toplam yürütme sayısını gösterir.

    Query details

  3. İsteğe bağlı olarak, sorgu verilerinin görüntülenme biçimini özelleştirmek veya farklı bir zaman aralığı seçmek için kaydırıcıları kullanın, yakınlaştırma düğmelerini kullanın veya Ayarlar seçin.

    Önemli

    Sorgu Performansı İçgörüleri herhangi bir DDL sorgusu yakalamaz. Bazı durumlarda, tüm geçici sorguları yakalamayabilir.

    Veritabanınızın kapsamı salt okunur bir kilitle kilitlenmişse sorgu ayrıntıları bölmesi yüklenemez.

Süre başına en çok kullanılan sorguları gözden geçirme

Sorgu Performansı İçgörüleri'ndeki iki ölçüm olası performans sorunlarını bulmanıza yardımcı olabilir: süre ve yürütme sayısı.

Uzun süre çalışan sorgular kaynakları daha uzun süre kilitleme, diğer kullanıcıları engelleme ve ölçeklenebilirliği sınırlama açısından en büyük potansiyele sahiptir. İyileştirme için en iyi adaylar da bunlardır. Daha fazla bilgi için bkz . Azure SQL engelleme sorunlarını anlama ve çözme.

Uzun süre çalışan sorguları belirlemek için:

  1. Seçili veritabanı için Sorgu Performansı İçgörüleri'nde Özel sekmesini açın.

  2. Ölçümleri süre olarak değiştirin.

  3. Sorgu sayısını ve gözlem aralığını seçin.

  4. Toplama işlevini seçin:

    • Toplam , gözlem aralığının tamamı için tüm sorgu yürütme süresini ekler.
    • Max , tüm gözlem aralığı için yürütme süresinin en uzun olduğu sorguları bulur.
    • Ort , tüm sorgu yürütmelerinin ortalama yürütme süresini bulur ve bu ortalamaların en önemlilerini gösterir.

    Query duration

  5. Özelleştirilmiş görünümü görmek için Git > düğmesini seçin.

    Önemli

    Sorgu görünümünü ayarlamak DTU satırını güncelleştirmez. DTU satırı her zaman aralık için en yüksek tüketim değerini gösterir.

    Veritabanı DTU tüketimini daha ayrıntılı (bir dakikaya kadar) anlamak için Azure portalında özel grafik oluşturmayı göz önünde bulundurun:

    1. Azure SQL Veritabanı> Monitoring'i seçin.
    2. Ölçümler’i seçin.
    3. +Grafik ekle'yi seçin.
    4. Grafikte DTU yüzdesini seçin.
    5. Buna ek olarak, sol üstteki menüden Son 24 saat'i seçin ve bunu bir dakika olarak değiştirin.

    Sorgu performansı grafiğiyle karşılaştırmak için özel DTU grafiğini kullanmanızı öneririz.

Yürütme sayısı başına en çok kullanılan sorguları gözden geçirme

Veritabanını kullanan bir kullanıcı uygulaması, çok fazla sayıda yürütmenin veritabanını etkilememesine ve kaynak kullanımının düşük olmasına rağmen yavaşlayabilir.

Bazı durumlarda, yüksek yürütme sayısı daha fazla ağ gidiş dönüşlerine yol açabilir. Gidiş dönüşler performansı etkiler. Ağ gecikme süresine ve aşağı akış sunucusu gecikme süresine tabidir.

Örneğin, veri odaklı birçok web sitesi her kullanıcı isteği için veritabanına yoğun bir şekilde erişer. Bağlantı havuzu oluşturma yardımcı olsa da, sunucudaki artan ağ trafiği ve işlem yükü performansı yavaşlatabilir. Genel olarak, gidiş dönüşleri en az düzeyde tutun.

Sık yürütülen ("sohbet") sorguları belirlemek için:

  1. Seçili veritabanı için Sorgu Performansı İçgörüleri'nde Özel sekmesini açın.

  2. Ölçümleri yürütme sayısı olarak değiştirin.

  3. Sorgu sayısını ve gözlem aralığını seçin.

  4. Özelleştirilmiş görünümü görmek için Git > düğmesini seçin.

    Query execution count

Performans ayarlama ek açıklamalarını anlama

Sorgu Performansı İçgörüleri'nde iş yükünüzü keşfederken grafiğin üzerinde dikey çizgi bulunan simgeler görebilirsiniz.

Bu simgeler ek açıklamalardır. Azure SQL Veritabanı Danışmanı performans önerilerini gösterir. Bir ek açıklamanın üzerine gelerek performans önerileriyle ilgili özet bilgiler alabilirsiniz.

Query annotation

Daha fazla bilgi edinmek veya danışmanın önerisini uygulamak istiyorsanız, önerilen eylemin ayrıntılarını açmak için simgeyi seçin. Bu etkin bir öneriyse, portaldan hemen uygulayabilirsiniz.

Query annotation details

Bazı durumlarda yakınlaştırma düzeyi nedeniyle birbirine yakın ek açıklamaların tek bir ek açıklamaya daraltılması mümkündür. Sorgu Performansı İçgörüleri bunu bir grup ek açıklaması simgesi olarak temsil eder. Grup ek açıklaması simgesinin seçilmesi, ek açıklamaları listeleyen yeni bir bölme açar.

Sorguları ve performans ayarlama eylemlerini ilişkilendirmek, iş yükünüzü daha iyi anlamanıza yardımcı olabilir.

Sorgu Deposu yapılandırmasını iyileştirme

Sorgu Performansı İçgörüleri'ni kullanırken aşağıdaki Sorgu Deposu hata iletilerini görebilirsiniz:

  • "Sorgu Deposu bu veritabanında düzgün yapılandırılmadı. Daha fazla bilgi için buraya tıklayın."
  • "Sorgu Deposu bu veritabanında düzgün yapılandırılmadı. Ayarları değiştirmek için buraya tıklayın."

Bu iletiler genellikle Sorgu Deposu yeni veri toplayamazsa görünür.

İlk durum, Sorgu Deposu salt okunur durumda olduğunda ve parametreler en iyi şekilde ayarlandığında gerçekleşir. Veri deposunun boyutunu artırarak veya Sorgu Deposu'nu temizleyerek bunu düzeltebilirsiniz. (Sorgu Deposu'yu temizlerseniz, daha önce toplanan tüm telemetriler kaybolur.)

Query Store details

İkinci durum, Sorgu Deposu etkinleştirilmediğinde veya parametreler en iyi şekilde ayarlanmadığında gerçekleşir. Azure portal sorgu düzenleyicisi, SQL Server Management Studio (SSMS), Azure Data Studio, sqlcmd veya tercih ettiğiniz istemci aracı sağlanan aşağıdaki T-SQL komutlarını çalıştırarak bekletme ve yakalama ilkesini değiştirebilir ve Sorgu Deposu'nu etkinleştirebilirsiniz.

İki tür bekletme ilkesi vardır:

  • Boyut tabanlı: Bu ilke AUTO olarak ayarlanırsa, boyut üst sınırına yaklaştığında verileri otomatik olarak temizler.
  • Zamana bağlı: Bu ilke varsayılan olarak 30 gün olarak ayarlanır. Sorgu Deposu'nun alanı biterse, 30 günden eski sorgu bilgilerini siler.

Yakalama ilkesini şu şekilde ayarlayabilirsiniz:

  • Tümü: Sorgu Deposu tüm sorguları yakalar.
  • Otomatik: Sorgu Deposu, önemsiz derleme ve yürütme süresine sahip seyrek sorguları ve sorguları yoksayar. Yürütme sayısı, derleme süresi ve çalışma zamanı süresi eşikleri dahili olarak belirlenir. Bu varsayılan seçenektir.
  • Hiçbiri: Sorgu Deposu yeni sorguları yakalamayı durdurur, ancak yakalanan sorgular için çalışma zamanı istatistikleri yine toplanır.

SSMS veya Azure portalından aşağıdaki komutları yürüterek tüm ilkeleri AUTO ve temizleme ilkesi olarak 30 güne ayarlamanızı öneririz. (değerini veritabanı adıyla değiştirin YourDB .)

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (SIZE_BASED_CLEANUP_MODE = AUTO);

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 30));

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (QUERY_CAPTURE_MODE = AUTO);

SSMS veya Azure portalı aracılığıyla bir veritabanına bağlanıp aşağıdaki sorguyu çalıştırarak Sorgu Deposu'nun boyutunu artırın. (değerini veritabanı adıyla değiştirin YourDB .)

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (MAX_STORAGE_SIZE_MB = 1024);

Bu ayarların uygulanması, Sorgu Deposu'un yeni sorgular için telemetri toplamasına neden olur. Sorgu Deposu'nun hemen çalışır duruma geçmesi gerekiyorsa, isteğe bağlı olarak SSMS veya Azure portalı aracılığıyla aşağıdaki sorguyu çalıştırarak Sorgu Deposu'nun temizlenmesini seçebilirsiniz. (değerini veritabanı adıyla değiştirin YourDB .)

Not

Aşağıdaki sorgu çalıştırıldığında Sorgu Deposu'nda daha önce toplanan tüm izlenen telemetriler silinir.

    ALTER DATABASE [YourDB] SET QUERY_STORE CLEAR;

Sonraki adımlar

Tek ve havuza alınan veritabanları, elastik havuzlar, yönetilen örnekler ve örnek veritabanlarından oluşan büyük bir filonun gelişmiş performans izlemesi için Azure SQL Analytics'i kullanmayı göz önünde bulundurun.