Merhaba arkadaşlar,
(Delphi+BDE+SQL Server) -Farklı lokasyonlardaki birçok user'in (100 ... 400 ) bağlı olacağı projede;
- En iyi performans için; database kayıt ekleme,silme,select TQuery ile mi olmalı yoksa stored procedure ile mi ? yada tavsiyeniz...
-projenin mevcut halinde TQuery+Updatesql kullanılarak cxgrid üzerinde insert,delete,update işlemi yaptırılmış. Projenin boyutu göz önüne alındığında hız açısından bu yol mantıklı mıdır? Değilse ne tavsiye edersiniz.
-Delphi ile bu kadar client lı bir proje geliştirdiniz mi?
şimdiden teşekkürler...
stored procedure kullanım alanı ile ilgili
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Merhaba,
eğer proje bitmiş ise yapacak çok birşey yok. Mevcut yapıyı koruyarak ilaveler yapman daha iyi olur.
* SQL Server için; BDE yerine kendisi de M$ ürünü olduğundan ADO daha iyi bir seçim.
* Ben bilgi kayıt işleri için normal dataset,query vs. kullanıyorum. Onun dışında raporlama gibi işlemleri yapmak için SP kullanıyorum. Birkaç yerde SP ile'de yapmışlığım var. Burda tabii hatların hızı da çok önemli. Ciddi sıkıntı olmaz sanıyorum. Ancak bilgi girişleri çok yoğunsa, hızlar yavaşsa vs. gibi projeye özel birçok nedenden ötürü SP kullanmak daha cazip olabilir. Nazınız geçen birkaç müşterinize programı yükleyip test edebilirsiniz. Tercihen en yavaşını seç : )
* 400 kişi büyük bir rakam değil, kaldırır 3 ü de : )
eğer proje bitmiş ise yapacak çok birşey yok. Mevcut yapıyı koruyarak ilaveler yapman daha iyi olur.
* SQL Server için; BDE yerine kendisi de M$ ürünü olduğundan ADO daha iyi bir seçim.
* Ben bilgi kayıt işleri için normal dataset,query vs. kullanıyorum. Onun dışında raporlama gibi işlemleri yapmak için SP kullanıyorum. Birkaç yerde SP ile'de yapmışlığım var. Burda tabii hatların hızı da çok önemli. Ciddi sıkıntı olmaz sanıyorum. Ancak bilgi girişleri çok yoğunsa, hızlar yavaşsa vs. gibi projeye özel birçok nedenden ötürü SP kullanmak daha cazip olabilir. Nazınız geçen birkaç müşterinize programı yükleyip test edebilirsiniz. Tercihen en yavaşını seç : )
* 400 kişi büyük bir rakam değil, kaldırır 3 ü de : )
Re: stored procedure kullanım alanı ile ilgili
Merhaba,
1) Insert, delete, Update islemlerini stored procedure ile yapmaniza gerek yok. Hiz acisindan abarti bir degisim olmayacak, tek fark stored procedurelerin (insert vs. islemleri icin söylüyorum) onceden compiled oldugu icin calistirdiginizda direk calistimasi, gondereceginiz INSERT INTO sql cumlesinin ise compile olma suresinden sonra calismasi. Bu da ne kadar fark yaratir bilemiyorum. Stored procedure kullanirsaniz, tum kodlariniz veritabaninda bulunacak bu da bir dezavantaj. Evet hiz olarak stored procedureler kesinlikle daha hizli calisacak, ancak insert, update, delete islemleriniz cok fazla kompleks degilse gerek yok.
Select islemleri icin kompleks olmayanlar icin ben Query kullaniyorum, ve sadece ekrana getirilecek alanlari seciyorum. Degistirme / Inceleme islemi yapildiginda, yeni bir sorgu ile sadece o kayda has ek bilgileri de veritabanindan cekiyorum. Diger arkadaslarin fikrini bilemem ama bence en hizli yontem bu.
2) Grid uzerinden ekleme cikarma yapiyorsaniz, kayit kilitleme kismini (En mantiklisi vt'nin dogal lock sistemi ancak ben tam cozemedim) sql ile kilitleyip, grid uzerinden islem yapmadan once yine sql kodu ile kilitli olup olmadigini denerseniz, ve gridden de normal edit delete append vs. islemleri yaparsaniz, sorunun cikacagini dusunmuyorum. (SQL ile kontrol etmemizin sebebi guncel kayitlari alabilmek)
3) Son olarak, evet suan ben de buyuk bir proje gelistiriyorum, ve ayni korkulari ben de yasiyorum
Iyi calismalar, kolay gelsin
1) Insert, delete, Update islemlerini stored procedure ile yapmaniza gerek yok. Hiz acisindan abarti bir degisim olmayacak, tek fark stored procedurelerin (insert vs. islemleri icin söylüyorum) onceden compiled oldugu icin calistirdiginizda direk calistimasi, gondereceginiz INSERT INTO sql cumlesinin ise compile olma suresinden sonra calismasi. Bu da ne kadar fark yaratir bilemiyorum. Stored procedure kullanirsaniz, tum kodlariniz veritabaninda bulunacak bu da bir dezavantaj. Evet hiz olarak stored procedureler kesinlikle daha hizli calisacak, ancak insert, update, delete islemleriniz cok fazla kompleks degilse gerek yok.
Select islemleri icin kompleks olmayanlar icin ben Query kullaniyorum, ve sadece ekrana getirilecek alanlari seciyorum. Degistirme / Inceleme islemi yapildiginda, yeni bir sorgu ile sadece o kayda has ek bilgileri de veritabanindan cekiyorum. Diger arkadaslarin fikrini bilemem ama bence en hizli yontem bu.
2) Grid uzerinden ekleme cikarma yapiyorsaniz, kayit kilitleme kismini (En mantiklisi vt'nin dogal lock sistemi ancak ben tam cozemedim) sql ile kilitleyip, grid uzerinden islem yapmadan once yine sql kodu ile kilitli olup olmadigini denerseniz, ve gridden de normal edit delete append vs. islemleri yaparsaniz, sorunun cikacagini dusunmuyorum. (SQL ile kontrol etmemizin sebebi guncel kayitlari alabilmek)
3) Son olarak, evet suan ben de buyuk bir proje gelistiriyorum, ve ayni korkulari ben de yasiyorum

Iyi calismalar, kolay gelsin