Çok sıralı kesici uç ile çoklu tek sıralı kesici uçlar


9

Benim app sadece ben db ve uygulama arasındaki gidiş-dönüş sayısını azaltır çünkü yapabileceğim zaman çok satırlı ekler yapmak.

Ancak merak ettim, başka avantajları var mı? Örneğin, aynı anda birden çok satır eklenirse:

insert into tbl (c1, c2) values
(v1, v2)
(v3, v4)

karşı:

insert into tbl (c1, c2) values (v1, v2)
insert into tbl (c1, c2) values (v3, v4)

ve tablonun bir indeksi var, endeks ilk durumda bir kez ve ikinci durumda iki kez hesaplanıyor mu? Yoksa her kesici uç için bir kez mi? Her iki sorgunun da aynı işlemde olduğunu varsayalım.

PostgreSQL kullanıyorum.


2
Ben düşünüyorum endeksi başına bir kez var güncellenir açıklamada başına bir kez değil, sıranın . Dolayısıyla, tek ifade iki ifadeden daha verimli olmalıdır. Ama emin değilim (bu yüzden cevap yok, sadece bir yorum)
a_horse_with_no_name

1
Bence doğru soru aynı işlemde kapsüllenmiş mi? Mideden, eğer bir işlemde ikisi de varsa, bir fark olmayacaktır.
user1363989

@ user1363989, ben her iki sorgular aynı işlem olacağını belirtmek için sorumu güncelledik
cdmckay

Yanıtlar:


5

@A_horse_with_no_name dizin her açıklamada bir kez güncellenir hakkında doğru olduğunu düşünüyorum, çünkü ifade yürütme tamamlanmadıysa, veri işlemde olduğundan görünür olmayacaktır. Ve bir ifadenin tanımı birden fazla değere sahip olmayı içerir

Ve burada dokümanlar endeks oluşturma / güncelleme, toplu işlerde tek ifadelere göre daha verimli çalışır.

Peter Manis'ten tavsiye edebileceğim çeşitli Insert yöntemlerinin performansı hakkında güzel bir makale de var .

Akılda tutulması gereken bir başka şey de , Fabien Coelho'nun burada açıkladığı gibiFILLFACTOR performans üzerinde bir etkisi olduğu için endeksin .


Sorgular bir işlemde toplu olarak işlenirse, dizin güncelleştirmesi deyim başına bir kez mi gerçekleşir? Başka bir şeyden dolayı performans farkı olacak mı? Bu iki makaleye de erişemiyorum: Lütfen yeniden bağlantı kurabilir misiniz?
batbrat

1

Endeks bakımı alanında şu anda herhangi bir optimizasyon farklılığı olduğuna inanmıyorum.

Ağ ek yüküne ek olarak, çok değerli ifadenin diğer avantajları ayrıştırma, kilitleme vb tbl. İşlemlerde bulunur. ifadesi hala kilidin tutulduğunu doğrulamalıdır ve bu doğrulama ücretsiz değildir)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.