加入和处理数据库中的许多记录的最佳算法是什么?

时间:2013-04-16 04:58:11

标签: sql-server database architecture

  • 我有db1 with table1(200k-400k,将来700K-800K,但不会很快)和db2 with table2(1M - 2M,每年增加500K-700K)。
  • 我需要处理db1.table1中的所有记录,并且我需要在db2.table2中执行子查询。
  • 记录处理应该在应用程序服务器上的多个线程中同时进行。

我想到两个策略:

  1. 连接表(或使用子查询选择),保存到临时表并从应用程序服务器进行迭代。
  2. 从应用程序服务器中迭代db1.table1并为每一行(或批处理)执行子查询。
  3. 最好的方法是什么?为什么?

1 个答案:

答案 0 :(得分:2)

为了提高性能,您应该创建连接这两个表的单个查询。

如果您的表位于不同的服务器上,create database link位于它们之间,或者更好的是,重构您的设置,使您的表属于同一个数据库。

在任何情况下,请务必创建适当的索引并通过EXPLAIN PLAN运行查询以查找可能的瓶颈并避免顺序扫描。