日期:2014-05-17  浏览次数:20967 次

SQL执行exec sp_spaceused看到的保留空间和未分配空间是什么?
执行exec sp_spaceused后看到database_size:        这个是数据库的占用空间unallocated space  未分配的空间reserved:          这个是为数据库保留的总空间(这个保留空间指的是什么?)data:               这个是数据库各数据表所有记录的空间index_size:        这个是数据库各数据表所有索引的空间unused:3             未用的空间量

------解决方案--------------------
每次分配不会只分配刚好的大小,以区为单元分配,所以如果你刚好超过一个区然后还要一点点空间,就会再次分配一个新区(8个页),可以理解为这个新区的7.xx个部分都是保留,不知道我的理解是否正确
------解决方案--------------------
引用:
就和结构体分配内存一样,保留就是你指的8个页,unused就是多分配出的一点没用到的空间,是这样子理解吗?那上面的unallocated space  未分配的空间是指什么呢?


因为数据库是存储在文件中的,所以unallocated space  未分配的空间,就是文件中空闲的空间,比如一个文件100m,那么可能还有20m的空闲空间。

unused是指已经分配出去的空间,比如新建了一个表,插入了一堆数据,那么sql server肯定要一部分空间分配给某个表,比如新建了xx表,插入了100条数据,那么系统就需要给他分配空间,比如分配了10m,但是没有全部用完,所以unused就是分配了,还没有用的
------解决方案--------------------
我的理解也很肤浅,就是“站着茅厕不拉屎”,但是这种“站着茅厕”是有道理的,免得想拉屎的时候,再去找茅厕,一来费时,而来影响效率,我自己感觉是起到一个缓冲作用,
其实跟计算机内存一样,个人PC正常办公,用满4G内存的时候很少,但是还是配置了4G的内存