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

Function 视图和表值函数之间的T-SQL内部连接优化,function,tsql,join,view,Function,Tsql,Join,View,我有一个视图和表值函数,并在它们之间进行内部连接。每一方都有几百万条记录需要加入 我读过很多关于如何优化连接的书(最常见的答案是使用索引,但我的视图不能被索引到视图),但仍然没有找到一种方法来正确地完成视图和函数之间的连接并进行优化 编辑: 为了说明问题确实是内部联接-我为每个查询都设置了“SELECT COUNT(*)): 视图-0秒 功能-18秒 函数内部连接视图-42秒 让我们从另一个角度看一看——在如此巨大的数据量上,您真的需要这种连接吗? 我有类似的问题,这是我的情况和解决方案: 在我

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

我读过很多关于如何优化连接的书(最常见的答案是使用索引,但我的视图不能被索引到视图),但仍然没有找到一种方法来正确地完成视图和函数之间的连接并进行优化

编辑:

为了说明问题确实是内部联接-我为每个查询都设置了“SELECT COUNT(*)):

  • 视图-0秒
  • 功能-18秒
  • 函数内部连接视图-42秒

  • 让我们从另一个角度看一看——在如此巨大的数据量上,您真的需要这种连接吗? 我有类似的问题,这是我的情况和解决方案:

  • 在我的案例中,数百万条记录都不需要——只需要一个特定的过滤数据
  • 我已经创建了从那个巨大的表到其他表的insert\update\delete触发器——它们旨在跟踪我需要的数据
  • 现在,我可以对特定(比如过滤)数据进行快速连接
  • 这种方法有其自身的利弊;主要不便之处-您应该重建\检查您的数据库结构:这种方式可能不适用于所有情况


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

    让我们从另一个角度来看一下-您真的需要在如此巨大的数据量上进行此连接吗? 我有类似的问题,这是我的情况和解决方案:

  • 在我的案例中,数百万条记录都不需要——只需要一个特定的过滤数据
  • 我已经创建了从那个巨大的表到其他表的insert\update\delete触发器——它们旨在跟踪我需要的数据
  • 现在,我可以对特定(比如过滤)数据进行快速连接
  • 这种方法有其自身的利弊;主要不便之处-您应该重建\检查您的数据库结构:这种方式可能不适用于所有情况


    无论如何-这是我针对特定问题的解决方案,它仍然运行良好,我的性能至少提高了10倍

    @一般来说,这是真的,但在这种特殊情况下,我使用的是已经创建的数据库,具有逻辑、功能等,因此我没有权力或许可重新设计所有系统…@一般来说,这是真的,但在这种特殊情况下,我使用的是已经创建的数据库,具有逻辑、功能等,因此我没有权力或权限重新设计所有系统。。。