OpenQuery代替连接服务器提升SQL性能

创建连接服务器:
/****** Object:  LinkedServer [LinkedServer_Name]    Script Date: 2021/3/19 16:46:49 ******/
EXEC master.dbo.sp_addlinkedserver @server = N'LinkedServer_Name', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'10.**.1*2.75'
 /* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'LinkedServer_Name',@useself=N'False',@locallogin=NULL,@rmtuser=N'sa',@rmtpassword='########'

代码中的几个重要参数:

  • @server = N’LinkedServer_Name’
    LinkedServer_Name连接服务器名称
  • @rmtsrvname=N’LinkedServer_Name’
    LinkedServer_Name连接服务器名称
  • @provider=N’SQLNCLI’
    SQLNCLI驱动
  • @datasrc=N’10..1*2.75’
    10.
    .1*2.75是要链接的服务器的IP
  • @rmtuser=N’sa’
    sa是目标服务器中数据库的登录名
  • @rmtpassword=’########’
    ==########==是目标服务器中数据库的登录密码

数据查询

连接服务器写法:
SELECT TOP 100000 INVOICEACCOUNT FROM [10.**.1*2.77].Dynamics.dbo.CUSTOMER 
OpenQuery写法:
SELECT * FROM OPENQUERY([10.**.1*2.77],'
SELECT TOP 100000 INVOICEACCOUNT FROM Dynamics.dbo.CUSTOMER 
') 

越是复杂的查询逻辑,OpenQuery的优势越明显,我在项目中同步数据时逻辑比较复杂,使用连接服务器时每次需要运行40分钟左右,同等数据量改为OpenQuery时速度提升了30分钟,只用了不到十分钟,觉得还是比较好用的,先记录下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值