我有两个数据库,并且都对具有相同索引的同一个表有相同的视图。
该视图从位置表中选择给定 IMEI 的顶部位置。
CREATE VIEW [dbo].[LatestDeviceLocation]
AS
SELECT DISTINCT t.Imei, t.Accuracy, t.UserId, t.Lat, t.Lng, t.Timestamp
FROM (SELECT Imei, MAX(Timestamp) AS latest
FROM dbo.DeviceLocation
GROUP BY Imei) AS m INNER JOIN
dbo.DeviceLocation AS t ON t.Imei = m.Imei AND t.Timestamp = m.latest
GO
Run Code Online (Sandbox Code Playgroud)
我正在使用一个非常简单的 select 查询视图,其中包含一个非常简单的 where 子句。
SELECT TOP 1000 [Imei]
,[Accuracy]
,[UserId]
,[Lat]
,[Lng]
,[Timestamp]
FROM [dbo].[LatestDeviceLocation]
Where [Timestamp] > '2015-02-19T00:00:00.000Z' AND [Timestamp] < '2015-02-26T23:59:59.999Z'
Run Code Online (Sandbox Code Playgroud)
在我的实时服务器上,当我查询我的视图时,我会在 < 1 秒内取回数据。当我添加一个Where [Timestamp] > '2015-02-19T00:00:00.000Z' AND [Timestamp] < '2015-02-26T23:59:59.999Z'跳转到大约 …