高效的SQL查询,用于从View中获取记录

时间:2017-12-21 13:00:10

标签: sql-server sql-server-2012 query-performance

SQL Server 2012

我有一个DataSource,它是一个包含更多记录的视图(比如说50000条记录以及更多)。我有一个存储过程,将从该视图中进行选择。

查看(vw_Info)有列

Machinename, m_Start, m_end, m_status

我将传递用户定义的表格类型,其中包含以下2列作为输入

Machinename  LastTimeStamp

样品

create table #tmp (MachineName nvarchar(50), LastTimeStamp datetime)

insert into #tmp (MachineName, LastTimeStamp) 
values ('A01', '2017-12-21 06:29:13.027'), ('A02', '2017-12-21 06:29:13.027'),
       ('A03', '2017-12-21 06:29:13.027')

我需要从视图中选择与MachineName和M_Start>匹配的所有记录。 lasttimestamp

我的查询

select 
    a.MachineName, fc.m_start, fc.m_end 
from 
    #tmp A
inner join 
    (select * from vw_Info) fc on a.MachineName = fc.machineName 
                               and fc.m_start > a.LastTimeStamp 

这是一个有效的SQL查询吗?我将使用服务来调用此存储过程查询,每1分钟获取一次记录。

请建议

0 个答案:

没有答案