关于MSSQL数据库容量问题

cixihpf 2011-11-23 11:10:50
问题是这样的,

我一个ASP+MSSQL架构的网站运行1年后,发现MSSQL数据库容量有1G多,于是我删除中的全部数据,但是发现数据库的容量还是有1G多,怎么办?数据库表中的记录我都删除了,但是容量还是那么多,怎么操作呢?
...全文
86 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengxuan 2011-11-23
  • 打赏
  • 举报
回复
日志文件很大的,清理日志
-晴天 2011-11-23
  • 打赏
  • 举报
回复
执行一下数据库收缩.
AcHerat 2011-11-23
  • 打赏
  • 举报
回复
右键收缩数据库。
中国风 2011-11-23
  • 打赏
  • 举报
回复
刪除數據后,收縮一下數據庫就可回收了
--小F-- 2011-11-23
  • 打赏
  • 举报
回复
--最好备份日志,以后可通过日志恢复数据。。。
以下为日志处理方法
一般不建议做第4,6两步
第4步不安全,有可能损坏数据库或丢失数据
第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.
--*/

--下面的所有库名都指你要处理的数据库的库名

1.清空日志
DUMP TRANSACTION 库名 WITH NO_LOG

2.截断事务日志:
BACKUP LOG 库名 WITH NO_LOG

3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(库名)

--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)

4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库

b.在我的电脑中删除LOG文件

c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库

此法将生成新的LOG,大小只有500多K

或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。

a.分离
EXEC sp_detach_db @dbname = '库名'

b.删除日志文件

c.再附加
EXEC sp_attach_single_file_db @dbname = '库名',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\库名.mdf'

5.为了以后能自动收缩,做如下设置:
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"

--SQL语句设置方式:
EXEC sp_dboption '库名', 'autoshrink', 'TRUE'

6.如果想以后不让它日志增长得太大
企业管理器--服务器--右键数据库--属性--事务日志
--将文件增长限制为xM(x是你允许的最大数据文件大小)

--SQL语句的设置方式:
alter database 库名 modify file(name=逻辑文件名,maxsize=20)
Mr_Nice 2011-11-23
  • 打赏
  • 举报
回复
DBCC SHRINKDATABASE
DBCC SHRINKFILE
--小F-- 2011-11-23
  • 打赏
  • 举报
回复
你没有清理日志文件吧 真正的数据文件是没多大的。
数据库系统原理》 实验报告 班级________ 姓名________________ 学号___________ 信息与电子工程学院 实验1 sql server 熟悉和数据库创建 "实验目的 " "熟悉sql server " "2005提供的服务管理器、企业管理器、查询分析器、客户端和服务器端网络" "实用工具等常用管理工具的使用。理解客户/服务器模式,理解面向连接与 " "非面向连接的差别。理解交互式sql的工作机制。能够理解命名管道协议与t" "cp/ip协议的差别。能够登陆上sql server数据库服务器。 " "实验内容 " "1、启动sql server 服务。 " "2、打开sql server的企业管理器,连接上sql server服务器。展开左边 " "树状窗口的各级结点,观察右边内容窗口的变化。 " "3、打开sql server的查询分析器,用use命令打开样例数据库pubs。 " "4、在查询窗口输入exec sp_help,运行后察看结果。 " "5、在查询窗口输入select * from authors ,运行后察看结果。 " "三、实验结果 " "3、当不确定当前所操作的是哪个数据库,可使用use来定位到某数据库。 " "4、 " " " "查询某张表的所有列。 " 实验2 简单查询 "实验目的: " "熟悉sql " "server的企业管理器和查询分析器的用户界面,掌握用企业管理器和查询分" "析器创建数据库,修改数据库和删除数据库的方法。 " "实验内容 " "分别使用sql server " "2005企业管理器和t—sql语句,按下列要求创建、修改和删除用户数据库。 " "1、创建名称为company的数据库数据库中包含一个数据文件,逻辑文件名" "为company_data,磁盘文件名为company_data.mdf,文件初始容量为5mb, " "最大容量为15mb,文件容量递增值为1mb;事务日志文件的逻辑文件名为com" "pany_log,磁盘文件名为company_log.ldf,文件初始容量为5mb,最大容量" "为10mb,文件容量递增值为1mb。 " "2、对该数据库进行修改:添加一个数据文件,逻辑文件名为company2_data" ",磁盘文件名为company2_data.ndf,文件初始容量为1mb,最大容量为5mb " ",文件容量递增值为1mb;将日志文件company_log的最大容量增加为15mb," "文件容量递增值为2mb。 " "3、 " "在company数据库中添加一个文件组tempgroup,并向该文件组中添加一个容" "量为3mb,最大容量为10mb,递增量为1mb的数据文件,该数据文件的逻辑文" "件名为company3_data,磁盘文件名为company3_data.ndf。 " "4、在company数据库中删除数据文件company2_data。 " "删除数据库company。 " "采用默认设置创建数据库company。 " "三、实验结果 " "1、create database company " "on ( name=company_data, " "filename='d:\microsoft sql " "server\mssql10_50.sqlexpress\mssql\data\company_data.mdf', " "size=5mb, " "maxsize=15mb, " "filegrowth=1mb ) " "log on (name=company_log, " "filename='d:\microsoft sql " "server\mssql10_50.sqlexpress\mssql\data\company_log.ldf', " "size=5mb, " "maxsize=10mb, " "filegrowth=1mb ); " "2、alter database company " "add file " "(name=company2_data, " "filename='d:\microsoft sql " "server\mssql10_50.sqlexpress\mssql\data\company2_data.mdf', " "size=1mb, " "maxsize=5mb, " "filegrowth=1mb) " "alter database company " "modify file " "(name='company_log',maxsize=15mb,filegrowth=2mb); " "3、alter database company " "a

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧