Aracılığıyla paylaş


Filtreler katılın

A birleştirmek filtresi filtre uygulanacak tablo temel alınarak nasıl ilişkili tabloda yayın süzülür sağlar.Genellikle üst tablo parametreleştirilmiş bir filtre kullanarak filtre uygulanır; daha sonra bir veya birden çok birleştirmek filtreleri çok tablolar arasında birleştirmek tanımlamak aynı şekilde tanımlanır.birleştirmek filtresis genişletmek parametreli filtre eşleşiyorsa, ilgili tablolardaki verileri yalnızca çoğaltılan böylece birleştirmek filtresi yan tümce tümce tümce.

Birleşim filtre uygulanmış tablolar için tanımlanan birincil anahtar yabancı anahtar ilişkileri genelde izleyin, ancak kesinlikle birincil anahtar yabancı anahtar ilişkileri için sınırlı değildir.birleştirmek filtresi İki tablolardaki ilgili verileri karşılaştıran mantığı temel alabilir.

Aşağıdaki tablolarda göz önünde Adventure Works ile ilgili örnek veritabanı birincil anahtar yabancı anahtar ilişkileri için:

  • HumanResources.Employee

  • Sales.SalesOrderHeader

  • Sales.SalesOrderDetail

Bu tabloları bir uygulamada bir mobil satış ekibi desteklemek için kullanılabilir, ancak bunlar her nedenle bu süzülmüş olabilir gerekir satış kişi HumanResources.Employee tablo yalnızca müşterilerine ilgili veri alır siparişleri.

Üst öğede parametreleştirilmiş bir filtre tanımlamak için ilk adımı olan tablo, bu örnekte olduğu HumanResources.Employee tablo.Bu tablo içeren sütun LoginID, formdaki her çalışan için oturumu içeren etki alanı\login.Böylece her çalışan yalnızca bunlarla ilgili verileri alır Bu tablo filtre uygulamak için bir parametreli filtre yan tümce tümce tümcesinde belirtin:

LoginID = SUSER_SNAME()

Bu filtre her çalışanın abonelik yalnızca verileri içerdiğini garantiler HumanResources.Employee o çalışanla ilgili tablo (Bu, durum tek bir satır).Daha fazla bilgi için bkz: Parametreli satır filtreleri.

Bu filtre için iki tablo arasındaki birleştirmek belirtmek için kullanılan benzer bir sözdizimi kullanarak ilişkili tablolar için genişletmek için sonraki adım olacaktır.İlk birleşim filtresi yan tümce tümce tümce olur:

Employee.EmployeeID = SalesOrderHeader.SalesPersonID

Bu abonelik yalnızca her satış elemanı için ilgili sipariş verilerini içeren sağlar.İkinci birleşim filtresi yan tümce tümce tümce olur:

SalesOrderHeader.SalesOrderID = SalesOrderDetail.SalesOrderID

Bu abonelik için sipariş verilerini her satış elemanı için ilgili ayrıntı verilerini içeren sağlar.Bu örnek, her noktada Katılınan tek bir tablo gösterir; Ayrıca için mümkündür birleştirmek her noktasında birden fazla tablo.

Tek tek birleşim Filtreler eklenebilir bir saat yeni yayın Sihirbazı aracılığıyla ve Publication Properties iletişim kutusu veya eklenebilir programlı.Bunlar aynı zamanda otomatik olarak yeni yayın Sihirbazı ile oluşturulabilir: bir tablo için bir satır filtre belirtin ve tüm ilişkili tablolar için birleştirmek filtre uygulanır.

Birleşim filtre performansını en iyi duruma getirme

Birleştirme filtre performansını buradaki yönergeleri izleyerek optimize edilmiş:

  • Tablo sayısını sınırlamak birleşim filtresi hiyerarşisi.

    Sınırsız sayıda tablonun birleşim filtreleri içerebilir, ancak filtreleri ile çok sayıda tablo birleştirme işlemi sırasında performansı önemli ölçüde etkileyebilir.Beş veya daha fazla tabloyu birleştirmek süzgeçleri üretiyorsanız, diğer çözümleri göz önüne alın: küçük değil değiştirilebilir veya öncelikle arama tabloları tablo filtre.Abonelikler arasında bölümlenmiş tablolar arasındaki birleştirmek filtreleri kullanın.

  • Set birleştirmek benzersiz anahtar seçenek doğru uygun olan yerlerde.

    Birleştirme işleminde, birleştirilen sütun üst benzersiz ise kullanılabilir özel performans iyileştirmeleri vardır.Benzersiz bir sütun üzerinde temel birleştirmek koşulu, küme birleştirmek benzersiz anahtar seçenek için birleştirmek filtresi.Bu seçeneği belirleme hakkında daha fazla bilgi için bkz: bir önceki bölümde listelenen nasıl yapılır konuları.

  • birleştirmek filtreleri başvurulan sütunları dizine emin olun.

    Filtrede başvurulan sütunları dizine, çoğaltma filtreleri daha verimli bir şekilde işleyebilir.

  • birleştirmek filtreleri taklit satır filtreleri oluşturun.

    Alt sorgu gibi bir where yan tümce tümce tümce kullanarak birleştirmek filtreleri taklit satır filtreleri oluşturmak mümkündür:

    WHERE Customer.SalesPersonID IN (SELECT EmployeeID FROM Employee WHERE LoginID = SUSER_SNAME()) 
    

    Bu tür mantık ifade olduğunu önemle önerilir bir birleşim filtresi bir alt sorgu yerine.Bir subsquery kullanmak için bir satır filtre uygulamanız gerekiyorsa, emin alt sorgu değişmez arama verilerini yalnızca başvuruyor.