大数据怎么更新快一些?

sdlyczl 2014-09-02 07:49:06
select COUNT(1) from tablename;半天都出不来结果
现在更是要更新下数据
update tablename set DOCKEYVAL=REPLACE(DOCKEYVAL, '001,', '141,');
肯定更慢了是吧,这种情况下,怎么能加快一下速度呢?
...全文
313 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
starseeker7 2014-09-03
  • 打赏
  • 举报
回复
方案3:创建一个新表,然后把数据导入过来,用switch to会很省时间例如下面脚本 然后在这张表上进行各种操作就不影响其他用户了,update完毕以后,用 tablediff 方式对比是否有差异,并处理,再通过sp_rename的方式切换回去,最后用 tablediff 确认没有其他修改,工作就完成了。 老是提示发帖错误- -我就分多次发帖了
starseeker7 2014-09-03
  • 打赏
  • 举报
回复
方案2:使用update top(n) +wait for delay 的方式批量替换n不要大于1000,每更新一批次记录对应PK值,到临时表,下批次就可以排除掉。优点不会影响其他用户的各种操作,缺点速度慢。
starseeker7 2014-09-03
  • 打赏
  • 举报
回复
问题1: 在你的主键上添加一个非聚集索引 问题2 方案1:先干掉与这个字段相关的索引,然后做update动作后再把索引重建上去,缺点这样其他用户要同时使用这个表就不行了
發糞塗牆 2014-09-03
  • 打赏
  • 举报
回复
update是一个整体事务,没有提交或者回滚前都不会直接影响数据库的数据。 如果不需要条件update,可以考虑下面步骤:1. 备份这个表。2.select xxxx,REPLACE(DOCKEYVAL, '001,', '141,') as DOCKEYVAL ,XXXX into #t FROM 你的表,其中xxx就是不需要更新的列,保持表结构的列名一致。3. truncate table 你的表 4. insert into 你的表(列一一对应) select * from #t
sdlyczl 2014-09-03
  • 打赏
  • 举报
回复
每次插入1万条数据到新表,要6分钟
sdlyczl 2014-09-03
  • 打赏
  • 举报
回复
select * into BAS_AUDITRCRD_OLD151 from (select * from (select ROW_NUMBER() over (order by asnm) num,* from BAS_AUDITRCRD_OLD) t where num between 1500001 and 1510000) p; 我现在用这种方式来分批把数据导入新表,然后更新表,然后再插回去
KeepSayingNo 2014-09-03
  • 打赏
  • 举报
回复
感觉这种只能分批更新,你如果你有个字段能标识记录唯一并且是递增的,就可以采用我说的方式更新
sdlyczl 2014-09-02
  • 打赏
  • 举报
回复
luckyrandom : 1.Sys.Partitions这个是不是只能查看表有多少条数据等,没有更新数据的功能是吧? 2.提高IO能力,具体怎么做呢,能不能指点一二?
Q315054403 2014-09-02
  • 打赏
  • 举报
回复
1、为什么不查系统提供的视力。Sys.Partitions 2、既然数据量大,那只有提高IO(分享日志与数据到独立磁盘上)能力
sdlyczl 2014-09-02
  • 打赏
  • 举报
回复
有是索引的,5个字段组成了一个主键 分批更新也试过的,也还是慢得要死,更新了几个小时后,才几千条数据被更新到
专注or全面 2014-09-02
  • 打赏
  • 举报
回复
select COUNT(1) from tablename是聚集表或者是有索引的话,我估计没那么慢 但是你一下子更新600W条数据的话,普通的服务器的话,真的有点扛不住,我也不知道如何“优化”了 建议如果真的要更新的话,将数据库设置为简单恢复模式,还有就是能不能想办法一部分一部分的分批去更新?
sdlyczl 2014-09-02
  • 打赏
  • 举报
回复
我看了一下,实际上一条数据都没有更新到,sql server studio看起来还在跑跑跑(“正在执行查询”)
sdlyczl 2014-09-02
  • 打赏
  • 举报
回复
600多万 不需要条件的
专注or全面 2014-09-02
  • 打赏
  • 举报
回复
表有多少数据? update语句不需要任何条件吗?

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧