Forum

Mssql de hangi rapo...
 
Bildirimler
Hepsini Temizle

Mssql de hangi rapor biçimi daha hızlı?

Yasin Evrenkaya
(@YasinEvrenkaya)
Üye

Merhaba,


Kullandığımız  programlara entegere olarak excel 2007 ile sqlden rapor çekiyoruz. 5 gb llık database ve bununla enteger çalışan 2 gb lık farklı bir databaseimiz var. 100 tane kullanıcıda sürekli bu databaselerde çalışıyor. Bazı tablolarda 500.000 hatta milyona yakın satırlar var. (Kullandığımız programlar delphi ile yazılmış) Benim sorum şudur;


Databaseden direk excel 2007 ye sorgu ile rapor çekip serverı kastırmaktansa, başka bir yol ile daha rahat ve hızlı bir şekilde rapor alabilirmiyim? Mesela olap (sql reporting service) kullanmalımıyım. Yada ne gibi bir şey kullanırsam bana ilaç olur. Çünkü bir sorgu rapor çekmeye çalışınca tüm sistem o an time-out durumuna düşüyor.Yorumlariniz için şimdiden teşekkürler.


Saygilar,

Alıntı
Topic starter Gönderildi : 14/05/2010 18:52
onureray
(@onureray)
Üye

Merhabalar;


 Öcelikle şundan bahsetmeliyim. 70 ten fazla sql server ve ortalama olarak 800 civarı db ile çalışmaktayım. bizde de milyon hatta milyar satırlık tablolar değişik biçimlerde kullanıcılara hizmet vermektedir. ve anlık db başına ortalama  25.000 transaction ın gerçekleştiği bir ortamda DBAlik yapmaktayım.


Bizde raporlama konusuna önem veren bir firmayız ve bunu sağlayabilmek için reporting services kullanmaktayız. Sana da önerim reporting services kullanmandır.


Fakat kullanım şekli ve methodlar değişik olabilir. örneğin raporlama production ortamını zorlayan ve sistemleri bazen darboğazlara bile sokabilen bir konudur ve çok iyi tasarlanıp uygulanmalıdır.


1- raporlama için kullanılacak ortamı ayırmak gerekebilir. bunun için replication biçilmiş kaftandır. bir db başka bir sql ortamına veya aynı ortamda başka bir dbye replication ile aktarılabilir ve buradan raporlama alınabilir.(gerekliyse)


2- Reporting services raporları için direk queryler ile raporlama yapmak yerine, bu queryleri stored procedurelere çevirmek ve raporlar içinde bunu kullanmak önerebileceğim en önemli şeydir. çünkü sql server splerin execution planlarını hafızasında tutar ve sorgu süreleri kısalır.


3- Mümkünse çok yüklü miktarda veri işleyen sorgular gece joblar ile kendi rapor formatına uygun oluşurduğun tablolara atılabilir ve bunlar offline rapor hizmezi alabileceğin ve sadece basit bir select ile alabileceğin tablolardan raporlanabilir. bu tablolara hergece bir gün öncesinin veri atılarak sürekliliği sağlanabilir.


4- Production ortamında kullandığın dbnin lock optimizasyonunu iyi sağlaman performans artısıdır ve lock süreleri ve sayılarını azaltırsan tüm sorguların hızlı bir şekilde alınabilir duruma gelir.


 Herşeye rağmen Reporing services kullanmanı öneriyorum.


 Onur Eray

CevapAlıntı
Gönderildi : 14/05/2010 19:31
onureray
(@onureray)
Üye

Bu arada bir şeyi daha açıklığa kavuşturalım. OLAP demek Reporting Services demek değildir. Ayrıca bir raporda sistemin timeout alıyorsa maintenance işlemlerini yapmamandan kaynaklanıyordur.


 


Kolay Gelsin [:D]


Onur Eray

CevapAlıntı
Gönderildi : 14/05/2010 19:34
Yasin Evrenkaya
(@YasinEvrenkaya)
Üye

🙂 Aslında olap derken reporting servisde olap kullanımını demek istemiştim. Birde maintance derken ne demek istediniz ? Biraz açabilirimisiniz ?Verdiğiniz değerli bilgiler için teşekkür ederim. İyi çalışmalar.

CevapAlıntı
Topic starter Gönderildi : 14/05/2010 20:08
onureray
(@onureray)
Üye

DB maintenance aslında kapsamlı bir tanım olacak sizin durumunuz için. Bunun içindeki işlemlerden biri olan performance tunning olayından bahsetmek istemiştim. google da arayıp gereğinden fazla sayıda dökümana ulaşabilirsiniz.

CevapAlıntı
Gönderildi : 14/05/2010 20:42
Yasin Evrenkaya
(@YasinEvrenkaya)
Üye

Tekrar teşekkürler.

CevapAlıntı
Topic starter Gönderildi : 14/05/2010 20:49
Paylaş: