频繁update数据,in里边每次大概将近1000条数据,如何提高
0
update tablename set Online=0 where Id in (‘’,‘’,‘’)
系统需要非常频繁的执行这样一条语句,大概每秒执行一次,in里边每次大概 将近1000条数据,
测试执行的时间分析,编译比较占用时间,想进一步优化,这个语句,或者有没有可以代替in操作的方式?
SQL Server 分析和编译时间:
CPU 时间 = 63 毫秒,占用时间 = 65 毫秒。
表 'tablename'。扫描计数 0,逻辑读取 2290 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
SQL Server 执行时间:
CPU 时间 = 16 毫秒,占用时间 = 64 毫秒。
系统需要非常频繁的执行这样一条语句,大概每秒执行一次,in里边每次大概 将近1000条数据,
测试执行的时间分析,编译比较占用时间,想进一步优化,这个语句,或者有没有可以代替in操作的方式?
SQL Server 分析和编译时间:
CPU 时间 = 63 毫秒,占用时间 = 65 毫秒。
表 'tablename'。扫描计数 0,逻辑读取 2290 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
SQL Server 执行时间:
CPU 时间 = 16 毫秒,占用时间 = 64 毫秒。
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
4 个回复
GeorgeYao - 路漫漫其修远兮,吾将上下而求索! 2015-10-08 回答
赞同来自: powerful_cat
eg:insert into t1 select t.id from tables t where .......;
merge into t2 t
using t1 s on(t.id = s.id)
when matched then
update set 某个字段 = '';
老头子 - 专注是唯一的捷径 2015-10-09 回答
赞同来自: powerful_cat
ps:索引建不建要看你 update的数据/表的总数据 如果小于15%就可以建立索引,最好小于5%
悟 - 取是能力,舍是境界 2015-10-03 回答
赞同来自:
seng - 从事BI、大数据、数据分析工作 2015-10-09 回答
赞同来自:
update tablename set Online=0 where exists (selectr a.Id from temptable a where a.Id = tablename .id )