如果我有链接表MS Access数据库从两个不同的数据库服务器(比如从SQL Server数据库和一个从Oracle分贝一个表)和I写它连接这两个表,如何将访问一个查询(或Jet引擎,我猜?)处理此查询?它会发出对每个表的SELECT一些第一个拿到我加入的领域,figurre出哪些行匹配,则发行更多的选择用于这些行?

有帮助吗?

解决方案

要理解的关键是这样的:

你是在问一个问题,它发送其请求到两个服务器数据库之前访问/喷气可以优化?如果要加入两个表的整体,射流也将不得不要求这两个表,这将是难看。

如果,在另一方面,可以提供一个限制条件或的加入,访问/射流可更高效双方并请求过滤结果集,而不是完整表。

其他提示

是的,你可以有一些严重的性能问题。我做这种类型的事情好几年了。甲骨文,SQL和DB2 - 唉。有时我不得不在凌晨5:00将其设置一个计时器,所以当我在7:00它做进去。

如果您的数据集是不够显著,它往往是更快地在本地建一个表,然后链接数据。对于远程数据集,也考虑快速导入。

举例来说,假设你是拉昨天所有的客户从Oracle数据库和所有客户的购买从SQL数据库中。比方说,你有一个平均每天100名顾客,但30000列表,并让说你的产品有50万的列表。你可以查询Oracle数据库为您的100个客户的名单,然后把它写在IN声明直通查询的SQL数据库。你会得到你的数据几乎瞬间。

或者,如果你的记录是巨大的,建立两个ID的本地表,本地对它们进行比较,然后就拉了必要的比赛。

这是丑陋的,但你可以从字面上节省自己的时间。

这是我的猜测。它帮助,如果有对的加入,但双方指标,既不服务器在查询完全控制,进一步的查询优化是不可能的。

我有来自两个不同的数据系统连接表没有实践经验。不过,根据要求,等等,等等,你可以更快地发现它与只要求到Access表中的记录和字段运行SELECT查询和做访问最终加入和查询。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top