Aracılığıyla paylaş


Bit eşlem süzgeç Selectivity sorunlarını giderme

Bit eşlem süzme yıldız şemalar, erken sorgu planlamasını olmayan nitelemek için Satırlar'ı kaldırarak kullanan veri ambar sorguları performansını önemli ölçüde artırabilirsiniz.Bu, birleştirmek işleç ve tüm izleyen işleçler gelişmiş bir sorgu yanıt süreleri kaynaklanan geçtiğini satırları azaltır.Içinde SQL Server 2008, bit eşlem süzme sorgu planı en iyi duruma getirme (Bu bağlantı sonra sunulan veya dinamik olarak sorgu planı oluşturma sırasında sorgu iyileştiricisi tarafından kullanılmaya başlandı. Süzgeç dinamik olarak sunulan, onu olarak adlandırılmıştır bir bit eşlem süzgeç en iyi duruma getirilmiş.Bit eşlem süzme hakkında daha fazla bilgi için bkz: Bit eşlem süzme yoluyla veri ambar sorgu performansı en iyi duruma getirme.

Yalnızca bir bit eşlem süzgeç nonselective olduğunda, süzme bit eşlem belirli performans sorunları oluşur.Nonselective bit eşlem süzgeçle yükü işleme sorguda gereksiz oluşturur ve daha yavaş gerçekleştirmek sorgu performansını artırma yerine neden olabilir.

Tanılama ve Nonselective bit eşlem süzgeçleri çözümleniyor

Sorgu performans sorunları ilgili nonselective bit eşlem süzgeçleri tanılamaya ve işlem yapmak için aşağıdaki adımları izleyin:

  1. Performans sorununa neden sorguları tanımlayın.

    Kullanımı SQL Server Profiler yavaş bir sorgu veya sorguları belirlemenize yardımcı olması için . Daha fazla bilgi için bkz:SQL Server Profiler'ı kullanma.Bir metin, XML veya sorgu iyileştiricisi üreten sorgu yürütme planı grafik gösterimi bir gösterim planı üretme olarak da, sorgu performansını çözümleyebilirsiniz.Daha fazla bilgi için bkz: küme SHOWPLAN_TEXT (Transact-SQL), XML Showplans, ve Grafik yürütme görüntüleme (SQL Server Management Studio'yu) planları..

  2. Sorgular, bit eşlem süzgeçleri kullanın doğrulayın.

    Sorgu planları kullanarak yakalamak sys.dm_exec_query_plan (Transact-SQL) ve sys.dm_exec_query_stats (Transact-SQL) Sorgu gerçekte bit eşlem süzgeçleri kullanıp kullanmadığını doğrulamak için . Alternatif olarak, XML gösterim planı veya sorguların grafik yürütme planı bit eşlem filtrelerini arayabilirsiniz.Daha fazla bilgi için bkz:Bit eşlem süzgeçleri içeren planları yürütme yorumlama.

  3. Bit eşlem süzme Performans sorununun nedeninin olduğunu doğrulayın.

    Bit eşlem süzme, yalnızca karma veya birleştirme hangi birleşimlerin kullanılır paralel sorgu planları kısmındaki uygulanır.En iyi duruma getirilmiş bir bit eşlem süzme, yalnızca karma değerini hangi birleşimlerin kullanılan paralel sorgu planları kısmındaki uygulanır.Bir bit eşlem süzgeç sorgu performansı etkilemesini olduğunu doğrulamak için , bit eşlem sorgu deyim içinde birleştirmek ipucu LOOP belirterek süzme el ile devre dışı bırakın.Bu karma birleştirmek yerine belirtilen birleştirmek türünü seçmek için en iyi duruma getiricisi zorlar.Ayrıca sorgu deyiminde birleştirmek ipucu birleştirmek belirterek süzme en iyi duruma getirilmiş bir bit eşlem devre dışı bırakabilirsiniz.Bu ipuçları'nı kullanma hakkında daha fazla bilgi için bkz: Ipucu (Transact-SQL) katılın. ve Sorgu ipuçları (Transact-SQL).

  4. Izlemeyi kullanma olay Bit eşlem Uyarısı hangi biteşleminde, filtreleri devre dışı sorguları izlemek için.

    Varsayılan olarak, devre dışı sorgu iyileştiricisi nonselective bit eşlem süzgeçleri otomatik olarak bırakır.Izleme olayı, bit eşlem süzgeç nonselective oldu nedenlerini ortadan deneyin.Bit eşlem süzgeci olmayan-selectivity aşağıdaki nedenler olabilir:

    • sorgu iyileştiricisi tarafından yapılan uygun olmayan bir önem düzeyi tahminleri.

      SQL Server birincil dizin veya istatistikleri, el ile veya otomatik olarak oluşturulduğunda oluşturulan çubuk gelen cardinalities tahmin eder.Güncel olmayan istatistiklerini ve eksik dizin suboptimal sorgu planları neden olabilecek hatalı maliyet hesaplamalarında kaynaklanan, hatalı önem düzeyi tahminleri neden olabilir.Sorguda söz konusu sütunlarda yararlı bir dizin veya istatistikleri oluşturun.Daha fazla bilgi için bkz:Düşük Query performans sorun giderme: Önem düzeyi tahmin.

    • Sistemde bellek baskısı.

      Bellek baskısı altında yoğun olarak yüklenen bir sistemdeki sorguların bit eşlem oluşturmak için gerekli en az bellek almak için bit eşlem filtrelerle sorgu planı sorgularını bit eşlem işleç bırakma.Sistem Monitörü performansını izlemek için kullanılabilir: SQL Server ve sistemde bellek baskısı neden olabilecek bir SQL Server bileşenleri. Örneğin, kullanabileceğiniz Bellek Yöneticisi nesnesi genel sunucu bellek kullanımını izlemek için.Daha fazla bilgi için bkz:Izleme kaynak kullanımı (Sistem Monitörü).Bellek baskısı ile ilgili sorunları giderme hakkında daha fazla bilgi için bkz: SQL Server 2005'te performans sorunları giderme.

    • Paralel olarak sorguyu çalıştırmak için yeterli iş yok.

      Bit eşlem süzgeçleri, yalnızca bir paralel sorgu planı uygulanır.Iş parçacığı gereksinim parallelism belirli bir ölçüde için paralel planlama çizelgesinin karşılanan, Database Engine otomatik olarak parallelism derecesini azaltır veya tamamen belirtilen iş yükünü içeriğinde paralel planı abandons. Sonra planı (iş parçacığı parçacığının) seri yürütür.Daha fazla bilgi için bkz:Parallelism derecesi.