Sql server 查看和查看表格的时间不同

Sql server 查看和查看表格的时间不同,sql-server,tsql,Sql Server,Tsql,谁能告诉我为什么这两者之间有区别: (一) view2->view1->remoute_服务器_表 从视图2中选择*需要8分钟 (二) 视图2->表1->远程服务器\u表 从视图2中选择*需要10秒 两种变体上的一切都是一样的: 视图2有5个连接 remoute_服务器_表是相同的 不同之处在于使用table1或view1: 视图1: CREATE VIEW view1 AS SELECT ... FROM remoute_server_table as o WHERE CAST(o.Пер

谁能告诉我为什么这两者之间有区别:

(一)

view2->view1->remoute_服务器_表

从视图2中选择*需要8分钟

(二)

视图2->表1->远程服务器\u表

从视图2中选择*需要10秒

两种变体上的一切都是一样的:

  • 视图2有5个连接
  • remoute_服务器_表是相同的
不同之处在于使用table1或view1:

视图1:

CREATE VIEW view1
AS
SELECT ...
FROM remoute_server_table as o
WHERE CAST(o.Период as Date) >= DATEADD(d,-1, CAST(getdate() as Date))
表1:

TRUNCATE TABLE table1;
GO


INSERT table1 (...)
SELECT ...
FROME remoute_server_table as loc
WHERE CAST(loc.Период as Date) >= DATEADD(d,-1, CAST(getdate() as Date))
GO
因此,表1~view1由select子句和数据组成


Edit1:执行计划是不同的。对于表1和视图1,没有索引。如何填写表1,在对其进行选择之前是否先填写

当您将解决方案与
view1
一起使用时,它会在执行时从远程服务器检索数据,这很可能导致延迟


如果在执行select语句之前填写
表1
,则可以从本地服务器选择数据,而无需创建到远程服务器的连接。

是否检查了执行计划?是的,我检查了,但无法理解问题出在何处。执行计划各不相同。是的。在从视图2中选择之前,我先填充表1。所以,变量1总是会遇到连接到远程服务的问题?我认为view1将被执行并存储在RAM或temp_表中。。。执行计划显示,Remoutequiry成本为24%。是的。您可以创建一个SQL代理作业,每小时填充一次表,或者创建适合您需求的作业,我通常就是这样做的。但是,如果您不希望表在8分钟内为空,则可以创建一个额外的“暂存区”表,在将数据插入实际表之前将数据插入其中。是。我考虑过这样的计划。在view1中使用该变量的问题是使我的SSAS多维数据集的分区处于ROLAP模式,并从view2中获取数据-因此它将是最新的,以重新设置服务器表。因此,似乎只有一种变体可以做到这一点——使用SQLJOD=(