Horizontal filtering replicates only a subset of the rows in a published table. Horizontal filtering makes sense when sites or regions in the replicated topology require access only to certain rows in the database. Horizontal filtering can also be used to send only specific rows from one departmental database to another, or to a corporate data warehouse. The following diagram illustrates horizontal filtering.
Regardless of the motivating factor behind the decision to use horizontal filtering, there are trade-offs that must be considered. Horizontal filters in transactional publications add overhead because the article filter clause is evaluated for each log row marked for replication to determine whether it should be replicated. Horizontal filters in transactional publications should probably be avoided where each site can support the full data load, the overall data set is reasonably small, and the number of insert, update, and delete transactions per day is relatively low.
Horizontal filtering is convenient because it can be readily applied to existing applications where a site-specific attribute is present to filter on in either the table to be published or in one of its related tables. Additionally, only a single copy of any table schema should exist on each database in a distributed system.