SQLSERVER链接服务查询快,更新慢问题(未能创建可接受的游标后续)

本文探讨了在SQL中更新特定表数据时的性能优化策略,包括使用内连接减少查询复杂性、避免全表扫描、利用IDENTITY属性提高效率等技巧。通过分析不同更新语句的执行时间,实现更快速的数据更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 CREATE TABLE #t1
    (
      id INT IDENTITY(1, 1)
             NOT NULL ,
      BH INT
    )
INSERT  INTO #t1
        SELECT  492417420  
SELECT  *
FROM    #t1
                         
              
DROP TABLE  #t1     
                       
 --更新一条数据 ,实际上更新影响0行                     
 --4秒                     
UPDATE  test.[sgoa_data].[dbo].[nsb]
SET     flag = 1  FROM
test.[sgoa_data].[dbo].[nsb] AS a    JOIN (SELECT B.bh FROM    test.[sgoa_data].[dbo].[nsb] AS B ,
        #t1 AS C  
WHERE   B.bh = C.bh) E
 ON   a.bh = E.bh  


--25秒
UPDATE  test.[sgoa_data].[dbo].[nsb]
SET     flag = 1  FROM
test.[sgoa_data].[dbo].[nsb] AS a   ,
        #t1 AS b
WHERE   a.bh = b.bh

 

SELECT A.* FROM       test.[sgoa_data].[dbo].[nsb] AS a    JOIN (SELECT B.* FROM    test.[sgoa_data].[dbo].[nsb] AS B ,
        #t1 AS C
WHERE   B.bh = C.bh) E
        
ON   a.bh = E.bh  

 

 

 

问题处理

--0秒

UPDATE  a
SET     flag = 1
FROM    LINK_39.SGOA_DATA.dbo.NSB AS a
        JOIN ( SELECT  DISTINCT
                        b.bh
               FROM     LINK_39.SGOA_DATA.dbo.NSB AS B ,
                        #t1 AS C
               WHERE    B.bh = C.bh
             ) E ON a.bh = E.bh


                             
                       
 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值