2019年3月17日,散打狼有个数据库.mdf文件占用3.69G,用这个方法改了后变成了11M

收缩数据库目的:

1、收缩已经分配的但是还未使用的页;

2、收缩后,空间自动减少;

分类:

1、自动收缩;

2、手动收缩;



工具/原料


  • 电脑
  • Sqlserver数据库软件



方法/步骤


  1. 1


1、打开Sqlserver数据库软件;

SQL Server收缩数据库&列出所有表的数据条数_库文件



第一种方式:自动收缩数据库;


2、选中数据库,右键属性---常规--查看数据库空间大小和可用大小;

SQL Server收缩数据库&列出所有表的数据条数_数据_02



3、选中数据库,右键属性---选项--设置为自动收缩为True,设置自动收缩数据库;

由于数据库服务器每半小时查看文件的使用情况,如果空余空间大于25%,则数据库将自动进行收缩;

SQL Server收缩数据库&列出所有表的数据条数_数据库_03


  1. 第二种方式:手动收缩数据库;



4、查看数据库的总空间大小、可使用空间大小为1.77M;

5、查看数据库文件的大小;

SQL Server收缩数据库&列出所有表的数据条数_数据库表_04

SQL Server收缩数据库&列出所有表的数据条数_数据_05


  1. 6、修改数据库文件大小为2;


SQL Server收缩数据库&列出所有表的数据条数_数据库_06


  1. 7、查看数据库表中的数据,此时为0条数据;



输入命令:

select COUNT(*) from library.dbo.bookInfo;

SQL Server收缩数据库&列出所有表的数据条数_数据_07


  1. 8、在数据库中插入10000条数据,在数据库中执行语句:



  declare @x int,@y int

  set @x=10000

  set @y=0

  while(@y<@x)

begin 

insert into library.dbo.bookInfo (bookName,bookAuthor,version,content)

values

('test'+CONVERT(varchar(5),@x),'fww','1,0','testtest nr')

set @y=@y+1

end

go


  1. 9、查看数据库表中的数据,此时为10000条数据;



输入命令:

select COUNT(*) from library.dbo.bookInfo;

SQL Server收缩数据库&列出所有表的数据条数_数据_08


  1. 10、刷新后,查看数据库的总空间大小变为3.5M、可使用空间大小变为0.22M;


11、查看数据库文件的大小,变为3M;

SQL Server收缩数据库&列出所有表的数据条数_数据库表_09

SQL Server收缩数据库&列出所有表的数据条数_右键_10


  1. 12、删除数据库表中的所有数据;



输入命令:

delete from library.dbo.bookInfo

select COUNT(*) from library.dbo.bookInfo

SQL Server收缩数据库&列出所有表的数据条数_数据库表_11


  1. 13、刷新后,查看数据库的总空间大小变为12.44M、可使用空间大小变为1.2M;



14、查看数据库文件的大小,变为3M;


则浪费了空间,接下来需要进行手动收缩数据库;

SQL Server收缩数据库&列出所有表的数据条数_数据库_12

SQL Server收缩数据库&列出所有表的数据条数_数据库_13


  1. 15、选择数据库,右键任务--收缩--数据库,勾选“在释放的数据库前....”,并设置为20%;


SQL Server收缩数据库&列出所有表的数据条数_数据库_14


  1. 16、刷新后,查看数据库的总空间大小变为3.25M、可使用空间大小变为0.45M;



17、查看数据库文件的大小,变为2M;

则手动收缩数据库成功。

SQL Server收缩数据库&列出所有表的数据条数_右键_15

SQL Server收缩数据库&列出所有表的数据条数_数据_16



注意事项


  • 注意收缩的方法