zoukankan      html  css  js  c++  java
  • sql-server的添加数据库文件(日志数据)以及收缩数据库文件(日志数据)

    环境:

        SSMS

        sql-server2016

    一、为数据库添加数据文件

    image

    image

    添加日志数据文件

    image

    以下是添加数据文件和日志文件的代码

    ALTER DATABASE [joinbest] ADD FILE ( NAME = N'joinbest_2', FILENAME = N'C:Program FilesMicrosoft SQL ServerMSSQL13.MSSQLSERVERMSSQLDATAjoinbest_2.ndf' , SIZE = 8192KB , FILEGROWTH = 65536KB ) TO FILEGROUP [PRIMARY]

    ALTER DATABASE [joinbest] ADD FILE ( NAME = N'joinbest_2_log', FILENAME = N'C:Program FilesMicrosoft SQL ServerMSSQL13.MSSQLSERVERMSSQLDATAjoinbest_2_log.ndf' , SIZE = 8192KB , FILEGROWTH = 65536KB ) TO FILEGROUP [PRIMARY]

    二、测试文件自动增长功能,往joinbestgo数据库添加海量数据

    use benet
    create table t(id int,name nvarchar(max),pwd nvarchar(max))

    为t表添加100000行数据,观察cpu、内存和文件大小的变化
    declare @i int=1;
    while(@i<=100000)
    begin
         insert into t values(@i,replicate(rand()*100000,1000)
                                ,replicate(rand()*100000,1000));
         set @i=@i+1;
    end

    如果一切操作无误的话,相信你已经看到结果了,数据文件原始文件是8M,自动增长,每次增长64M,没有上限;但是日志文件是必须要设置上限的,原因是,不管数据库做什么样的更改操作,都会记录到日志文件里面,更是要定期的进行清理呢

    三、删除数据库中数据,查看测试结果

    删除t表中的数据,观察cpu、内存和文件大小的变化

    delete from t

    我们在观察一下数据文件,以及日志文件的大小,日志文件更大了,而且数据文件大小也没有降下来,这是因为虽然你删除了数据,但是文件在你的文件系统磁盘上还是占着那么大地方,只不过里面没有东西而已

    收缩数据库,从而节省磁盘资源

    DBCC SHRINKDATABASE(N'joinbest')

    //执行该命令是收缩整个数据库的容量,

    DBCC SHRINKFILE (N'joinbest' , 5)

    //该命令是收缩单个数据文件的

    ALTER DATABASE [joinbest] SET AUTO_SHRINK ON WITH NO_WAIT

    //该命令是设置自动收缩数据库

    本文完。。。

  • 相关阅读:
    【Dubbo】2.7.x新增内容说明
    【Dubbo】架构各层及实现
    【Dubbo】服务提供方并发控制
    把缅彝语支语言中汉语同源词用汉字写出来会是怎样一种情况?
    Using HTTP Methods for RESTful Services
    An Introduction to CodeMix and Python Developmen
    [转]MySQL 前缀索引--------mysql索引指定指定一个前缀长度
    [git使用]Git的使用--如何将本地项目上传到Github(两种简单、方便的方法)
    [转]centos7搭建postfix邮件服务器
    [转]Ubuntu搭建简易Postfix邮箱服务器
  • 原文地址:https://www.cnblogs.com/jojoword/p/10534534.html
Copyright © 2011-2022 走看看