2011-05-10 10 views
5

Uygulamamdaki veritabanı katmanı seçeneklerini analiz ediyorum. Ben çok popüler bir seçim hibernate buldum, ancak birkaç arkadaş hibernate için gitmek yerine saklı yordam/işlev kullanmak daha iyi söyledi. Hazırda bekletme, bu veritabanı nesnelerine kıyasla performans sorunları içerir. Başka seçenek var mı? Uygulamam çok yüksek hacimli işlemlere sahip olabilir, bu yüzden daha iyi bir performans sağlayan bir seçenek seçmeniz gerekir. Birisi buna biraz ışık verebilir ve en iyi seçeneği seçmeme yardımcı olabilir. Web katmanı için yay çerçevesini çekirdek ve zemini olarak kullanıyorum.Hazırda bekletme v/s saklı yordam veya işlevler performans

+0

ilişkin usul ve işlevlerini kullanmayı önermek özetlemek? –

+0

Düşündüm ki, performanstaki unsurlardan biri, simüle edebileceğim veritabanı boyutu. – Amit

cevap

2
işlemler çok yüksek hacme sahip olabilir başvurum böylece daha iyi bir performansı

veren bir seçeneği seçin gerek

Eh, performans sonra onun tek (ya da birincil) karşılaştırma, eğer db sunucusunda Oracle paketlerini yenmek zor. Ancak, şirketiniz geliştiricilerinin güçlü yönlerini göz önünde bulundurmalıdır. Bu çoğunlukla Java devs ve 1 veya 2 yalnız Oracle devs ve 1 DBA ile bir dükkan mı? Eğer öyleyse, middleware sisteminizi Oracle paketlerinde geliştirmeyin, muhtemelen Java'da Hibernate kullanarak yazılmış bir XML servisine sahip olursunuz. Yük altında hızlı olmayacak, ancak şirketinizin bakımı ve büyümesi daha kolay olacaktır.

Not: Oracle teknolojilerini kullanma konusunda önyargılıyım, ancak güçlü yanlarım var.

+0

Son olarak, saf jdbc ve yordam yerine yordam için gitmeye karar verdik. Bu karar, internette bulunan bazı karşılaştırma raporlarına ve geliştirme konforundan ziyade yüksek performansa baktığımız gerçeğine dayanıyordu. Teşekkürler tbone. – Amit

+0

emin bir şey! Ayrıca, muhtemelen farkındasınız, ama sadece proaktif ve kurulum kodlama standartları, adlandırma kuralları, kod tanıtım prosedürleri, birim test gereksinimleri, kayıt/istisna standartları, vb.Bu, herhangi bir sebepten dolayı java dükkanlarında daha yaygın olarak biliniyor/takip ediliyor gibi görünüyor, ama bir grup veritabanı devriyle o kadar da değil. Kuralları/çerçeveyi erken bırak. – tbone

+0

Öneriniz için teşekkürler. Bunun hakkında bir şeyiniz var mı? MS SQL server kullanıyoruz. Bu yönergelerin herhangi bir DB için aynı olacağını düşünüyorum. Veritabanı komut dosyalarını yönetmek için birileri var ama yine de işlerin başlangıçtan itibaren tamam olduğundan emin olmak istiyoruz. – Amit

1

En iyi seçenek şeklindedir. Bazen herhangi bir ORM kullanmak gayet iyi ve sizi destekleyecektir, diğer örnekler en iyi seçenek değildir. Bence gerçek cevap, ne yaptığınıza, nasıl yaptığınıza ve ürün tasarımının kalitesine bağlıdır. Bunların hepsi bir fark yaratır ve bir başarısızlığı veya başarısını büyük ölçüde belirleyebilir.

Alt satır, mutlaklar korkunç bir politikadır - Çalışan ve bir sorunu gideren teknolojiyi kullanın. Sorun olmaya başlarsa tekrar değerlendirin.

0

Bu oldukça geç, ancak saklı yordamları kullanarak hazırda bekleme kipini kullanarak birkaç nokta eklemek istiyorum.

Bir performans açısından bakıldığında, saklı bir yordam yazmanın veritabanına daha yakın olduğunuz anlamına geldiğinden, her zaman yazılırsa daha hızlı bir çıktı elde edileceğine inanıyorum. Sonuç olarak, hazırda bekletme, veritabanı üzerinde çalıştığı için veritabanından gerçekten daha hızlı olamaz. Sorguları optimize etme özgürlüğü, sizden hazırda bekletilen bir şeydir ve hazırda bekletme, birçok optimal sorgu ile gelebilir, ancak daha iyi bir optimizasyon için bazı olasılıklar olabilir.

Hazırda bulunan geliştiriciler bile, büyük bir veri kümesini güncelleştiriyorsanız, ağ üzerinden hazırda bekletme yapmak yerine birden çok çağrı yapmaktan daha iyi olduğunu kabul eder.

Yani sadece performansı kendiniz ölçmek için, her iki yaklaşımın kullanarak birkaç basit bir test uygulamaları yazmak için uygulanabilir mi ben iyi bir performans

İlgili konular