Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sorgu deposunu, tahmin edilebilir iş yükü performansını izlemenin ve sürdürmenin kritik öneme sahip olduğu çok çeşitli senaryolarda kullanabilirsiniz. Aşağıdaki örnekleri değerlendirin:
- Pahalı sorguları belirleyin ve ayarlayın.
- A/B testi gerçekleştirin.
- Geliştirilmiş iş yüklerini belirleme ve geliştirme.
Pahalı sorguları belirleme ve ayarlama
Uzun süre çalışan sorguları tanımlama
En uzun süre çalışan sorguları hızla tanımlamak için sunucunuzun veritabanındaki sorgu deposu görünümlerini azure_sys kullanın. Bu sorgular en fazla kaynağı kullanma eğilimindedir. En uzun süre çalışan sorgularınızı iyileştirmek, sisteminizde çalışan diğer sorgular tarafından kullanılan kaynakları boşaltarak performansı artırabilir.
Performans değişimleri olan hedef sorgular
Sorgu deposu, zaman içindeki bir sorgunun performansını izleyebilebilmeniz için performans verilerini zaman pencerelerine dilimler. Bu, harcanan genel sürenin artmasına tam olarak hangi sorguların katkıda bulunacağını belirlemenize yardımcı olur. Sonuç olarak iş yükünüzün kapsamlı sorunlarını giderebilirsiniz.
Pahalı sorguları ayarlama
En iyi performansa sahip bir sorguyu tanımladığınızda, gerçekleştirdiğiniz eylem sorunun doğasına bağlıdır. Bu eylemlerden bazıları şunlar olabilir:
- sorgu tarafından kullanılan temel tablolar için istatistiklerin güncel olduğundan emin olun.
- Pahalı sorguları yeniden yazmayı göz önünde bulundurun. Örneğin, sorgu parametreleştirmeden yararlanın ve geçici SQL kullanımını azaltın. Verileri okurken uygulama tarafında yapmak yerine veritabanı tarafında veri filtreleme uygulama gibi en iyi mantığı uygulayın.
A/B testi gerçekleştirme
Tanıtmayı planladığınız bir uygulama değişikliği öncesinde ve sonrasında veya geçiş öncesinde ve sonrasında iş yükü performansını karşılaştırmak için sorgu deposunu kullanın. İş yükü performansındaki değişikliklerin etkisini değerlendirmek için sorgu deposu kullanımına yönelik örnek senaryolar:
- PostgreSQL'in ana sürümleri arasında geçiş.
- Uygulamanın yeni bir sürümünü kullanıma sunun.
- Sunucuya verilen kaynak miktarını değiştirme.
- Sunucunun davranışını etkileyen sunucu parametrelerinden herhangi birini değiştirme.
- Pahalı sorgular tarafından başvuruda bulunılan tablolarda eksik dizinler oluşturma.
Bu senaryolardan herhangi birinde aşağıdaki iş akışını uygulayın:
- Bir performans temeli oluşturmak için planlanan değişiklik öncesinde iş yükünüzü sorgu deposuyla çalıştırın.
- İstenen değişiklikleri denetimli bir zamanda uygulayın.
- Değişiklik sonrasında sistemin performansını net bir şekilde görebilmek için iş yükünü yeterli süre boyunca çalıştırmaya devam edin.
- Değişiklikten önceki ve sonraki sonuçları karşılaştırın.
- Değişikliği saklayıp korumayacağınız veya geri alıp almayacağınız konusunda karar verin.
Geliştirilmiş iş yüklerini belirleme ve geliştirme
Bazı iş yüklerinde, genel uygulama performansını geliştirmek için ayarlayabileceğiniz baskın sorgular yoktur. Bu iş yükleri genellikle nispeten çok sayıda benzersiz sorguyla karakterize edilir ve her biri sistem kaynaklarının bir bölümünü kullanır. Her benzersiz sorgu seyrek yürütülür, bu nedenle çalışma zamanı tüketimi tek tek kritik değildir. Öte yandan, uygulamanın her zaman yeni sorgular oluşturduğunu göz önünde bulundurarak, sistem kaynaklarının önemli bir kısmı sorgu derlemesi için harcanıyor ve bu da en uygun seçenek değil. Bu durum genellikle uygulamanız sorgular (saklı yordamlar veya parametreli sorgular kullanmak yerine) oluşturursa veya varsayılan olarak sorgu oluşturan nesne ilişkisel eşleme çerçevelerine dayanırsa ortaya çıkar.
Uygulama kodunun denetimi size aitse, saklı yordamları veya parametreli sorguları kullanmak için veri erişim katmanını yeniden yazmayı düşünebilirsiniz. Ancak bu durum, tüm veritabanı (tüm sorgular) veya aynı sorgu karması olan tek tek sorgu şablonları için sorgu parametreleştirmesi zorlanarak uygulama değişiklikleri olmadan da geliştirilebilir.