视图和表值函数之间的T-SQL内连接优化

时间:2012-06-06 12:12:12

标签: function tsql join view

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

我已经阅读了很多关于如何优化连接(最常见的答案是使用索引,但我的视图不能被索引视图)但仍未找到如何在视图和函数之间进行连接的方法正确的方法和优化。

编辑:

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

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

1 个答案:

答案 0 :(得分:0)

让我们从另一个角度来看一下 - 你真的需要这么大量数据的加入吗? 我有类似的问题,这是我的情况和解决方案:

  1. 在我的案例中,所有数百万条记录都没有需要 - 只是一个特定的过滤数据
  2. 我已经从那个巨大的表格中创建了insert \ update \ delete的触发器 - 它们旨在跟踪我需要的数据
  3. 现在,我可以快速加入特定的(假设 - 已过滤)数据
  4. 这种方法有自己的过程和缺点;主要不便之处 - 你应该重建\审查你的数据库结构:这种方式可能不适合所有情况

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