做update的时候,如果一个表有几千万数据,怎么才能让update的读次数少一些?
------解决方案--------------------
不过你这个才update1行,问题不大,你这个可能是因为索引碎片比较大的原因
------解决方案--------------------
降低隔离级别。
------解决方案--------------------
应该 是表 锁定的设置原因,数据量大 最好修改为 页 锁定 或 行锁定 否则 一旦 有 update 则 把整个表 都锁定保护,所以效能非常底,若还有 多进程 update 会变得更慢。
最好修改为 页 锁定 或 行锁定
怎么修改为 页 锁定 或 行锁定 呢?
如:
update table set a='xxx' where b='yyyy'
可以修改為:
update table with(rowlock) set a='xxx' where b='yyyy' --行鎖定 ,若對應的條件數據很少
update table with(pagelock) set a='xxx' where b='yyyy' --頁鎖定, 若對應的條件數據比較多
update table with(tablelock) set a='xxx' where b='yyyy' --表鎖定, 若對應的條件數據很多
或修改表的鎖定級別,
可以試試看。