MSSQL有时使用update语句很慢时怎么办

2025-05-03 05:30:10

1、我们登陆MSSQL,这里我用的是SQL Server 2008 相信现在很多朋友都是用这个版本。打开管理器

MSSQL有时使用update语句很慢时怎么办

2、我们这里建一个测试表。当然您如果是遇到的问题就不需要使用测试表了,。

MSSQL有时使用update语句很慢时怎么办

3、我们插入数据。

MSSQL有时使用update语句很慢时怎么办

4、这时候我们在一台正常的进行处理的数据库中进行运行一个更新语句发现执行时间很短,一下就更新了。 UPDATE tmp_20150415 SET 导入结果 = ISNULL(导入结果, '') +'用户账号【'+ t1.账号 + '】 在表内已重复' FROM ( SELECT tmp_20150415.账号 FROM tmp_20150415 GROUP BY tmp_20150415.账号 HAVING COUNT(tmp_20150415.账号) > 1 ) t1

MSSQL有时使用update语句很慢时怎么办

5、我们再在另一台不正常的服务器上执行时,发现其执行效率很慢。几秒过去了,还没执行完成。

MSSQL有时使用update语句很慢时怎么办

6、那造成这个问题的原因有很多,我们要一一排除。首先看下各列的数据类型。检查一下服务器数据多.不多。我们这里因为都是插入的测试数据。所以这些都可排除。那这个时候最大的可能就是有事务没执行了这时候就要 找到阻塞的进程,然后kill掉,然后再执行更新,就会发现正常了。我们用下边的句子可以检查。 SELECT DB_NAME(sp.dbid) dbName, (SELECT TEXT FROM sys.dm_exec_sql_text(sql_handle)) TEXT,lastwaittype, spid AS [sessionID], kpid AS [WinodwsId],sp.kpid, sp.blocked, sp.waittype, sp.waittime, sp.waitresource, sp.[status], sp.hostname, sp.program_name, sp.cmd, sp.loginame, sp.uid, sp.cpu, sp.physical_io, sp.memusage, sp.login_time, sp.last_batch, sp.ecid, sp.open_tran, sp.hostprocess, sp.nt_domain, sp.nt_username, sp.net_address, sp.net_library, sp.[context_info], sp.stmt_start, sp.stmt_end, sp.request_id FROM sys.sysprocesses sp WHERE spid > 50 AND (sp.blocked>0 OR EXISTS( SELECT * FROM sys.sysprocesses lssp WHERE lssp.blocked=sp.spid ));

MSSQL有时使用update语句很慢时怎么办
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢