Forwarded record:SQL Server中一个隐性的IO性能杀手
此时我们注意到,虽然数据仅仅占到590页,但存在8W+的forwarded record,如果我们对该表进行扫描,则会看到虽然仅仅只有590页,但需要8W+的逻辑IO,大大提升了对IO的开销压力,此外由于forwarded record页与原页往往不物理连续,因此对IOPS也存在挑战。如图4所示。 图4.不该产生的额外IO开销 而上面查询反映到性能计数器中,则呈现为如图5所示的结果。 图5.Forwarded Record计数器增长 如何解决看到Forwarded Record计数器,就说明数据库中存在堆表,在OLTP系统中,所有的表上都应该有聚集索引。因此可以通过在表上增加聚集索引来解决该问题。 通常来讲,只有只写不读的表设置为堆表比较合适,但如果看到存在Forwarded Reocord,则说明堆表上存在读操作,那么找到该堆表,找一个合适的维护窗口时间创建聚集索引则是比较理想的选择。 如果由于其他原因无法创建聚集索引,则可以对堆表进行表重建。 From:cnblogs CareySon (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |