我刚开始使用这么多数据(2000万行)而且我不知道在查询持续时间方面我应该期待什么:
update table set field = '1234'
字段上没有索引。这个声明花了25分钟。数据库设置为“简单恢复”。 25分钟似乎太长了吗?表有9列,小数据类型<50 varchar。
答案 0 :(得分:12)
如果您在一次交易中更新了20M行,那么您的时间完全由您的IO子系统驱动:您拥有什么样的驱动器,什么是磁盘文件布局等。如果您在具有4个平衡文件的raid 10中有40个轴一个单独的类似电池的日志然后结果令人担忧地缓慢。如果您使用单个MDF在单个消费者质量5000rpm HDD上与LDF共享主轴进行测试,那么您的时间会非常快。
答案 1 :(得分:2)
您正在以大约1500秒的速度更新20条Mio记录,平均每秒更新7000次。听起来不错。
答案 2 :(得分:1)
所有这些以及可能的许多其他因素都会影响数据修改性能。
否则,请尝试使用TOP
和WHERE
子句对更新进行批处理,该子句仅查找未修改的行。