数据库在使用一段时间后,时常会出现因数据删除而造成数据库中空闲空间太多的情况,这时就需要减少分配给数据库文件和事务日志文件的磁盘空间,以免浪费磁盘空间。当数据库中没有数据时,可以修改数据库文件属性直接改变其占用空间,但当数据库中有数据时,这样做会破坏数据库中的数据,因此需要族纳使用压缩的方式来缩减数据库空间。可以在数据库属性选项中选择“Autoshrink”选项,让系统自动压缩数据库,也可以用人工的方法来压缩。人工压缩数据库有以下两种方式:
1、用EnterpriseManager压缩数据库
在EnterpriseManager中在所要压缩的数据库上单击右键,从快捷菜单中的“所有任务(AllTasks)”中选择“ShrinkDatabase(压缩数据库)”选项
、用Transact-SQL命令压缩数据库
可以使用DBCC和DBCCSHRINKFILE命令来压缩数据库。其中DBCC命令对数据库进行压缩,DBCCSHRINKFILE命令对数据库中指定的文件进行压缩。
(1)DBCC
DBCC命令语法如下:
DBCC(database_name[,target_percent]
[,{NOTRUNCATE|}])
各参数说明如下:
target_percent指定将数据库压缩后简穗顷,未使用的空间占数据库大小的百分之几。如果指定的百分比过大,超过了压缩前未使用空间所占的比例,则数据库不会被压缩。并且压缩后的数据库不能比数据库初始设定的容量小。
NOTRUECATE
将数据库缩减后剩余的空间保留在数据库,中不返还给操作系统。如果不选择此选项,则剩余的空间返还给操作系统。
将数据库缩减后剩余的空间返还给操作系统。使用此命令时SQLServer将文件缩减到最后一个文件分配,区域但不移动任何数据文件。选择此项后,target_percent选项就无效了。
压缩数据库mytest的未使用空间为数据库大小的20%。
db(mytest,20)
运行结果如下:
DBCCexecutioncompleted.IfDBCCprintederrormessages,contactyoursystem.
(2)DBCCSHRINKFILE
DBCCSHRINKFILE命令压缩当前数据库中的文件。其语法如下:
DBCCSHRINKFILE({file_name|file_id}
{[,target_size]|
[,{EMPTYFILE|NOTRUNCATE|}]})
各参数说明如下:
file_id
指定要压缩的文件的鉴别号(number,即ID)。文件的ID号可以通过FILE_ID()函数或如本章前面所讲述的Sp_helpdb系统存储过程来得到。
target_size
指定文件压缩后的大小。以MB为单位。如果不指定此选项,SQLServer就会尽最大可能地缩减文件。
EMPTYFILE
指明此文件不再使用,将移动所有在此文件中拦陆的数据到同一文件组中的其它文件中去。执行带此参数的命令后,此文件就可以用ALTERDATABASE命令来删除了。
其余参数NOTRUNCATE和与DBCC命令中的含义相同。
例6-15:压缩数据库mydb中的数据库文件mydb_data2的大小到1MB。usemydbdbshrinkfile(mydb_data2,1)
Ⅱ SQL的表怎么保存在u盘中 以便下次继续使用
一、备份数据库
1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server
2、SQL Server组-->双击打开你的服务器-->双击打开数据库目录
3、选择你的数据库名称(如论坛数据库Forum)-->然后点上面菜单中的工具-->选择备份数据库
4、备份选项选择完全备份,目的中的备份到如果原来有路径和名称则选中名称点删除,然后点添加,如果原来没有路径和名称则直接选择添加,接着指定路径和文件名,指定后点确定返回备份窗口,接着点确定进行备份
二、还原数据库
1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server
2、SQL Server组-->双击打开你的服务器-->点图标栏的新建数据库图标,新建数据库的名字自行取
3、点击新建好的数据库名称-->然后点上面菜单中的工具-->选择恢复数据库
4、在弹出来的窗口中的还原选项中选择从设备-->点选择设备-->点添加-->然后选择你的备份文件名-->添加后点确定返回,这时候设备栏应该出现您刚才选择的数据库备份文件名,备份号默认为1(如果您对同一个文件做过多次备份,可以点击备份号旁边的查看内容,在复选框中选择最新的一次备份后点确定)-->然后点击上方常规旁边的选项按钮
5、在出现的窗口中选择在现有数据库上强制还原,以及在恢复完成状态中选择使数据库可以继续运行但无法还原其它事务日志的选项。在窗口的中间部位的将数据库文件还原为这里要按照你SQL的安装进行设置(也可以指定自己的目录),逻辑文件名不需要改动,移至物理文件名要根据你所恢复的机器情况做改动,如您的SQL数据库装在D:\Program Files\Microsoft SQL Server\MSSQL\Data,那么就按照您恢复机器的目录进行相关改动改动,并且最后的文件名最好改成您当前的数据库名(如原来是zw0001.mdf,现在的数据库是zw0002,就改成zw0002.mdf),日志和数据文件都要按照这样的方式做相关的改动(日志的文件名是.ldf结尾的),这里的恢复目录您可以自由设置,前提是该目录必须存在(如您可以指定d:\sqldata\zw0002.mdf或者d:\sqldata\zw0002.ldf),否则恢复将报错
6、修改完成后,点击下面的确定进行恢复,这时会出现一个进度条,提示恢复的进度,恢复完成后系统会自动提示成功,如中间提示报错,请记录下相关的错误内容并询问对SQL操作比较熟悉的人员,一般的错误无非是目录错误或者文件名重复或者文件名错误或者空间不够或者数据库正在使用中的错误,数据库正在使用的错误您可以尝试关闭所有关于SQL窗口然后重新打开进行恢复操作,如果还提示正在使用的错误可以将SQL服务停止然后重起看看,至于上述其它的错误一般都能按照错误内容做相应改动后即可恢复
Ⅲ 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
选项就无效了。
Ⅳ SQL的表怎么保存在u盘中 以便下次继续使用
先把数据库建好之后,找到放数据的文件夹,停掉服务管理器,
再把数据库COPY,放到你U盘里面,到另外一台电脑时,打开企业管理器,连接本地,右键附加数据库,选择mdf后缀名,点击附加;就OK了
Ⅳ SQL SERVER 2005数据库中的文件怎么拷贝在U盘里
两种方法:
1、在“SQL
Server
配置管理器”中将你的SQL
SERVER服务停止,然后将你安装数据库文件中的data文件夹下的
你的数据库名.mdf和你的数据库名.ldf文件夹拷给别人,最后拿到该文件的人,直接在mssql2005的“SQL
Server
Management
Studio”工具中,用附加数据库的方式添加即可。
2、在你电脑上的“SQL
Server
Management
Studio”工具中找到你要用来传的数据库名,在上面点右键--任务--备份数据库。为其指定一个目录后,点保存。之后会生成一个文件,你直接将该文件拷贝给你要给的人。拿到这个备份文件的人,首先要在他电脑的“SQL
Server
Management
Studio”工具中新建一个空数据库,且该数据库名要和你电脑上的那个名称一致,最后在这个数据库名上点右键--任务--还原--数据库,选中刚才的那个备份文件,点确定也可以还原
[引用]我找到mdf和idf文件,但是发的时候出现图片上那个问题,谢谢了[/引用]
要先在“SQL
Server
配置管理器”中将你的SQL
SERVER服务停止,才能进行拷贝
Ⅵ sql怎么导入u盘数据
从A复制数据友虚库到B一般使用两种方法:
1:
(1)在A上打开数据库,在数据库右键点击备份,找一个地方(如桌面或U盘),打上文件名(不用后缀),如mysql,备份即可。
(2)打文件拷到B,打开B的数据库,创建一个数据库mysql,右键选择还原,先在左边第三个标签下选择在A上备份的数据,然后在第一个标签下右边选择覆盖。
(3)点击还原,注意,有时候第一遍不会成功,要从头重复操作两次才会成功;有时候,数据库的版本会有问题,如express版和企业版
2:
(1)直接在A中好简燃找到数据库文件一个mdf,一个日志文咐高件,复制到U盘(有时会复制不成功,这时候可能需要关掉数据库)
(2)在B上打开数据库,选择“附加”数据库即可。
Ⅶ SQL数据库如何压缩
1、首先从开始菜单着手,打开开始菜单栏,在菜单栏上找到我们已经安装的SQL server 2008,单击打开它。
Ⅷ 我在sql中做的数据库和表如何把它拷到我的U盘中去
你好!
这个很容易,
1、把右下角的sql
server服务管理器关掉
2、复制数据库文件到改码你的u盘(最少是两个文件啊)
使用的时候:
在使用的时候,使用附加数据库的方法就行旁消了
我的回答你还满意运歼知吗~~
Ⅸ 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
Ⅹ 如何将SQLserver移动到u盘
SQL Server本身没有移动的需要,我想你说的是数据移到U盘吧。非常简单,在要企业管理器中,选择你要移走的数据库,选择属性看一下数据文件的位置,记下来。然后在要移动的数据库商右击所有任务》分离数据库》确定后分离成功打开数据库所在的目录将数据库拷贝出来就可以了再目标机器上附加数据库就可以了同样打开企业管理器》数据库 右击 所有任务》附加数据库