2

我有一个视图和表值函数,并在它们之间进行内部连接。每一方都有几百万条记录需要连接。

我已经阅读了很多如何优化连接(最常见的答案是使用索引,但我的视图不能被索引视图),但仍然没有找到一种方法应该如何以正确的方式完成视图和函数之间的连接并优化。

编辑:

为了表明问题确实是内部连接 ​​- 我为每个查询制作了“SELECT COUNT(*)”:

  1. 查看 - 0 秒
  2. 功能 - 18 秒
  3. 函数内连接视图 - 42 秒
4

1 回答 1

0

让我们从另一个角度看一下——你真的需要对如此大量的数据进行这种联接吗?我有类似的问题,这是我的情况和解决方案:

  1. 在我的案例中,数百万条记录都不需要 - 只是特定的过滤数据
  2. 我已经为从那个巨大的表到其他表的插入\更新\删除创建了触发器——它们旨在跟踪我需要的数据
  3. 现在我可以对特定的(比如说 - 过滤的)数据进行快速连接

这种方法有他自己的优点和缺点;主要不便 - 您应该重建\检查您的数据库结构:这种方式可能并不适合所有情况

无论如何-这是我对特定问题的解决方案,它仍然可以正常工作,我的性能至少提高了 10 倍

于 2012-06-06T12:29:37.607 回答