连接到链接服务器时查询速度慢

Jam*_*lor 8 sql sql-server asp.net linked-server openquery

我有这个问题

UPDATE linkeddb...table SET field1 = 'Y' WHERE column1 = '1234'

这需要23秒来选择和更新一行

但是如果我使用openquery(我不想这样做)那么它只需要半秒钟.

我不想使用openquery的原因是我可以安全地为我的查询添加参数,并且可以安全地进行SQL注入.

有谁知道它运行这么慢的任何原因?

Joe*_*lli 9

这是一种思考作为替代方案.在远程服务器上创建存储过程以执行更新,然后从本地实例调用该过程.

/* On remote server */
create procedure UpdateTable
    @field1 char(1),
    @column1 varchar(50)
as
    update table
        set field1 = @field1
        where column1 = @column1
go

/* On local server */
exec linkeddb...UpdateTable @field1 = 'Y', @column1 = '1234'
Run Code Online (Sandbox Code Playgroud)