| gkimirti | 15.09.2003 - 14:51:27 |
| firebird 1.5 kullanarak bir program hazırlayacagım
yıllık yaklasık 8 milyon kadar belki daha fazla kayıt girilecek bu kayıtlardan sorgular yoluyla casitli raporlar alınacak (tarih ve saat alanları baz alınarak) firebird de girilen satırların sayısında bir sınırlama varmı? eger yoksa bu sekilde nu kadar kayıt arasında sorgulama yapmak (sum ve gruplama işlemleri) cok uzun zaman alırmı tek tablo da 10 tane falan alan olacak data boyutları o kadar fazla olmayacak genelde sayı... tesekkurler | |
| fahrettin | 15.09.2003 - 15:05:41 |
| Bütün veritabanlarinin teorik sınırlari vardır. Fakat bu teorik sınırlar da oyle kolay kolay zorlanabilecek gibi sınırlar degildir. Bu anlamda kayitlarinizi almasi yonunden kesinlikle bir sorun yasamazsiniz.
Amaca gore veritabanı secimi onemlidir. bahsettiginiz veriler ciddi boyutlar. Eger veritabanı maliyetine katlanma durumunuz varsa ucreti karsiliginda sizi daha guvenli kılacak ve performans acisindan daha iyi olacak bir veritabani kullanabilirsiniz. (Sybase, Oracle gibi...) Mesela tarih saat alanlari uzerinde SQl cumleleri icinde kullanilacak bir cok fonksiyona ihtiyaciniz olabilir. Interbase kullandigim bir projede bunlarin eksikligini epey hissetmistim. Firbird 1.5 da durumu bilemiyorum ama Kullandigim Sybase Adaptive Server Anywhere'deki sadece tarih ve zaman fonksiyonlarının sayisi bile Delphi ile yarisabilecek capta idi.... Kolay gelsin.... | |
| gkimirti | 15.09.2003 - 15:39:31 |
| öncelikle cevabınız icin tesekkurler,
aslında yapmak istedigim sistem dakikada yaklasık 5-6 ornek alıp (agırlık bilgisi) bunları gun, ay,yıl, ve belli saatlere gore belirlenmiş vardiyalara gore raporlamak bu aralıklardaki verilerin toplamını raporlamak belki grafiklerini cizdirmek. anladıgım kadarıyla bu islem icin firebird yeterli gibi geldi bir sorumda triggerlar hakkında olacak: ben her bir kayıtı gun,tarih ve cihaz no degerleri ile 10 saniyede bir varitabanına aktaracagım sorgularla dedigim raporları hazırlayacagım kayıt sayısı milyonları buldugu zaman bu raporları hazırlamak yani vt den sorgulamak cok zaman alırmı? bu durumda herbir kayıt girisinde bunu triggerlar yada stored proclar ile toplam tablolarına yazsam (toplayarak) mesela gunluk,aylık ve yıllık tablolarım olsa bunlar uzerinden rapor hazırlasam yani ne tur bir yaklasım efektif olur? tesekkurler | |
| mussimsek | 15.09.2003 - 16:03:23 |
| Merhaba,
bence de eğer limit 8 milyon ise Interbase/FireBird yeterli olur. Ama bu sayı hızla artacak ise, Fahrettin abinin dediği gibi daha uygun bir veritabanı seçilebilir. Önerilerim : 1. Indexleri çok iyi ayarlaman lazım. Uygun yapılan indexlemeler, indexsiz hale göre 10-15 kat hızlı çalışmanızı sağlayabilir. 2. Mümkün olduğu kadar veritabanı bazlı çalışın, trigger ve stored procedure kullanın. 3. Delphi tarafında işlem yaparken aşağıdaki kurallara uymaya gayret edin. http://www.delphiturkiye.com/ipdb.htm#hizlandirma Kolay gelsin. | |
| fahrettin | 15.09.2003 - 16:33:59 |
| 8 milyon kaitlik bir tablodan ne hizda cevap arayacaginiza gore ve tabi raporlarin komplekligine gore hizlar degisir. Bunlari denemeden birsey soylemek zor. Ya da sizin tatmin olmaniz da kolay olmaz.
Ben boyle bir ise baslayacak olsam tabloma test amacli 1 milyon kayit ekler ve bunun uzerinden gerekli orgularimin performansini test ederim. Eger sonuclar iyi ise bu testi veri miktarini 10 milyon belki 20 milyon ile de denerdim. Yok eger performansi begenmiyorsam da o zaman sizin onerdigimiz gibi triggerlar vasitasi ile bir takim toplam tablolari kullanirdim. Bu sekilde toplam tablolari kullanmanin tek dezavantaji insert hizi biraz yavaslar ki cok onemli oldugunu sanmiyorum faka buna karsilik raporlariniz hizlanir. triggerlar vasitasi ile bu toplamlari yaptirma yontemi de onemlidir. Bu konu ile ilgili faydası olacağı umuıdyla ilk firsatta (bir kac gun icinde insallah) bir makale yazmayi dusunuyorum. | |
| gkimirti | 15.09.2003 - 17:37:46 |
| cevaplar icin cok tesekkurler
makalenizi de okumak icin bekliyorum ornek data girerek performansına bakacagım | |
| fahrettin | 17.09.2003 - 17:37:22 |
| Bahsettigim şekilde trigger ve stored procedure kullanımı ile ilgili bir makale yazdım.
http://www.delphiturkiye.com/forum/viewtopic.php?t=644 linkinden ulaşabilirsiniz. | |
| gkimirti | 18.09.2003 - 09:40:30 |
| makaleniz gercekten cok guzel ve faydalı hmen okudum ve yugulamaya gececegim
sanırım bir satırda kelime hatası var "Bunun haricinde Oracle, Sybase ve trigger gibi veritabanları row level trigger desteği vermektedirler. " cumlesinde <ve trigger> ve FireBird yada InterBase mi olacak yoksa baska bir veri tabanı adı mı? ayrıca makalenizde StoredProc ların en etkin kullanıldıgı yer olarak rapor hazırlamayı vermissiniz pek anlamadım bi ornekle acıklayabilirmisiniz mesela ben belli bir tarih aralıgındaki gunluk yada aylık stok hareketlerini raporlamak istesem (sizin hazırladıgınız ornekte) bunu nasıl SP ler ile yapabilirim Tesekkurler,bu bilgiler için Gökmen Kımırtı | |
| fahrettin | 18.09.2003 - 11:40:18 |
| trigger isimli bir veritabanı ben de hatırlayamayınca interbase'e dönüştürdüm. :) teşekkürler...
Bahsettiğiniz şekilde bir rapor örneğini de ekledim.... iyi çalışmalar.... | |