当前位置: 代码迷 >> Sql Server >> 做update的时候,如果一个表有几千万数据,如何才能让update的读次数少一些
  详细解决方案

做update的时候,如果一个表有几千万数据,如何才能让update的读次数少一些

热度:88   发布时间:2016-04-24 10:45:29.0
做update的时候,如果一个表有几千万数据,怎么才能让update的读次数少一些?
做update的时候,如果一个表有几千万数据,怎么才能让update的读次数少一些?
------解决方案--------------------
不过你这个才update1行,问题不大,你这个可能是因为索引碎片比较大的原因
------解决方案--------------------
引用:
Quote: 引用:

应该 是表 锁定的设置原因,数据量大 最好修改为  页 锁定 或 行锁定  否则 一旦 有 update   则 把整个表 都锁定保护,所以效能非常底,若还有 多进程 update  会变得更慢。

最好修改为  页 锁定 或 行锁定

怎么修改为    页 锁定 或 行锁定 呢?


降低隔离级别。
------解决方案--------------------
引用:
Quote: 引用:

应该 是表 锁定的设置原因,数据量大 最好修改为  页 锁定 或 行锁定  否则 一旦 有 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'  --表鎖定,  若對應的條件數據很多

或修改表的鎖定級別,

可以試試看。



  相关解决方案