2011-10-14 18 views
11

Yerel Oracle dizilerini kullanan bir JPA/Hazırda Bekletme uygulamasında, hibernate_sequence gibi tek bir genel diziyi kullanmak veya her tablo için ayrı bir sıra tanımlamak daha mı iyidir?Hangisi daha iyidir: tablo başına tek global dizi vs.

Tek bir sıralamanın sürdürülmesi daha kolaydır, ancak daha uzun kimlikler yaparak sorun giderme veya ad hoc sorgularını zorlaştırabilir.

+2

Java'nın ne kadar büyük olduğunu biliyor musunuz? Pek çok uygulama, tüm nesneler için tek bir sıra kullanmış ve 100 yıl koşmuş olsalar bile, uzun bir süredir kimlikleri tükenmekten korkmamalıdır. –

+4

Bu konuyla ilgili daha fazla tartışma burada (http://stackoverflow.com/questions/1536479/asking-for-opinions-one-sequence-for-all-tables) – jeff

+0

Evet, matematiği yaptım ve endişenin farkına vardım. 64-bit uzunluğunun taşması gerçekçi değildir. Tek tek sıraları kullanmak için başka iyi bir neden düşünmüştüm, ancak: eğer tablo içerikleri bir şekilde kendi dizilerinden ayrılırsa, maksimum değeri tek bir tablodan çok daha kolay bir şekilde yeniden oluşturabilirsiniz. – wrschneider

cevap

13

Önbellekleme onu hafifletmesine rağmen, birden çok oturumda sıradaki değerlere ihtiyaç duyulduğunda bir dizi çekişmeye neden olabilir. Tüm tabloları sunan bir diziniz varsa, tüm tablolardaki tüm ekler aynı sıra için devam eder. Performansın peşindeyseniz, her tablo için bir sıra daha az çekişme sağlayacaktır.

+0

Bu cevabı kabul etmek için iyi bir nokta - çekişme, şimdiye kadar düşünmemiş olduğum tek şey, çünkü eşzamanlı ekler kişisel olarak benim için bir faktör olma ihtimali taşıyor. Diğer sorunlar - sorun giderme için düşük # lerin netliği ve rahatlığı, daha fazla Oracle nesnesinin bakımı, çoğunlukla bir tercih meselesi gibi görünüyor. – wrschneider

+0

Bu konuyla ilgileniyorsanız: https://asktom.oracle.com/pls/asktom/f?p=100:11:451611870226342::::P11_QUESTION_ID:2985886242221 –

1

Her tablo için bir sıra kullanmanızı öneririm. Kitabımda biraz daha temiz. Şu anki işe yerleştirme sırasındaki standart tablo başına sırasıdır.

2

Tek bir sıra, iki tabloda eşleşen bir kimlik olmadığı anlamına gelir. Pratikte bunu seviyorum çünkü yanlışlıkla yanlış tabloyu sorguladığınızda asla bir şey elde edemezsiniz. Özellikle silmeler için kullanışlıdır. Bu küçük bir şey ama faydalı buluyorum.

İlgili konular