如何快速更新某列

我看你有戏 2011-01-11 10:35:49
update [tb_a] set col1=0,col2=0

这个tb_a的表很大的情况下,而且在更新的时候可能会有很多select ,运行脏读

问如果让update执行速度最快
...全文
123 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wing7742 2011-01-11
  • 打赏
  • 举报
回复
围观乌龟 备案留档
我看你有戏 2011-01-11
  • 打赏
  • 举报
回复
(爱新觉罗.毓华) 的意思是这样吗?

update [tb_a] WITH (ROWLOCK) set col1=0,col2=0

但是我觉得锁的话,更加会更慢吧
dawugui 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 henry3695 的回复:]
回答没有到点子上面
[/Quote]你只有尝试一楼的锁,才能保证你update的速度.
飘零一叶 2011-01-11
  • 打赏
  • 举报
回复
批量处理
WHILE 1=1
BEGIN
update TOP(5000) [tb_a] set col1=0,col2=0
IF @@ROWCOUNT<5000 break;
END
我看你有戏 2011-01-11
  • 打赏
  • 举报
回复
update [tb_a] set col1=0,col2=0

这个tb_a的表很大的情况下,而且在更新的时候可能会有很多select ,允许脏读

问如果让update执行速度最快
我看你有戏 2011-01-11
  • 打赏
  • 举报
回复
回答没有到点子上面
dawugui 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 henry3695 的回复:]
update [tb_a] set col1=0,col2=0

这个tb_a的表很大的情况下,而且在更新的时候可能会有很多select ,运行脏读

问如果让update执行速度最快
[/Quote]
1 如何锁一个表的某一行

A 连接中执行

SET TRANSACTION ISOLATION LEVEL REPEATABLE READ

begin tran

select * from tablename with (rowlock) where id=3

waitfor delay '00:00:05'

commit tran

B连接中如果执行

update tablename set colname='10' where id=3 --则要等待5秒

update tablename set colname='10' where id<>3 --可立即执行

2 锁定数据库的一个表

SELECT * FROM table WITH (HOLDLOCK)


注意: 锁定数据库的一个表的区别

SELECT * FROM table WITH (HOLDLOCK)
其他事务可以读取表,但不能更新删除

SELECT * FROM table WITH (TABLOCKX)
其他事务不能读取表,更新和删除
唐诗三百首 2011-01-11
  • 打赏
  • 举报
回复
补充,聚集索引上字段的更新,代价是很大的.
详见索引相关章节.
唐诗三百首 2011-01-11
  • 打赏
  • 举报
回复
建议如下供LZ参考.
1.减少表索引,索引在提高查询速度的同时,降低更新的速度.
2.col1或col2字段如果是表的主键,建议取消.因聚集索引在.
3.查看该表的索引碎片情况,须定期整理或重建.
简介: 1、多级目录,每个目录下面可以有更深一级目录,并列出属于该目录的网站 管理:选择分类管理,添加需要的分类,或者选择下一级目录,同时可以选择删除(删)修改(修)制作(制)某一个目录 2、静态页面,所有目录页面均使用程序生成了html页,不用读取数据库,大大节省了服务器资源 管理:选择制作下属页面,系统会列出搜索的类别,请选择需要生成的类别 3、目录模版,在数据库中存放了大量的页面模版,每一个目录都可以订制自己的网面 管理:选择模板管理,系统会列出目前已经存在的模板,你可以修改,添加,删除,添加时请按照示例进行制作,建议先将数据库备份再修改 4、即时登陆网站,站长可以随时登陆自己的网站,但是登陆以后只能在他选定的目录所显示的页面中的“更多”网站页面中显示出来,只有在管理员审查并生成页面以后才能直接在目录页面看到 5、模糊查找, 6、布尔查找,支持and(*) or(|) not(-)等布尔表达式 例如:烟台*一百-新闻 或者:烟台 and 一百 not 新闻 如果只需要and连接,可以只输入 烟台 一百,这与 烟台*一百、烟台 and 一百 效果等同 搜索结果将会把相关关键词以特殊的颜色显示出来 7、常用关键词页面自动生成,用户输入查找的关键词都保存在数据库中,如果有相同的关键词则这些关键词数量累加,管理员管理的时候可以生成排名在头几位的关键词页面,也就是提前替用户把这些关键词提前搜索出来了,并且生成了静态的html页面,用户在搜索这些关键词时,就可以直接显示这些已经生成的页面,避免了大量的查询数据库,节省了服务器资源 管理:选择关键词管理,系统会列出数据库中已经存在的可以生成的关键词,以及网友在使用这个搜索引擎时用的关键字(只选取排名头100个),管理员可以随意生成需要的关键词页面 8、网站顺序,在某个目录下的网站数目很多的时候,排在上面的网站被访问的几率比排在下面的网站几率要大得多,因此我又增加排名功能,管理员可以设定某个网站在该目录下的排名 9、单目录搜索,当用户在某个目录浏览的时候,可以选择在该目录下搜索和搜索全部目录,选择在该目录下搜索可以只搜索属于该目录以及该目录的子目录下的网站 10、静态页面在线生成,在管理界面可以在线生成所有目录下的页面以及关键词页面 11、二次搜索功能,当用户在搜索某个关键词以后,系统列出了〉20个结果以后,就会出现二次搜索界面,用户可以选择在这些结果中再次搜索,比如要求结果必须不包含某个关键词或者必须再包含某个关键词 12、模版的在线修改,不同的页面模版有不同的规则 14、所有目录在线动态修改,自动更新以前的页面 15、动态生成网站首页(需要模版支持) 16、分类参照:指一个分类类目名分在一个上级类目下,而在另一个类目下作参照。以@作后缀的类目名。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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