如何更快地使用 openquery 进行查询?

里卡多·费雷拉

此查询需要花费大量时间运行。有谁知道让他们更快?

    DECLARE @actual as INT
    DECLARE @expected as INT
    DECLARE @ID as INT
    DECLARE @TSQL varchar(100)
    DECLARE @t table (c int)
    DECLARE @Id_aux varchar(100)

    SET @ID = (select max(id) from [PAY_STG].pay.paybuddy_purchase_ex where fk_country = 5 )
    SET @Id_aux= CONVERT(NVARCHAR(100), @ID)

    SET  @TSQL = 'SELECT * FROM OPENQUERY([BE_PAY_MA],''select count(*) from paybuddy_purchase_ex where id <=' + @Id_aux + ''')'
    INSERT INTO @t EXEC (@TSQL)
    SET @expected = (select c from @t)

    SET @actual = (SELECT count(*) from [PAY_STG].pay.paybuddy_purchase_ex where fk_country = 5 and id<=@ID)

    select @expected
    select @actual

谢谢

伊扎克·哈宾斯基

通过链接服务器执行查询时最好使用不同的方法。

EXECUTE ... AT [Linked_Server];

好处:

  • 这样查询将在远程服务器上执行。保证。因此,它将更加高效。
  • 非常容易传递参数。没有字符串连接。

有用的链接:SQL Server:在 LinkedServer 执行

看看下面。

SQL

DECLARE @actual as INT;
DECLARE @expected as INT;
DECLARE @ID as INT;
DECLARE @TSQL varchar(100);
DECLARE @t table (c int);
--DECLARE @Id_aux varchar(100);

SET @ID = (select max(id) from [PAY_STG].pay.paybuddy_purchase_ex where fk_country = 5 );
--SET @Id_aux= CONVERT(NVARCHAR(100), @ID);

--SET  @TSQL = 'SELECT * 
--  FROM OPENQUERY([BE_PAY_MA],
--  ''SELECT COUNT(*) FROM paybuddy_purchase_ex WHERE id <=' + @Id_aux + ''')';
--INSERT INTO @t EXEC (@TSQL);

INSERT INTO @t
EXECUTE(N'SELECT COUNT(*) FROM paybuddy_purchase_ex WHERE id <= ?',
 @ID) AT [BE_PAY_MA];


SET @expected = (select c from @t);

SET @actual = (SELECT count(*) from [PAY_STG].pay.paybuddy_purchase_ex where fk_country = 5 and id<=@ID);

select @expected;
select @actual;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 mongoDB 中进行 OpenQuery

使用OLAP中的OPENQUERY进行转换失败

更快地进行 SQLITE 查询

如何在openquery where子句中使用子查询

使用参数更快地进行 T-Sql 查询

使用动态查询在openquery中转义单引号

SQL 查询 - 使用 openquery 无法按预期工作

如何通过密码更快地进行订购?

如何更快地对列表进行索引?

如何使用 Selenium 和多处理更快地进行网页抓取?

MySql更快地使用单独的查询或子查询?

OpenQuery和使用动态SQL

如何在C#中更快地插入查询?

如何优化限制查询以更快地从巨大的表访问数据?

如何在 MySQL 中更快地进行“欧式距离计算”?

如何在fgrep / Ag中更快地进行搜索?

如何通过Java更快地进行Oracle更新/插入操作?

如何生成波形表以更快地进行实时音频合成

将OPENQUERY与Oracle数据库一起使用以查询日期范围

使用分布式查询(OpenQuery)执行插入触发器时出错

运行使用OPENQUERY访问链接服务器的T-SQL查询时的JDBC错误

哪个进程将更快地进行后端工作或sql查询?

是否可以更快地查询?

如何在运行多台服务器的生产环境中更快地进行 ActiveRecord 查询?

更快地进行循环计算

使用参数在openquery中执行存储的过程

使用 OPENQUERY 将 NULL 插入 geography 类型

在不同字段上对MongoDB进行索引以使用sort()更快地进行find()

在 javascript 中使用或不使用 pop 和 shift 更快地进行快速排序