页面中有多行并且只更新一行,性能问题?

时间:2015-03-21 15:49:59

标签: sql-server file io

我们知道页面是SqlServer中的基本IO单元。

假设页面中存储了多行。因此行必须相对较短。

但是当其中一个正在更新时会发生什么?整个页面会被重写吗?当只需要几个字节进行重写时,重新写入所有8k字节是否合乎逻辑?

1 个答案:

答案 0 :(得分:1)

整个8K页面将被更新,因为这是SQL Server IO的最低级别。请记住,不仅仅是行数据本身被修改,而且页面的页面和行标题结构也可能(加上PFS页面等)。

从性能角度来看,SQL Server物理写入一个字节或整个8K页面无关紧要。在8K页面的仅内存更新之后,异步执行写入。大多数I / O成本都在IOP中。