Filtreler katılın

Birleşim filtre, filtre uygulanacak tablo nasıl ilişkili tabloda yayını süzülür dayalı sağlar. Genellikle üst tablo parametreli filtre kullanarak filtre; daha sonra bir veya birden çok birleşim filtreleri çok tablolar arasında birleştirme tanımladığınız aynı şekilde tanımlanır. Birleşim filtre yan tümcesi eşleşirse ilgili tablolardaki verileri yalnızca çoğaltılan böylece birleştirme filtreleri parametreli filtre genişletir.

Birleşim filtreleri genellikle birincil anahtara yabancı anahtar ilişkileri hangi uygulanmadan tablolar için tanımlanan uygulayın, ancak kesinlikle birincil anahtara yabancı anahtar ilişkileri için sınırlı değildir. Birleşim filtre dayalı iki tablolardaki ilgili verileri karşılaştıran herhangi bir mantık olabilir.

Aşağıdaki tablolarda dikkate Adventure Worksbirincil anahtarı yabancı anahtar ilişkileri ile ilgili örnek veritabanı:

  • HumanResources.Employee

  • Sales.SalesOrderHeader

  • Sales.SalesOrderDetail

Mobil satış gücü destekleyen bir uygulamada bu tabloları kullanılabilir, ama böylece her filtre gerekir satış kişi HumanResources.Employee tablo yalnızca kendi müşterilerin ilgili verileri alır Siparişler.

İlk adım olan bu örnekte üst tablo parametreli filtre tanımlamaktır HumanResources.Employee tablosu. Bu tablo sütunu içeren LoginID, formdaki her çalışanın giriş içeren domain\login. Onları ilgili verileri her çalışanın aldığı bu filtrelemek için bir parametreli filtre yan tümcesinde belirtin:

LoginID = SUSER_SNAME()

LoginID = SUSER_SNAME()

Bu filtre, her çalışanın abonelik yalnızca veri içeren sağlar HumanResources.Employee (ki bu durumda tek bir satır) o çalışanla ilgili tablo. Daha fazla bilgi için, bkz. Parametreli satır süzgeçleri.

Her iki tablo arasındaki birleşim belirtmek için kullanılan benzer bir sözdizimi kullanarak ilişkili tabloların bu filtre genişletmek için sonraki adım olacaktır. İlk birleşim filtre yan tümcesi şöyledir:

Employee.EmployeeID = SalesOrderHeader.SalesPersonID

Employee.EmployeeID = SalesOrderHeader.SalesPersonID

Bu abonelik sadece satış her kişinin ilgili sipariş verilerini içeren sağlar. İkinci birleştirme filtre yan tümcesi şöyledir:

SalesOrderHeader.SalesOrderID = SalesOrderDetail.SalesOrderID

SalesOrderHeader.SalesOrderID = SalesOrderDetail.SalesOrderID

Bu abonelik yalnızca verileri her satış temsilcisi için ilgili ayrıntı verilerini içeren sağlar. Bu örnek, her noktada katılmış tek bir tablo gösterir; birden fazla tablo her noktada katılmak mümkündür.

Yeni Yayın Sihirbazı'nı bir defada birleşim Filtreler eklenebilir ve Yayın özelliklerini iletişim kutusunda veya program aracılığıyla eklenebilir. Onlar da otomatik olarak yeni yayın Sihirbazı oluşturulabilir: tablo için bir satır filtre belirtin ve tüm ilişkili tabloları birleştirme filtreleri uygulanır. Daha fazla bilgi için bkz: Tanımla ve birleştirme makaleleri arasında birleştirme filtre Değiştir, Birleştirme makaleleri (SQL Server Management Studio'yu) arasındaki birleşim filtre kümesini otomatik olarak üret, ve Bir makale tanımlamak.

Birleşim filtre performansı en iyi duruma getirme

Birleştirme filtre performansı iyileştirilmiş bu yönergeleri izleyerek:

  • Tabloları birleştirme filtre hiyerarşisindeki sayısını sınırlayın.

    Birleşim filtreleri sınırsız sayıda tablolar içerebilir, ancak çok sayıda tablo filtreleri birleştirme işlemi sırasında performansı önemli ölçüde etkileyebilir. Birleşim filtreleri beş veya daha fazla tablo oluşturduğunu, başka çözümler düşünün: değil, küçük değil değişebilir, filtre tablolar yapmak ya da öncelikle arama tabloları bulunmaktadır. Yalnızca abonelik arasında bölümlenmesi gerekir tablolar arasındaki birleşim filtreleri kullanın.

  • Set birleşim benzersiz anahtar için seçenek gerçek uygun yerde.

    Birleştirme işlemi, özel performans iyileştirmeleri üst birleştirilmiş sütun benzersiz ise mevcut vardır. Birleştirme koşulu benzersiz bir sütunu temel alan, ayarlanmış birleşim benzersiz anahtar için birleşim filtre seçeneği. Bu seçeneği ayarlama hakkında daha fazla bilgi için bkz: nasıl yapılır konuları önceki bölümde listelenen.

  • Birleşim filtreleri başvurulan sütunları dizine emin olun.

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

  • Birleşim filtreleri taklit satır filtreleri oluşturma.

    Birleşim filtreleri gibi bir where yan tümcesi alt sorgu kullanarak taklit satır filtreleri oluşturmak mümkündür:

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

    Böyle mantık yerine alt sorgu birleştirme filtre ifade edilebilir önerilir. Eğer bir subsquery kullanmak için sorgu yalnızca değişmeyen arama veri başvuran olun bir satır filtre uygulamanız gerekir.

Ayrıca bkz.

Kavramlar

Birleştirme çoğaltması yayımlanmış veri süzme

Parametreli satır süzgeçleri