如何在多个数据源上加入查询并有效地对其进行分页

时间:2014-02-26 09:37:54

标签: c# sql database design-patterns

假设我有一些实体说有两个数据源...用户。 LDAP和自定义Sql数据库。 现在,在我的应用程序中,我必须根据某些“Where”条件显示从两个数据库中过滤的用户页面。

例如。 PageSize = 10; rowsDataSource1 = 100; rowsDataSource2 = 100; 显示第10页,共20页,其中User.birthdate> 2001

假设我不想在其间使用缓存层,那么实现这一目标的有效策略是什么?

编辑:当然我们需要一个层,但不一定是一个缓存层。

2 个答案:

答案 0 :(得分:0)

如果您不希望在两个数据源之间建立统一层,则可以相互访问两个数据源,也可以使用另一个数据源的信息来丰富一个数据源。对此,我个人宁愿构建一个外观,它将组合信息作为应用程序的单一联系点返回。

答案 1 :(得分:0)

据我所知,我可以提出三种方法。

1)创建不同数据源中所有其他表的同义词,并提供对普通模式的只读访问权限,并在应用程序中创建使用该视图的视图。这有点慢。

2)其他是不同数据源的物化视图,并将其用作普通查询。

3)编写每日或每小时批处理作业,导入应用程序架构中的所有必需数据并使用它。