8

SSMS'de en fazla 2 çekirdek kullanarak 10 saniye içinde yaklaşık 50000 kayıt döndüren saklı yordamım var. Saklı yordamı kullanan SSRS raporu 20 dakika alıyordu ve işlemciyi tüm zaman boyunca 8 çekirdekli bir sunucuda maksimuma çıkardı. Rapor nispeten basitti (yani, grafikler, hesaplamalar). Bir geçici tabloya 50K satırlarını yazdığım ve raporun verileri birkaç saniye içinde görüntüleyebileceğinden raporda sorun görünmüyordu. Her defasında saklı yordamı değiştirmeyi test etmek için pek çok farklı fikir denedim, ancak orijinal kodu, geri dönmek için ayrı bir pencerede tutuyordum. Saklı yordamın bir değiştirilmesinden sonra, orijinal koda geri dönüldüğünde, rapor ve sunucu kullanımı, yalnızca saklı yordamın performansıyla karşılaştırılabilir şekilde hızlı çalışmaya başladı. Şu an için her şey yolunda, ama yine de böyle bir durumda bunun nedeninin altına inmek istiyorum. Herhangi bir fikir?SSRS Performans Gizemi

+0

endeksler:

burada neredeyse özdeş soruya bakın? Eski bir yürütme planı mı? İstatistikler güncellendi mi? SqlProfiler kaydınız var mı? Gelecekte bu yardımcı olacaktır .. – rene

+0

Sadece PDF olarak görüntüleniyor mu? – SQLMason

+0

Dan - Sadece standart bir raporu web'e aktar. Rene - Sorun giderme sırasında SqlProfiler'ı çalıştırmadım. Yerel sorgularda çalıştırdım, ama SSRS DB çağrılarını günlüğe kaydetmek için özel bir şey var mı? Ayrıca, SSRS Yürütme günlüklerini kazmadım, ancak diğer sorun giderme işlemlerinin işe yaramadığını düşünürdüm. Eski bir yürütme planını nasıl tespit edebilirsiniz? – user101654

cevap

0

ben SSRS tarafından çağrılan ne zaman normalde çalıştırmak ve daha sonra aynı SP saklı yordam her ikisinin bir SQL Profiler izlemesi başlardım. İlgili yürütme planlarını dahil ettiğinizden emin olun, böylece bazı kötü kararlar alıp almadığını görebilirsiniz (bu mümkün görünmese de - SQL Server, sorgunun kaynağına bakılmaksızın en uygun veya en azından tutarlı bir plan yürütmelidir).

İş Nesneleri'nin, saklı prosedları düzinelerce neden olmadan düzinelerce kez yürüteceği ve zaman zaman korkunç performanslara yol açtığı durumlarda, SSRS'le aynı davranışı görmediğimiz durumlarda kullanıyorduk. Yine de başlamak için bir yer olabilir. Ayrıca, yürütme başlangıç ​​/ bitiş zamanlarını da göreceksiniz - bu, kapatılan veritabanı katmanı olup olmadığını veya SQL Server'ın verileri 10 saniye içinde elleriyle geri yüklediğini ve ardından bir yere boğulmasını sağlayan SSRS hizmetini açık hale getirecektir. hız SSRS haberlere

0

birincil çözüm cache raporlar etmektir. Biri bunu yaparsa (önbelleği saat 7: 30'da önyükleme) veya önbelleğe aldığım raporları önbelleğe alırsa, biri yük hızında büyük kazançlar bulur.

Ayrıca sorunu çözmek için SSRS uygulama etki alanından aylık yeniden başlatılır bulabilirsiniz.

bu günlük ve profesyonel ve yapmak basitçe SSRS Caching SSRS

üzerinde

şiirsel ağda değilim unutmayın http://msdn.microsoft.com/en-us/library/ms155927.aspx

Ön yükleme Cache http://msdn.microsoft.com/en-us/library/ms155876.aspx

Bunu yaparsanız İlk raporlar uzun sürüyor ve verileriniz statik değil, yani günlük bir genel muhasebeci ya da benzeri gibi değil, yani verilerin gün içinde nispeten durağan olduğu anlamına geliyor, ay önbellek kullanım ömrünü artırın. Nihayet

, yöneticiler yerine onlara daha kolay ve daha sistematik bulabilir zaman Excel raporunda bir noktaya gönderir e-posta abonelikleri aracılığıyla bu raporları almaya yönelik de tercih edebilir.

Ayrıca, kullanıcı tarafından kolay ayrıştırmaya ve daha hızlı sorgulara olanak tanımak için SSRS'deki parametreleri de kullanabilirsiniz. Parametre yapmak istediğiniz Filtre sütununun altındaki IN (@SSN) sorgu oluşturucu türünde, bunu BIDS GUI'nizin sol üst kısmındaki veri kaynaklarının hemen üstündeki parametre klasöründe oluşturulmuş bulacaksınız. [SSRS'de veri kaynağı bölümünü göremiyorsanız, CTRL + ALT + D tuşlarına basın.tablolarda Performance Issuses with SSRS