如何保持OpenQuery在本地更新

时间:2019-01-24 16:28:19

标签: sql-server

因此,我需要从链接服务器读取数据,并且使用OpenQuery大约需要11秒钟。

我创建了一个用于访问数据的视图

GO
IF OBJECT_ID('viewx_CORRICA', 'v') IS NOT NULL
DROP VIEW viewx_CORRICA
GO
CREATE VIEW viewx_CORRICA AS
SELECT GHZORI AS Armazem,
       GHNEMP AS Localizacao,
       LBLBNB AS Etiqueta,
       GHLIB5 AS Artigo,           
       LBQTYD AS Quantidade 
FROM OpenQuery(MACPAC, 'SELECT GA160H.LBLBNB, GA160H.GHLIB5, GA160H.GHZORI, GA160H.GHNEMP, GA160M.LBQTYD
FROM D805DATPOR.GA160H GA160H, D805DATPOR.GA160M GA160M
WHERE GA160M.LBLBNB = GA160H.LBLBNB AND (GA160H.GHZORI=''CORRICA'' AND GA160H.GHCSTA=''DIS'')');

但是什么也没解决。选择视图仍然需要11秒钟。

所以我要做的是在本地创建一个具有相同数据的表,然后从视图上的该表中进行选择

CREATE TABLE xPOE
(
    ID int identity, 
    Armazem nvarchar(10),
    Localizacao nvarchar(20),
    Etiqueta int,
    Artigo nvarchar(20),
    Quantidade decimal
)

INSERT INTO xPOE
SELECT GHZORI AS Armazem,
       GHNEMP AS Localizacao,
       LBLBNB AS Etiqueta,
       GHLIB5 AS Artigo,           
       LBQTYD AS Quantidade 
FROM OpenQuery(MACPAC, 'SELECT GA160H.LBLBNB, GA160H.GHLIB5, GA160H.GHZORI, GA160H.GHNEMP, GA160M.LBQTYD
FROM D805DATPOR.GA160H GA160H, D805DATPOR.GA160M GA160M
WHERE GA160M.LBLBNB = GA160H.LBLBNB AND (GA160H.GHZORI=''CORRICA'' AND GA160H.GHCSTA=''DIS'')');

现在是问题所在。数据需要更新以供用户查看,这意味着仅当用户希望访问Webform应用程序中的列表时才应更新数据。

我如何保持更新值以最小化用户的等待时间?我的意思是,我想继续在同一张表上插入来自打开查询的数据,以便对其进行更新。

0 个答案:

没有答案