SQL Server 2014'ten itibaren toplu halde tam olarak ne çalıştırabilir?
SQL Server 2014, toplu iş modu işleçlerinin orijinal listesine aşağıdakileri ekler:
- Karma Dış birleştirme (tam birleştirme dahil)
- Karma Yarı Birleşme
- Hash Anti Yarı Katılma
- Tümünü Sendika (Yalnızca Birleştirme)
- Skaler karma agrega (gruplamaya göre değil)
- Toplu Karma Tablo Oluşturma kaldırıldı
Sütun deposu dizininden gelmese bile verilerin toplu moda geçebileceği görülüyor.
SQL Server 2012, toplu işleçlerin kullanımında çok sınırlıydı. Toplu iş kipi planları sabit bir şekle sahipti, sezgisellere dayanıyordu ve sıra kipi işlemine geçiş yapıldıktan sonra toplu iş kipini başlatamıyordu.
SQL Server 2014, yürütme modunu (toplu iş veya satır) sorgu iyileştiricinin genel özellik çerçevesine ekler; bu, planın herhangi bir noktasında toplu iş moduna geçiş yapmayı düşünebilir. Geçişler, plandaki görünmez yürütme modu bağdaştırıcıları tarafından gerçekleştirilir. Bu adaptörler, optimizasyon sırasında tanıtılan geçiş sayısını sınırlamak için bunlarla ilişkili bir maliyete sahiptir. Bu yeni esnek model Karışık Mod Yürütme olarak bilinir.
Yürütme modu bağdaştırıcıları, belgelendirilmemiş TF 8607 ile iyileştiricinin çıktısında (ne yazık ki kullanıcı tarafından görülebilen uygulama planlarında olmasa da) görülebilir. Örneğin, bir satır deposundaki satır sayma sorguları için aşağıdakiler yakalandı:
Bir sütun deposu dizini kullanmak, SQL Server'ın toplu iş modunu değerlendirmesini sağlamak için gerekli olan resmi bir gereksinim midir?
Bugün, evet. Bu kısıtlamanın olası bir nedeni, parti modu işlemeyi doğal olarak Enterprise Edition ile sınırlandırmasıdır.
Toplu iş modunu başlatmak için bir sütun deposu dizini içeren sıfır satırlı boş bir tablo ekleyebilir miyiz?
Evet, bu işe yarıyor. Ben de bu sebeple tek sıralı kümelenmiş bir sütun deposu endeksine çapraz katılan insanları gördüm. Solda yaptığınız yorumlarda yaptığınız öneri sahte olarak kukla bir sütun deposu masasına katılmak.
-- Demo the technique (no performance advantage in this case)
--
-- Row mode everywhere
SELECT COUNT_BIG(*) FROM dbo.FactOnlineSales AS FOS;
GO
-- Dummy columnstore table
CREATE TABLE dbo.Dummy (c1 int NULL);
CREATE CLUSTERED COLUMNSTORE INDEX c ON dbo.Dummy;
GO
-- Batch mode for the partial aggregate
SELECT COUNT_BIG(*)
FROM dbo.FactOnlineSales AS FOS
LEFT OUTER JOIN dbo.Dummy AS D ON 0 = 1;
Sahte sol dış birleşim ile planlayın:
Belgeleme ince
Doğru.
En iyi resmi bilgi kaynakları, Kolon Deposu Dizinleri ve SQL Server Kolon Deposu Performans Ayarlaması'dır .
SQL Server MVP Niko Neugebauer'in genel olarak burada depo alanında müthiş bir dizisi var .
Bu, resmi ürün belgeleri olmamasına rağmen Microsoft Araştırma belgesindeki 2014 değişiklikleri, SQL Server Sütun Depolarındaki İyileştirmeler (pdf) hakkında bazı iyi teknik detaylar var .