A. SQLSERVER压缩数据文件的用处有多大
1、确认大量占用空间的对象(表格或索引)。然后通过归档历史数据,先把空间释放出来再压缩数据文件
2、重建索引,把一些数据页面重排一次,原先的页面被释放,所占用的分区也被释放,再去DBCC SHRINKFILE
B. SQLSERVER压缩数据文件的用处有多大
前奏:前些天因为客户那边的问题(其实是盗版问题),只能使用免费的SQLSERVER EXPRESS版本express版本的SQLSERVER的整个数据库的数据文件大小限制为4GB,就是说不管你用多少个文件组,多少个辅助数据文件ndf所有加起来都不能超过4GB(mdf+ndf)事务日志文件大小没有限制因为我们的数据库只是使用了一个主数据文件GPOS.mdf和一个事务日志文件GPOS.ldf 本人的解决思路:本人在想如果是这样,到时候就收缩数据库呗在网上查了一下资料:由于DBCC SHRINKDATABASE一次运行会同时影响所有的文件(包括数据文件和日志文件),使用者不能指定每个文件的目标大小,其结果可能不能达到预期的要求。所以建议先做好规划,对每个文件确定预期目标,然后使用DBCC SHRINKFILE来一个文件一个文件地做比较稳妥本来很开心的,网上资料都说使用DBCC SHRINKFILE来收缩文件,那这样就不怕拉 (我不怕不怕拉~)但是,往下看那个资料:1、首先了解数据文件当前的使用情况收缩量的大小不可能超过当前文件的空闲空间的大小。如果想要压缩数据库的大小,首先要确认数据文件里的确有相应未被使用的空间。如果空间都在使用中,那就要确认大量占用空间的对象(表格或索引)。然后通过归档历史数据,先把空间释放出来 2、主数据文件(primary file)是不能被清空的。能被完全清空的只有辅助数据文件 3、如果要把一个文件组整个清空,要删除分配在这个文件组上的对象(表格或索引),或者把他们移到其他文件组上。DBCC SHRINKFILE不会帮你做这个工作把数据文件里面数据和对象清除完、确认数据文件(组)有足够的空闲空间后,管理员就可以使用DBCC SHRINKFILE来缩小或清空指定文件了。如果要缩小文件,就填上需要的target_size,如果要清空文件,就选择EMPTYFILE 根据上面资料所说,本人的解决思路是:1、确认大量占用空间的对象(表格或索引)。然后通过归档历史数据,先把空间释放出来再压缩数据文件2、重建索引,把一些数据页面重排一次,原先的页面被释放,所占用的分区也被释放,再去DBCC SHRINKFILE如果你们有其他解决方法希望你们告诉我,谢谢您们了!!
C. SQLSERVER压缩数据文件的用处有多大
压缩数据文件最大的好处就是节约磁盘空间。这个东西对于中小型数据库而言,意义可能体现的并不明显,但是如果放在大型或者超大型数据库上,那么价值就非常可观了。
例如某大型数据库,备份文件在没有压缩前,大小可能在500G左右,压缩后大小大约在70G左右,可节约430G,而一个大型的IT企业,这种数据库还并不是核心库,核心库会更大,并且还会伴随多种高可用技术(更多的冗余)。例如腾讯或者阿里巴巴或者网络,那么多的业务,全国各地总服务器加起来可能上百台甚至上千台,按300台DB Server计算,如果单台能节省430G存储,300台Server可以节约125TB的存储,这是非常可观的一笔开销。
D. SQL数据库如何压缩
可以使用DBCC
SHRINKDATABASE
和DBCC
SHRINKFILE
命令来压缩数据库。
其中DBCC
SHRINKDATABASE
命令对数据库进行压缩,DBCC
SHRINKFILE
命令对数据库中指定的文件进行压缩。
DBCC
SHRINKDATABASE
命令语法如下:
DBCC
SHRINKDATABASE
(database_name
[,
target_percent]
[,
{NOTRUNCATE
|
TRUNCATEONLY}]
)
各参数说明如下:
target_percent:
指定将数据库压缩后,未使用的空间占数据库大小的百分之几。如果指定的百分比过大,超过了压缩前未使用空间所占的比例,则数据库不会被压缩。并且压缩后的数据库不能比数据库初始设定的容量小。
NOTRUECATE:
将数据库缩减后剩余的空间保留在数据库,中不返还给操作系统
,如果不选择此选项,则剩余的空间返还给操作系统。
TRUNCATEONLY
:
将数据库缩减后剩余的空间返还给操作系统。使用此命令时SQL
Server
将文件缩减到最后一个文件分配,区域但不移动任何数据文件。选择此项后,target_percent
选项就无效了。
E. SQLSERVER压缩数据文件的用处有多大
本人的解决思路:
本人在想如果是这样,到时候就收缩数据库呗
在网上查了一下资料:由于DBCC SHRINKDATABASE一次运行会同时影响所有的文件(包括数据文件和日志文件),使用者不能
指定每个文件的目标大小,其结果可能不能达到预期的要求。所以建议先做好规划,对每个文件确定预期目标,然后使用DBCC SHRINKFILE
来一个文件一个文件地做比较稳妥
本来很开心的,网上资料都说使用DBCC SHRINKFILE来收缩文件,那这样就不怕拉 (我不怕不怕拉~)
但是,往下看那个资料:
1、首先了解数据文件当前的使用情况
收缩量的大小不可能超过当前文件的空闲空间的大小。如果想要压缩数据库的大小,首先要确认数据文件里的确有相应未被使用的空间。如果空间都在
使用中,那就要确认大量占用空间的对象(表格或索引)。然后通过归档历史数据,先把空间释放出来
2、主数据文件(primary file)是不能被清空的。能被完全清空的只有辅助数据文件
3、如果要把一个文件组整个清空,要删除分配在这个文件组上的对象(表格或索引),或者把他们移到其他文件组上。
DBCC SHRINKFILE不会帮你做这个工作
把数据文件里面数据和对象清除完、确认数据文件(组)有足够的空闲空间后,管理员就可以使用DBCC SHRINKFILE来缩小或清空指定文件了。
如果要缩小文件,就填上需要的target_size,如果要清空文件,就选择EMPTYFILE
根据上面资料所说,本人的解决思路是:
1、确认大量占用空间的对象(表格或索引)。然后通过归档历史数据,先把空间释放出来再压缩数据文件
2、重建索引,把一些数据页面重排一次,原先的页面被释放,所占用的分区也被释放,再去DBCC SHRINKFILE
F. SQL数据库如何压缩
具体方法有3种。
方法一:
第一步:
backup
log
database_name
with
no_log
或者
backup
log
database_name
with
truncate_only
--
no_log和truncate_only是在这里是同义的,随便执行哪一句都可以。
第二步:
1.收缩特定数据库的所有数据和日志文件,执行:
dbcc
shrinkdatabase
(database_name,[,target_percent])
--
database_name是要收缩的数据库名称;target_percent是数据库收缩后的数据库文件中所要的剩余可用空间百分比。
2.收缩一次一个特定数据库中的数据或日志文件,执行
dbcc
shrinkfile(file_id,[,target_size])
--
file_id是要收缩的文件的标识
(id)
号,若要获得文件
id,请使用
file_id
函数或在当前数据库中搜索
sysfiles;target_size是用兆字节表示的所要的文件大小(用整数表示)。如果没有指定,dbcc
shrinkfile
将文件大小减少到默认文件大小。两个dbcc都可以带上参数notruncate或truncateonly,具体意思查看联机帮助.
方法二:
第一步:
先备份整个数据库以备不测
。
第二步:
备份结束后,在query
analyzer中执行如下的语句:
exec
sp_detach_db
yourdbname,true
--卸除这个db在mssql中的注册信息
第三步:
到日志的物理文件所在的目录中去删除该日志文件或者将该日志文件移出该目录
第四步:
在query
analyzer中执行如下的语句:
exec
sp_attach_single_file_db
yourdbname,'
d:\mssql\data\yourdbname_data.mdf
'
--以单文件的方式注册该db,如果成功则mssql将自动为这个db生成一个500k的日志文件。
方法三:
1.
进入企业管理器,选中数据库,比如demo
2.
所有任务->分离数据库
3.
到数据库文件的存放目录,将muonline_log.ldf文件删除,以防万一,你可以拷出去
4.
企业管理器->附加数据库,选muonline,这个时候你会看见日志文件这项是一个叉,不要紧,继续,此时数据库就会提示你该数据库无日志是否创建一个新的,确定就是了。
5.
记得数据库重新附加后用户要重新设置一下。
如果以后,不想要它变大:
sql2000下使用:
在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。
或用sql语句:
alter
database
数据库名
set
recovery
simple
G. 如何自动批量异地备份压缩SQLSERVER数据库
您好,很高兴能帮助您,
使用GUI配置数据库备份压缩
1. 使用SQL Server管理套件连接到SQL Server 2008实例。
2. 在对象管理器中,右键单击服务器和选择属性来查看服务器属性窗口。
3. 在备份和恢复下,压缩备份显示了备份压缩默认选项的当前设置。这个设置决定了服务器级别对压缩备份的默认:
如果没有选压缩备份,新的备份在默认情况下是不压缩的。
如果选择了压缩备份,那么新的备份在默认情况下会被压缩。
4. 用户需要是sysadmin 或serveradmin 固定服务器角色的成员,来改变数据库备份压缩的默认设置。
你的采纳是我前进的动力,还有不懂的地方,请你继续“追问”!
如你还有别的问题,可另外向我求助;答题不易,互相理解,互相帮助!
H. 如何收缩sqlserver数据库
你用数据库管理器选中数据库,先分离,然后再附加,然后再点收缩,收缩的时候先收缩日志文件,一般能收缩很多,记得要填写数字啊,比如上面提示能收缩为0,你就填个5兆,这样预留一点空间,而且很快,收缩完日志文件之后再收缩数据库 同理比最小能收缩量大几兆就可以了,但是收缩数据库比较慢 需要很多时间
I. sqlserver 如何压缩数据库
你需要将日志文件截断后收缩
在查询分析器里依次执行下面的语句就可以了,把“数据库”替换成你实际的数据库名
--首先截断事务日志
backup log 数据库 with no_log
--收缩数据库
dbcc shrinkdatabase('数据库',0)