Veritabanı sorguları SQL Server'da pahalı mı?


15

Veritabanı sorguları SQL Server'da pahalı mı? Tüm veritabanları aynı durumdadır.


3
Hiç olduğuna dair hiçbir kanıt bulamadım, hayır. Düşünebildiğim (ancak test etmediğim) tek istisna, (a) optimize edicinin açık olamayan ilişkilerden yararlanamamasıdır (örneğin, yabancı anahtar tanımlarından yararlanabilir, çapraz var olamaz) -database) veya (b) istatistiklerin bağlantılı sunucular üzerinde sorun olmasıyla ilgili sorunlar var, ancak bir sorguyu çalıştıran bir kullanıcının bile istatistikleri göremediği durumlar olabileceğini düşünüyorum. (B) 'nin gerçek olup olmadığını bilmiyorum - test etmediniz, sadece sunucular arasında ciddi bir sorun olabileceğini bilin.
Aaron Bertrand

2
Ben bu konuda @AaronBertrand ile, kesinlikle büyük bir hit olduğunu söyleyecek bir şey görmedim. Denkleme bir şey katacağını düşündüğüm tek şey muhtemelen bir çeşit kimlik doğrulama işlemi olurdu, ancak bunun önemli olacağından şüpheliydim. Bu sadece yüksek sesle düşünüyorum, emin değilim. Buradaki en iyi bahis, veritabanları arasında otomatik bir test / karşılaştırma testi kurmak, ardından aynı sorgu veritabanları arasında ve binlerce kez bu testi çalıştırmak olacaktır. Ortalamayı, maks., Vb. Alın ve kararınızı buna göre verin.
Thomas Stringer

1
@ thomas gerçek sorgu planlarına bakarak kesin bir fark görebiliyor musunuz?
Max Vernon

@Jonathan: "pahalı" tanımı alternatiflere göredir. Peki, ne yapmaya çalışıyorsun ve aralarından hangisine karar veriyorsun? Daha fazla bilgi olmadan, bu soruya doğru görünen değerde bir cevap almak oldukça mümkündür, ancak aynı zamanda durumunuz için kesinlikle yanlıştır. Her şeyin bir maliyeti vardır, ancak karşılaştırdığınıza bağlı olarak bu maliyet ucuz veya pahalı olabilir. Ve sorgu maliyetleri (yani zaman, çekişme, vs) ihtiyaç bakım maliyetleri, donanım maliyetleri, vb karşı dengelenmesi gerekir
Solomon Rutzky

Aynı tablodaki bir sorguya kıyasla maliyeti bilmek istiyorum.
Jonathan Allen

Yanıtlar:


6

Maalesef, soru hakkında yorum yapmak için yeterli üne sahip değilim, ancak istemci uygulaması çapraz veritabanı birleşimlerini kullanan bir sorgu için bir işlem yükseltirse, o zaman işlemin dağıtılması ve bir DTC işleminin yükü olması için işlemi teşvik eder .

Bu durumda DTC yükü performansa olumsuz olarak görülebilir. Microsoft, DTC işlemlerini şu şekilde tanımlasa da, genellikle fark göz ardı edilebilir:

Dağıtılmış işlemler genellikle önemli sistem kaynaklarını tüketir

İşlem Tanıtımı

... sunucunuz ihtiyaç duyduğu kaynakları sunamazsa performans düşüşü önerir.

Sadece açıklığa kavuşturmak için, yukarıdaki makalede, uzak sistemler tanıtıldığında tanıtılan yerel işlemler açıklanmaktadır, ancak çapraz veritabanı sorguları kullanılırken aynı sunucudaki işlemler için durum böyle olmuştur.

Thomas Stringer'in yorumunda belirttiği gibi, diğer veritabanlarına erişmek için ayrı kimlik bilgileri kullanmanız gerekmediği sürece, bu SID güdümlü olacağına rağmen, kimlik doğrulamasında ekstra yük olacak.

Birleştirme işleminde önceki önerilerden daha fazla etkilenebilecek ek yüke neden olan veritabanı ayarlarında fark varsa - örneğin veritabanı harmanlama. Veritabanı harmanlama, yalnızca performans farkı değil, işlevsel bir fark olarak da ortaya çıkabilir.

Ben Aaron en iyi performans argüman çapraz veritabanı sorguları için ilişkileri kullanma avantajına sahip değilken, bir veritabanı içinde kendine yeten ilişkileri kendi yararınıza kullanabilirsiniz avantajı sahip olduğunu düşünüyorum.



1
İşlem tanıtım makalesi CLR işlemleri içindir.
stacylaray

-2

SQL Server 2014'te, bellek için optimize edilmiş tablolar veritabanları arası işlemleri desteklemez. Aynı işlemden veya aynı zamanda belleği optimize edilmiş bir tabloya erişen aynı sorgudan başka bir veritabanına erişemezsiniz. Bir veritabanındaki bir tablodan başka bir veritabanındaki belleği optimize edilmiş bir tabloya kolayca veri kopyalayamazsınız. http://msdn.microsoft.com/en-us/library/dn584627(v=sql.120).aspx Dağıtılmış ve veritabanları arası işlemler veritabanı aynalama / AOAG için desteklenmez. http://technet.microsoft.com/en-us/library/hh393530.aspx . Sahiplik zincirini kullanacaksanız, http://msdn.microsoft.com/en-us/library/ms188676.aspx güvenlik risklerinin farkında olun


Bu yalnızca "birden çok örneğe veya sunucuya yayılan kaynaklar" senaryoları için geçerlidir. Bu durumda, birden çok veritabanına sahip tek bir örnekten bahsediyoruz.
Jonathan Allen

1
Benim kötü ... Ben aynı örnek içinde olmakla ilgili kısmı özledim
stacylaray
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.