SQL Server中sp

  • 时间:
  • 浏览:0
  • 来源:uu快3下载网站_uu快3开户二维码

Avg. Bytes Free per Page

DELETE dbo.space_test WHERE id %2=0

大家知道sp_spaceused的精确单位是页。它是根据sys.allocation_units 和sys.partitions 这两张管理视图来计算存储空间的。有已经 ,这两张表将会只有及时反映出数据的准确信息。可不都还后能 通过updateusage这一参数,要求SQL Server为这一指令更新管理视图里的统计信息。因此 这一案例中,sp_spaceused不准确的因为从都是将会这两张表如此及时反映出数据的准确信息,某些实验中按照特殊规律,在每一页都删除十根记录,保留十根记录,因为每一页上释放了接近一半的空间,因此 页的填充程度接近150%,从而经常跳出页面碎片化非常严重的情况报告,而sp_spaceused的精确单位是页,从而因为这一特殊的情况报告经常跳出。

Avg. Page Density (full)

4077.8

删除前

愿意发现每页的平均可用字节数(Avg. Bytes Free per Page) 和平均页密度(满)(Avg. Page Density (full))经常跳出了变化。如下对比所示:

删除后

大家删除了一半记录,照理说,数据使用的空间总量(data)应该变化了。如此我使用DBCC SHOWCONTIG('space_test')来看看,如下截图所示,

99.23%

实在这一倒如此必要大惊小怪,这一空间实在如此释放,因此 下次依然可不都还后能 再次利用,就好比一列火车,每节车厢只载了一半乘客,底下的路程中,可不都还后能 继续往底下加入新的乘客。如下所示大家插入11500条记录,愿意发现页的平均密度变化了,已经 空闲的空间被重新利用了。

如下截图所示,大家删除了11500条记录,还剩下11500条记录,因此 该表的分配的空间总量(reserved)与数据使用的空间总量(data)如此变化,依然是15008KB和15000KB

62

某些已经 ,大家经常使用sp_spaceused来查看表的空间使用情况报告,上个月群里有个女前前男友说他使用DELETE删除了数据后,使用sp_spaceused查看,发现该表的分配的空间总量(reserved)与数据使用的空间总量(data)如此变化,当时和他讨论了并分析了一下因为,随手记录了一下这一案例,这一周末刚好有点痛 时间,正好分析采集一下这一案例、分享在这篇文章。如下所示,大家先构造数据,大家的测试案例比较极端,已经 保证每个页面(page)刚好存储两条记录。如下所示:

接下来大家删除了id为偶数的记录。

49.62%

EXEC sp_spaceused 'dbo.space_test'