Veri akışı performansını artırma

Bu konuda tasarlamak hakkında öneriler sağlar Integration Services kaçının genel performans sorunları için paketlerBu konu ayrıca özellik ve paketlerinin performans sorunlarını gidermek için kullanabileceğiniz araçlar hakkında bilgi sağlar.

Veri akışı yapılandırma

Daha iyi performans için veri akışı görev yapılandırmak için görevin özelliklerini yapılandırmak, yapabilirsiniz ayarlamak arabellek boyutuve paralel yürütme için paket yapılandırın.

Veri akışı görev özelliklerini yapılandırın

Not

Bu bölümde açıklanan özellikleri ayrı ayrı her bir paket içine veri akışı görev için küme olması gerekir.

Veri akışı görev aşağıdaki özelliklerinin tümü performansını etkiler yapılandırabilirsiniz:

  • Arabellek veri için geçici depolama konumları belirtin (BufferTempStoragePath özellik) ve bir ikili büyük nesne (blob) veri içeren sütunlar (BLOBTempStoragePath özellik).Varsayılan olarak, bu özellikler temp ve tmp ortam değişkenleri değerlerini içerir.Geçici dosyaları farklı ya da daha hızlı bir sabit disk sürücüsüne yerleştirin veya bunları birden çok sürücüye yaymak için diğer klasörleri belirtmek isteyebilirsiniz.Dizin adlarını noktalı virgül ile sınırlayan tarafından birden çok dizin belirtebilirsiniz.

  • Varsayılan ayarlayarak görev kullanır arabellek boyutunu tanımlamak DefaultBufferSize özellik, en fazla satır sayısı her arabellekte olarak tanımlayın ve DefaultBufferMaxRows özellik.Varsayılan arabellek 10 megabayt cinsinden en büyük arabellek boyutu 100 megabayt olarak boyutudur.Varsayılan en fazla satır sayısı. 000'dir.

  • Görev yürütme sırasında ayarlayarak kullanabileceğiniz iş parçacığı sayısını ayarlama EngineThreads özellik.Bu özellik kullanmak için bir öneri için iş parçacığı sayısı hakkında veri akışı altyapısı sağlar.Minimum değeri, 3 ile 5 varsayılandır.Ancak, alt yapısı, bu değeri ne olursa olsun gerekli olandan daha fazla iş parçacığı kullanıp özellik.Motoru da bu konuda belirtilenden daha fazla iş parçacığı kullanabiliriz özellik, gerekirse eşzamanlılık sorunlarını önlemek.

  • Veri akışı görev en iyi duruma getirilmiş modunda çalışıp çalışmayacağını gösterir (RunInOptimizedMode özellik).En iyi duruma getirilmiş modunda kullanılmayan sütunlar, çıktıları ve bileşenlerini kaldırarak performansını artırır veri akışı.

    Not

    Özellik aynı ada sahip bir RunInOptimizedMode, olabilir küme proje düzeyinde Business Intelligence Development Studio hata ayıklama sırasında veri akışı görev en iyi duruma getirilmiş modunda çalışacağını belirtmek için.Bu proje özellik geçersiz kılar RunInOptimizedMode özellik veri akışı görevler tasarım en saat.

Boyutlandırma arabelleklerinin ayarlama

Veri akışı altyapısı tahmini boyutu, tek bir veri satırı hesaplayarak kendi arabellekler boyutlandırma görevine başlar.Tahmini boyutu, satır değeri tarafından çarpar, sonra DefaultBufferMaxRows elde bir ön çalışma için değeri arabellek boyutu.

  • Sonuç değeri birden fazla ise DefaultBufferSize, motor azaltır sayısı satırlar.

  • Sonuç düşük dahili olarak hesaplanan değerin altında ise arabellek boyutu, altyapısı satır sayısını artırır.

  • Sonuç en küçük arabellek boyutu değeri arasında yer alıyorsa, DefaultBufferSize, tahmini satır boyutu için mümkün olduğunca yakın olarak arabellek değeri zaman motoru boyutları DefaultBufferMaxRows.

Veri akışı görevleri performansını test başladığınızda, varsayılan değerleri kullanmak DefaultBufferSize ve DefaultBufferMaxRows.veri akışı görevi günlüğe kaydetmeyi etkinleştirmek ve her arabellekte kaç satır içerdiği görmek için BufferSizeTuning olay'ı seçin.

Boyutlandırma arabelleklerinin ayarlamaya başlamak önce gereksiz sütunları kaldırarak ve veri türleri uygun şekilde yapılandırarak her satır veri boyutunu azaltmak için yapabileceğiniz en önemli geliştirme olur.

Kullanılabilir yeterli bellek olduğu halde, daha az sayıda büyük arabelleklerin yerine, çok sayıda küçük arabellekleri kullanmalısınız.Başka bir deyişle, verilerinizi saklamak için gerekli arabellek toplam sayısını azaltarak ve çok sayıda veri arabellek mümkün olduğunca içine sığdırma performansını artırabilirsiniz.Arabellekleri ve büyüklükleri gereken optimum adım sayısını belirlemek için değerleriyle deneme DefaultBufferSize ve DefaultBufferMaxRows karşın, performans ve bilgi izleme bildirilen tarafından BufferSizeTuning olay.

Artır arabellek boyutu başladığı için disk belleği ortaya noktasına.Disk belleği disk için optimize bir arabellek boyutu birden çok performans yavaşlattığını.Disk belleği oluşmasını olup olmadığını belirlemek için "arabellekleri biriktirilir" izlemek performans sayacı performans ek bileşenini, Microsoft Yönetim Konsolu (mmc).

Paket yapılandırma için paralel yürütme

Paralel yürütme birden çok fiziksel veya mantıksal işlemcisi olan bilgisayarlarda performansı artırır.Paralel yürütme farklı görevleri desteklemek için paket, Integration Services iki özelliklerini kullanır: MaxConcurrentExecutablesand EngineThreads.

MaxConcurrentExcecutables özelliği

The MaxConcurrentExecutables property is a property of the package itself.Bu özellik, kaç görevleri aynı anda çalıştırabilirsiniz tanımlar.Başka bir deyişle fiziksel veya mantıksal işlemci sayısı artı 2 -1 varsayılan değerdir.

Bu özellik nasıl çalıştığını anlamak için üç veri akışı görev bulunan bir örnek paket göz önünde bulundurun.Varsa, küme MaxConcurrentExecutables 3, tüm üç veri akışı görevleri aynı anda çalıştırabilirsiniz.Ancak, her veri akışı görev 10 kaynak hedef yürütme ağaçları olduğunu varsayalım.Ayar MaxConcurrentExecutables 3 değil sağlamak içinde her bir veri akışı görevin yürütme ağaçları çalışmaya paralel.

EngineThreads özelliği

The EngineThreads property is a property of each Data Flow task.Bu özellik, iş parçacıkları sayısını tanımlar veri akışı altyapısı oluşturabilir ve paralel olarak çalıştırabilirsiniz.The EngineThreads property applies equally to both the source threads that the data flow engine creates for sources and the worker threads that the engine creates for transformations and destinations.Bu nedenle, ayar EngineThreads 10 anlamına gelir olduğunu motoru oluşturabileceği en fazla on kaynak iş parçacıkları ve en fazla on alt iş parçacığı sayısı.

Bu özellik nasıl çalıştığını anlamak için örnek paket veri akışı görevler üç göz önünde bulundurun.Her veri akışı görev on kaynak hedef yürütme ağaçları bulunur.Varsa, küme EngineThreads her veri akışı görev üzerinde 10 30 yürütme ağaçların potansiyel çalıştırabilirsiniz aynı anda.

Not

İş parçacığı, bir tartışma bu konunun kapsam dışındadır.Ancak, genel bir kural daha fazla iş parçacığı daha kullanılabilir işlemci sayısına paralel değil çalıştırmaktır.Daha fazla iş parçacığı kullanılabilir işlemci sayısına göre çalışan sık sık içerik anahtarlama iş parçacıkları arasında nedeniyle performansı düşürür.

Bireysel veri akışı bileşenleri yapılandırma

Daha iyi performans için tek tek veri akışı bileşenlerini yapılandırmak için izleyen bazı genel kurallar vardır.Ayrıca her türü için belirli yönergeler vardır veri akışı bileşeni: Kaynak, dönüştürme ve hedef.

Genel yönergeler

Ne olursa olsun veri akışı bileşeni, performansı artırmak için uygulamanız gereken iki genel kurallar vardır: sorgu en iyi duruma getirme ve gereksiz dizeleri kaçının.

Sorgu en iyi duruma getirme

Sorgular, veri akışı bileşenleri çeşitli kullanır ya da ne zaman onlar ayıklamak veri kaynaklarından ya da arama işlemlerinde başvuru tabloları oluşturmak için.Varsayılan sorgu seçme kullanır * from <tableName> sözdizimi.Bu tür sorgu kaynağında tüm sütunları döndürür tablo.Tasarım zamanında tüm sütunlara sahip saat arama, doğrudan veya kaynak sütun herhangi bir sütun seçmek mümkün kılar.Ancak, kullanılacak sütun seçtikten sonra yalnızca seçili sütunları eklemek için sorguyu gözden geçirmeniz gerekir.Veri akışı içinde gereksiz sütunları yapar kaldırma bir paket daha küçük bir satır daha az sütun oluşturduğundan daha verimli.Daha küçük bir satır daha fazla satır yapabileceğiniz anlamına gelir uyma bir arabellek ve daha az çalışma halinde, dataset içindeki tüm satırları işlemektir.

Bir sorgu oluşturmak için sorgu yazın veya Sorgu Oluşturucusu'nu kullanın.

Not

paket çalıştırdığınızda Business Intelligence Development Studio, ilerleme sekmesini SSIS Tasarımcısı listeler uyarılar.Herhangi bir veri tanımlama bu uyarıları dahil et sütun bir kaynak veri akışının kullanılabilir hale getirir, ancak sonradan akış veri akışı bileşenleri tarafından kullanılır.Kullanabileceğiniz RunInOptimizedMode Bu sütunları otomatik olarak kaldırmak için özellik.

Gereksiz sıralama kaçının

Sıralama devralınarak bir yavaş işlemidir ve gereksiz sıralama önleme paket veri akışı performansını geliştirebilirsiniz.

Bazen kaynak veriler zaten bir aşağı akım bileşeni tarafından kullanılan önce Tasnif edilmiş.Bu tür pre-sorting seçme sorgusu bir order by yan tümce tümce tümce veya veri içine ne zaman eklendiği kullanıldığında oluşabilir kaynak de sırada sıralanır.Bu tür pre-sorted kaynak verileri için veriler sıralanır ve böylece belirli bir aşağı akım dönüşümleri sıralama gereksinimlerini karşılamak için sıralama dönüştürme kaçının bir ipucu sağlayabilir.(Örneğin, sıralanmış girdileri Birleştir ve birleştirme Katıl dönüşümleri gerektirir.) Veriler sıralanır bir ipucu sağlamak için aşağıdaki görevleri yapmanız gerekir:

  • Set IsSorted özellik bir ters yönde veri akışı bileşen çıktısı üzerinde True.

  • Verilerin sıralanma sıralama anahtar sütunları belirtin.

Daha fazla bilgi için bkz: Nasıl yapılır: Birleştir ve birleştirme Katıl dönüşümleri için veri sıralama.

Veri akışı verileri sıralamak gerekirse, mümkün olduğunca az sayıda işlem sıralama gibi kullanmak için veri akışı tasarlama tarafından performansı artırabilir.Örneğin, veri akışı DataSet'i kopyalamak için bir çok noktaya yayın dönüştürme kullanır.Önce dönüştürme sonra birden fazla çıkışı sıralama yerine bir kez çok noktaya yayın dönüşümü çalışır, dataset sıralayın.

Daha fazla bilgi için bkz: Sıralama dönüşümü, Dönüşümü Birleştir, Birleştirme Katıl dönüşümü, ve Çok noktaya yayın dönüşümü.

Kaynaklar

ole db kaynağı

Görünümden veri almak için ole db kaynak kullandığınızda, "sql komut" seçin. Veri erişim modu ve bir deyim girin.Bir deyim kullanarak verilere erişme "Tablo ya da Görünüm" seçerek daha iyi yapar Veri erişim modu.

Dönüşümleri

Önerileri bu bölümde toplama, belirsiz arama, belirsiz gruplandırma, arama, birleştirme Katıl ve yavaş değiştirme boyut dönüşümleri performansını artırmak için kullanın.

Toplama dönüşümü

Toplama dönüştürme içeren Keys, KeysScale, CountDistinctKeys, ve CountDistinctScale özellikleri.Bu özellikleri, dönüştürme dönüşümü önbelleğe veri için gereken bellek miktarını erişinceye dönüşümünü sağlayarak performansı artırmak.Dan neden beklenen gruplar tam veya yaklaşık sayısını biliyorsanız, bir grubu tarafından işlemi, küme Keys ve KeysScale özellikleri, sırasıyla.Dan neden beklenen ayrı değerlerinin tam veya yaklaşık sayısını biliyorsanız, bir ayrı sayım işlemi, küme CountDistinctKeys ve CountDistinctScale özellikleri, sırasıyla.

Bir veri akışı birden fazla toplamalardan oluşturmak varsa, birden çok dönüşümleri oluşturmak yerine bir toplama dönüştürme kullanın birden fazla toplamalardan oluşturmayı göz önünde bulundurun.Bu yaklaşım performansını artırır dönüştürme dahili depolama en iyi duruma getirmek ve gelen verileri yalnızca bir kez taramak için bir toplama başka bir toplama alt küme küme küme kümesidir.Bir toplama bir group by yan tümce tümce tümce ve avg toplama kullanıyorsa, örneğin, dönüştürme bunları birleştirerek performansı artırabilir.Ancak, bir toplama dönüştürme içinde birden çok toplama işlemi gerçekleştirme serileştirildiğini toplama işlemleri ve birden fazla toplamalardan bağımsız olarak hesaplanan gerekir, bu nedenle performansı iyileştirebilir değil.

Daha fazla bilgi için bkz: Toplama dönüşümü.

Belirsiz arama ve belirsiz gruplandırma dönüşümleri

Beyaz kağıt belirsiz arama ve belirsiz gruplandırma dönüştürmeleri performansını en iyi duruma getirme hakkında bilgi için bkz: belirsiz arama ve sql Server Integration hizmetleri 2005 belirsiz gruplandırma.

Arama dönüşümü

Belleğe başvuru veri boyutu yalnızca gereksinim duyduğunuz sütunlarını arayan bir deyim girerek en aza indirin.Bu seçenek tüm seçerek daha iyi yapar tablo ya da görünüme büyük miktarda gereksiz veri döndürür.

Birleştirme Katıl dönüşümü

Birleştirme Katıl dönüştürme içeren MaxBuffersPerInput , tek tek her giriş için etkin bir arabellek sayısı üst sınırını belirtir özellik, saat.Arabellek kullanan bellek miktarı ve sonuç olarak, performansını ayarlamak için bu özellik kullanabilirsiniz dönüştürme.Arabellek sayısı ne kadar büyükse, daha fazla bellek dönüştürme kullanır ve daha iyi bir performans olduğunu.Varsayılan değer olan MaxBuffersPerInput 5, arabellek sayısı'de de çalışır olduğu durumdabirçok senaryo. Performansını ayarlamak için biraz farklı bir 4 veya 6 gibi arabellek sayısını kullanarak denemek isteyebilirsiniz.Mümkünse, arabellek çok küçük bir sayı kullanarak kaçınmanız gerekir.Örneğin, MaxBuffersPerInput 1 / 5 performans üzerinde önemli bir etkisi vardırAyrıca, size gereken değil küme MaxBuffersPerInput için 0 veya daha az.Bu değerler aralık yok azaltma oluşur ve veri yükü ve kullanılabilir bellek miktarını bağlı olarak, paket tamamlanmayabilir anlamına gelir.

çıkmaz önlemek için Birleştir Katıl dönüştürme geçici olarak değerinin kullanır arabellek sayısını artırmak MaxBuffersPerInput.çıkmaz durumu çözüldükten sonra MaxBuffersPerInput döner yapılandırılmış kendi değer.

Daha fazla bilgi için bkz: Birleştirme Katıl dönüşümü.

Yavaş boyut dönüşümü değiştirme

Yavaş değiştirme boyut Sihirbazı ve boyut yavaş değiştirme dönüştürme, çoğu kullanıcının ihtiyaçlarını karşılamak genel amaçlı araçlardır.Ancak, sihirbazın oluşturduğu veri akışı performans için optimize edilmiştir.

Genellikle, en yavaş boyut yavaş değiştirme dönüştürme içinde tek bir satır sonunda karşı güncelleştirme gerçekleştirme ole db komut dönüştürmeleri bileşenleridir bir saat.Bu nedenle, boyut yavaş değiştirme dönüştürme performansını artırmak için en etkili yolu ole db komut dönüştürmeleri değiştirmektir.Bu dönüştürmeler için hazırlama bir tablo için tüm satırların Kaydet hedef bileşenleri değiştirebilirsiniz.Daha sonra tek küme alarak Transact-sql güncelleştirme tüm satırlar aynı karşı gerçekleştirdiği bir sql Yürüt görev ekleyebilirsiniz saat.

İleri düzey kullanıcılar tasarlamak için bir özel veri akışı yavaş değişen boyut yani işleme büyük boyutlar için optimize edilmiş.Bir tartışma bu yaklaşım örneği için bkz: bölüm, "benzersiz boyut senaryosu" Teknik İnceleme Proje gerçek: Business Intelligence etl tasarım yöntemleri.

Hedefleri

Hedefleri ile daha iyi performans elde etmek için kullanmayı düşünün bir SQL Server hedef ve sınama hedefin performans.

sql Server hedef

Bir paket veri yüklediğinde bir örnek , SQL Server aynı bilgisayarda kullanmak bir SQL Server hedef.Bu hedef, yüksek hızlı yığın yüklemeleri için optimize edilmiştir.

Hedefleri performansını sınayın

Veri kaydetme hedeflere daha fazla sürdüğünü görebilirsiniz saat beklenenden daha fazla.Slowness yeterince hızlı veri işleme becerisinin hedef tarafından neden olduğu olup olmadığını belirlemek için bir satır sayısı dönüştürme ile hedef geçici olarak değiştirebilirsiniz.Üretimini önemli ölçüde artırır, veri yükleme hedef yavaşlama neden olan olasıdır.

Paket performansını izleme

Integration Services Araçlar ve paket performansını izlemek için kullanabileceğiniz özellikler içerir.Örneğin, günlük çalışma - yakalarsaat paket ve performans sayaçları hakkında bilgi veri akışı altyapısı izlemenize olanak sağlar.Aşağıdaki öneriler paket hangi bölümlerinin performans üzerinde en fazla etkisi yaşadığınız belirlemek için kullanın.

İlerleme sekmesindeki bilgileri gözden geçirin.

SSISpaket çalıştırdığınızda, tasarımcı sağlar denetim akışı hem de veri akışı hakkında bilgi Business Intelligence Development Studio.The Progress tab lists tasks and containers in order of execution and includes start and finish times, warnings, and error messages for each task and container, including the package itself.Ayrıca, yürütme sırasını, veri akışı bileşenlerini listeler ve ilerleme, eksiksiz, yüzde olarak görüntülenir ve işlenen satır sayısı hakkında bilgi içerir.

Etkinleştirmek veya iletilerin görüntülenmesini devre dışı bırakmak ilerleme sekmesinde, geçiş İlerleme raporlama Debug üzerinde seçenek SSIS menü.İlerleme durumu raporlama devre dışı bırakılması yardımcı olabilir karmaşık bir paket çalışırken performansı BI Development Studio.

Pakette oturum açmayı yapılandırmak

Integration Servicespaketleri çalıştırma bilgileri günlüğe kaydetmek izin günlüğü sağlayıcılarını çeşitli içerir saat dosyaları ya da farklı türleri için SQL Server.You can enable log entries for packages and for individual package objects such as tasks and containers.Integration Services includes a wide variety of tasks and containers, and each task and container has its own set of descriptive log entries.Örneğin, bir sql Yürüt görev içeren bir paket deyim parametre değerlerini içeren görev yürütülen sql deyim listeleyen bir günlük girdisi yazabilirsiniz.

Günlük girişleri ve bitiş saatleri paketleri ve yavaş çalışan görevleri ve kapsayıcılar tanımlamak edinerek paket nesneleri başlangıcı gibi bilgileri içerir.Daha fazla bilgi için bkz: Günlüğü paket yürütme, Uygulama paketlerinde günlüğü, ve Özel günlük iletileri.

Veri akışı görevleri için günlüğe kaydetmeyi yapılandırmak

Veri akışı görev performansını ayarlamak ve izlemek için kullanılan birçok özel günlük girdilerini sağlar.Örneğin, bellek sızıntıları neden veya ne kadar süreyle, belirli bir bileşeni çalıştırmak için geçecek izlemek bileşenleri izleyebilirsiniz.Bu özel günlük girdilerini ve örnek günlük çıkış listesi için bkz: Veri akışı görev.

PipelineComponentTime olay kullanın

Belki de en yararlı özel günlüğü girişi PipelineComponentTime olan olay.Bu günlük girdisi her veri akışı bileşenin geçirdiği milisaniye sayısını her beş ana işlem adımları raporlar.The following table describes these processing steps.Integration Services developers will recognize these steps as the principal methods of a PipelineComponent.

Adım

Açıklama

Doğrula

Bileşen geçerli özellik değerleri ve yapılandırma ayarlarını denetler.

PreExecute

Bileşen tek - gerçekleştirensaat veri satırları işlemeye başlamadan önce işleniyor.

PostExecute

Bileşen tek - gerçekleştirensaat tüm veri satırları işledikten sonra işleme.

ProcessInput

dönüştürme veya hedef bileşeni bir ters yönde kaynak veya dönüştürme için geçen veri gelen satırları işler.

PrimeOutput

Kaynak veya dönüştürme bileşen akış aşağı dönüştürme veya hedef bileşeni iletilmek üzere veri arabellek doldurur.

PipelineComponentTime olay etkinleştirdiğinizde, Integration Services bir ileti için tarafından gerçekleştirilen her işlem adımını günlüğe kaydederher bileşen. alt küme küme küme kümesi iletileri aşağıdaki günlük girdileri göster Integration Services CalculatedColumns paket örnek günlükleri:

The component "Calculate LineItemTotalCost" (3522) spent 356 milliseconds in ProcessInput.

The component "Sum Quantity and LineItemTotalCost" (3619) spent 79 milliseconds in ProcessInput.

The component "Calculate Average Cost" (3662) spent 16 milliseconds in ProcessInput.

The component "Sort by ProductID" (3717) spent 125 milliseconds in ProcessInput.

The component "Load Data" (3773) spent 0 milliseconds in ProcessInput.

The component "Extract Data" (3869) spent 688 milliseconds in PrimeOutput filling buffers on output "OLE DB Source Output" (3879).

The component "Sum Quantity and LineItemTotalCost" (3619) spent 141 milliseconds in PrimeOutput filling buffers on output "Aggregate Output 1" (3621).

The component "Sort by ProductID" (3717) spent 16 milliseconds in PrimeOutput filling buffers on output "Sort Output" (3719).

veri akışı görevi azalan sırada aşağıda gösterildiği aşağıdaki adımları üzerinde en çok saat harcanan bu günlük girdileri göster:

  • The OLE DB source that is named "Extract Data" spent 688 ms.loading data.

  • The Derived Column transformation that is named "Calculate LineItemTotalCost" spent 356 ms.performing calculations on incoming rows.

  • "Toplam miktar ve LineItemTotalCost" adlı toplama dönüştürme bir birleşik 220 ms harcanan — 141 PrimeOutput ve ProcessInput de 79 — hesaplamaları gerçekleştirmek ve verileri bir sonraki dönüştürme geçirmeden.

Veri akışı altyapısı performansını izlemek

Integration Services veri akışı altyapısı performansını izlemek için performans sayaçları küme içerir.Örneğin, belleğin bayt arabellekleri tüm bileşenleri, bellek yetersiz olup olmadığını denetleyin ve kullanan toplam miktarını izleyebilir.Bir arabellek bir blok bir bileşen verilerini depolamak için kullandığı bellek.Daha fazla bilgi için bkz: Veri akışı altyapısı performansını izleme.

Dış Kaynaklar

Integration Services simgesi (küçük)Integration Services ile güncel kalın

En son karşıdan yüklemeler, makaleler, örnekler ve seçilen topluluk çözümleri yanı sıra Microsoft videolar için ziyaret Integration Services sayfa msdn veya TechNet:

Bu güncelleştirmelerle ilgili otomatik bildirim almak için, sayfadaki RSS akışlarına abone olun.