压缩SQLServer2000数据库空间

合集下载

SQLServer2000数据库收缩

SQLServer2000数据库收缩

SQLServer2000数据库收缩SQL Server 2000数据库收缩浏览次数:3203次悬赏分:50 |解决时间:2009-8-31 23:38 |提问者:gddyyc公司的数据库所在盘符空间为600G,可用空间为9M(该盘符只装了数据文件以及日志文件),数据文件大小为598G,数据库可用空间为300多G,通过企业管理器我把数据库进行了文件收缩,设置收缩至300G左右,可已经收缩了2天了,数据库还是没有收缩完成。

看任务管理器里Server的CPU占用还是有的。

想问下大家1、是不是我的数据库现在收缩失败了啊?2、大家有过对大型数据库的收缩经验吗?时间怎么这么久啊?3、为什么我按百分比收缩时总是不成功?和盘符所剩空间有关系么?4、数据库收缩的简单原理是什么啊?和盘符所剩空间有关系么?麻烦大家了。

问题补充:数据文件598G(可用300多G),日志文件2G(可用1.9G),时间长那是该有多长呢?最佳答案1、是不是我的数据库现在收缩失败了啊?答:你的数据库收缩还没有完全失败,但已经可以视为失败,因为要做完收缩遥遥无期,需要的时间将十分漫长,具体原因见第三问。

2、大家有过对大型数据库的收缩经验吗?时间怎么这么久啊?答:数据库的收缩时间与数据库大小是成正比的,数据库越大,收缩时间越长。

所以建议要定时进行数据库收缩,每年一次或几个月一次,依数据库增长速度而定。

3、为什么我按百分比收缩时总是不成功?和盘符所剩空间有关系么?答:不论是按百分比收缩还是按空间大小进行收缩,都要求数据库所在磁盘预留一定的空间,最好在15%以上。

在数据库进行收缩时,系统将把这部分预留空间作为缓冲区,用来保存和整理数据库中的数据,然后再把整理过的数据写回数据库。

像你说的这种情况,数据文件大小为598G,可用空间为9M,基本无法进行有效的数据库收缩。

建议你把数据库文件解挂后,复制到750G以上的大容量硬盘中,重新附加数据库后再进行收缩。

SQL Server数据库压缩技巧指南

SQL Server数据库压缩技巧指南

SQL Server数据库压缩技巧指南中的数据库数据文档增长事务日志文档你能够最大限度地缩小数据库吗?(一)我经常看见人们制定定期缩小数据库文件(数据或T-Log)的SQL Server维护计划和定制任务。

我通常也会建议我的客户和同事除非他们要研究数据库增长原因,否则不要缩小数据库文件,尤其是在一般基础上不要这么做。

我曾经多次和那些更多关注磁盘空间而不是性能的人们讨论过这个话题,所以在这里我决定进行一下测试来证明我所说的属实。

此外我还要告诉大家数据库文件在事务办理过程中增长对SQL Server性能会带来什么样的影响。

我将在以下几个增长环境中进行测试:1、数据库数据文件增长2、数据库T-log增长3、Tempdb增长这是本系列中的第一篇技巧,即检测SQL Server中的数据库数据文件增长。

测试环境硬件和软件配置我进行测试的系统硬件和软件配置如下:你能够最大限度地缩小数据库吗?(三)结果总结将结果放在表格中进行比较,比较项目包括CPU、读和写意及第一个循环和第二个循坏之间的间隔时间,首先是文件增长,后来就不会出现文件增长的情况。

这里有两个地方进行的比较:百分比不同(第二环节和第一个环节之间的比为*100)并且不同的处数也不同((<First loop is > - <Second loop is >)。

如果得到的是正数,那就是说第二个环节进行得比较好。

如果是负数,意思就相反。

在每个比较表的最后,比较得出的平均值就是这三次重复得到的结果平均值。

在这篇文章的最后,我们通过一个表来比较一下所有测试过程中所得到的平均值。

测试1:原始文件大小=256目标文件大小=8448小事务(一次1行),总行数:8160文件增长大小为1MB图3下面是连续执行三次上述代码所得到的SQL Profiler结果(我清除了调试查询):你能够最大限度地缩小数据库吗?(四) 结果总结测试2原始文件大小=256目标文件大小=34816小事务(一次1行),总行数:33373文件增长大小为1MB现在我们来测试一下插入更多数据。

sql server 压缩数据库方法

sql server 压缩数据库方法

sql server 压缩数据库方法在SQL Server 中,可以使用几种方法来压缩数据库。

以下是其中一些方法:1. 使用 T-SQL 脚本:可以使用 T-SQL 脚本来压缩数据库。

例如,使用 `ALTER DATABASE` 语句和 `REBUILD_LOG` 或 `REBUILD_FILE` 子句来压缩数据库日志和文件。

```sql-- 压缩日志文件ALTER DATABASE [YourDatabaseName]REBUILD_LOG;-- 压缩数据文件ALTER DATABASE [YourDatabaseName]REBUILD_FILE (N'LogicalFileName', N'NewFileName', 1);```2. 使用 SQL Server Management Studio (SSMS):在 SQL Server Management Studio 中,你可以右击数据库 -> 任务 -> 收缩 -> 文件或文件组。

这将打开一个对话框,你可以选择收缩数据库的方法和设置。

3. 使用 ALTER DATABASE 语句:你可以使用 ALTER DATABASE 语句来设置数据库的自动收缩选项。

例如:```sqlALTER DATABASE [YourDatabaseName]SET AUTO_SHRINK ON;```请注意,自动收缩通常不是一个好的做法,因为它可能会影响性能并导致大量的日志操作。

4. 使用第三方工具:市场上有很多第三方工具,如 Redgate's SQL Compact,可以帮助你更有效地压缩数据库。

这些工具通常提供更高级的压缩选项和更好的性能。

5. 优化数据库设计:在某些情况下,压缩数据库可能不是一个解决方案。

例如,如果数据库太大,可能需要重新考虑数据库设计,例如通过规范化、反规范化、分区或使用其他技术来减少数据库的大小。

sqlserver数据库过大,收缩方法

sqlserver数据库过大,收缩方法

sqlserver数据库过大,收缩方法English: To shrink a SQL Server database, you can use the DBCC SHRINKDATABASE command. This command will reduce the physical files of the database to a smaller size by moving pages of data from the end of the file to unoccupied space closer to the beginning of the file. However, it is important to note that shrinking a database can have negative effects on performance and should be done with caution. Before shrinking the database, it is important to identify if the database is actually too large or if there are any underlying issues causing the growth. It is also recommended to backup the database before performing any shrink operations in case any data is lost during the process. Additionally, it is important to monitor the database size regularly and implement better data management practices to prevent the database from growing too large in the future.Translated content: 要收缩 SQL Server 数据库,您可以使用 DBCC SHRINKDATABASE 命令。

sqlserver数据库压缩步骤

sqlserver数据库压缩步骤

数据库压缩是一种优化数据库性能的方法,通过压缩数据来减少磁盘空间的占用,同时也能加速备份和恢复速度,减少资源和性能占用。

本文将介绍如何在SQL Server数据库中启用压缩备份策略,并进行压缩操作。

1. 首先需要打开数据库对象资源管理器,右键单击需要启用压缩备份策略的服务器,然后打开属性对话框。

2. 单击数据库设置节点,建立新的备份媒体。

同时,需要注意备份媒体的文档格式、大小等问题。

3. 选择要压缩的表或存储过程,右键单击,选择“属性”。

4. 在“选项”选项卡中,勾选“压缩”复选框。

然后可以根据需要调整压缩级别,默认为“高”。

5. 在“压缩方式”下拉列表中选择压缩方式,建议选择“存储过程压缩”,这是SQL Server提供的一种高效的压缩方式,可以有效地减少存储过程的体积。

6. 最后点击“确定”,完成设置并保存更改。

通过上述步骤,可以在SQL Server数据库中启用压缩备份策略,并对特定的表或存储过程进行压缩。

注意,压缩备份和非压缩备份不能同时存在,老版本无法读取新版本的压缩备份。

在进行数据库压缩时,需要注意以下几点:1. 压缩可能会影响数据库性能,因此应在非繁忙时间进行压缩操作。

2. 如果要在相同服务器上同时压缩多个数据库,建议将其放在不同的时间段进行,避免同时压缩带来的性能问题。

3. 对于大数据量的表或存储过程,建议分批进行压缩操作,避免一次性压缩导致的性能下降。

4. 对于备份或还原数据库的操作,建议在压缩前进行,以确保备份和还原过程中不会对压缩的数据产生影响。

总之,数据库压缩是一种有效的优化数据库性能的方法,通过减少磁盘空间的占用和加速备份和恢复速度,可以提高数据库的性能和效率。

SQLServer2000收缩数据库文件至最小的空间会影响数据库性能此

SQLServer2000收缩数据库文件至最小的空间会影响数据库性能此

SQL Server 2000收缩数据库文件至最小的空间会影响数据库性能此问题在项目得到证实,数据文件从90G收缩至70G后,用户的查询体验速度受到严重影响,特别是数据量较大、查询范围大的数据表。

因此建议在磁盘空间请允许的情况下不要收缩数据库文件,如果磁盘空间有限,需要收缩,则收缩数据库后,一定要对数据库表重建索引。

处理步骤:一、查看数据表索引碎片情况命令:DBCC SHOWCONTIG(TableName)参数说明:扫描页数:如果你知道行的近似尺寸和表或索引里的行数,那么你可以估计出索引里的页数。

看看扫描页数,如果明显比你估计的页数要高,说明存在内部碎片。

扫描扩展盘区数:用扫描页数除以8,四舍五入到下一个最高值。

该值应该和DBCC SHOWCONTIG返回的扫描扩展盘区数一致。

如果DBCC SHOWCONTIG返回的数高,说明存在外部碎片。

碎片的严重程度依赖于刚才显示的值比估计值高多少。

扩展盘区开关数:该数应该等于扫描扩展盘区数减1。

高了则说明有外部碎片。

每个扩展盘区上的平均页数:该数是扫描页数除以扫描扩展盘区数,一般是8。

小于8说明有外部碎片。

扫描密度[最佳值:实际值]:DBCC SHOWCONTIG返回最有用的一个百分比。

这是扩展盘区的最佳值和实际值的比率。

该百分比应该尽可能靠近100%。

低了则说明有外部碎片。

逻辑扫描碎片:无序页的百分比。

该百分比应该在0%到10%之间,高了则说明有外部碎片。

扩展盘区扫描碎片:无序扩展盘区在扫描索引叶级页中所占的百分比。

该百分比应该是0%,高了则说明有外部碎片。

每页上的平均可用字节数:所扫描的页上的平均可用字节数。

越高说明有内部碎片,不过在你用这个数字决定是否有内部碎片之前,应该考虑fill factor(填充因子)。

平均页密度(完整):每页上的平均可用字节数的百分比的相反数。

低的百分比说明有内部碎片。

二、重建索引命令DBCC DBREINDEX用法语法:DBCC DBREINDEX( [ 'database.owner.table_name'[ , index_name[ , fillfactor ]]])参数说明:'database.owner.table_name'是要重建其指定的索引的表名。

sqlserver数据库收缩步骤

sqlserver数据库收缩步骤

sqlserver数据库收缩步骤数据库收缩是指将数据库中的空间回收和重新组织,以便提高性能和节省磁盘空间。

以下是SQL Server数据库收缩的步骤:1.首先,运行`DBCCSHRINKDATABASE`命令来收缩整个数据库。

该命令将尝试压缩数据库文件并释放未使用的空间。

语法如下:```DBCC SHRINKDATABASE (database_name)```其中,`database_name`是要收缩的数据库的名称。

2.默认情况下,`DBCCSHRINKDATABASE`将尝试将数据库缩小到其实际大小。

但是,如果你希望将数据库缩小到指定的大小,可以使用`TARGET_SIZE`选项。

例如,要将数据库缩小到100MB大小,可以执行以下命令:```DBCC SHRINKDATABASE (database_name, 100)```3.收缩数据库过程可能会造成数据库锁定,因此在收缩数据库之前应考虑该数据库的使用情况。

如果数据库正在被频繁使用,可能需要在低峰时间进行收缩操作。

4.收缩数据库期间,可以将进度信息输出到消息窗口。

要启用此选项,可以使用`WITHNO_INFOMSGS`选项。

例如:DBCC SHRINKDATABASE (database_name) WITH NO_INFOMSGS```5.如果只需要收缩特定的表或索引,可以使用`DBCCSHRINKFILE`命令。

该命令用于收缩特定文件(数据文件或日志文件),而不是整个数据库。

语法如下:```DBCC SHRINKFILE (file_name, target_size)```6. `DBCC SHRINKFILE`命令中的`file_name`参数可以指定要收缩的文件的名称。

可以通过查询`sys.database_files`系统视图或使用SQL Server Management Studio(SSMS)查看文件名称。

7.使用`DBCCSHRINKFILE`命令收缩数据库文件时,可以将文件缩小到其实际大小,或者指定目标大小。

SQL2000自动备份压缩删除数据库

SQL2000自动备份压缩删除数据库

SQL2000自动备份压缩删除数据库create proc dbbf_testasdeclare@dbname varchar(20),@cmd1 nvarchar(120),@cmd2 varchar(120),@cmd3 varchar(120),@i int,@filename varchar(80),@path varchar(80)set @dbname='TEST'--\\这是数据库名,使用时只需要把它改成你所要备份的数据库名即可,这个必须修改\\------删除当前日期前15-前10天内的数据库备份,可根需要自行修改----set @i=10while @i<15beginset @cmd1 ='if existE:\DATABACKUP\'+@dbname+convert(varchar(10),DATEADD(day,-@i,getdate()),112) +'*' +' del'+'E:\DATABACKUP\'+@dbname+convert(varchar(10),DATEADD(day,-@i,getdate()),112) +'*'exec master..xp_cmdshell @cmd1----删除10天之前的数据库备份set @i=@i+1end----备份数据库----exec master..xp_cmdshell 'if not exist E:\DATABACKUP (md E:\DATABACKUP)'--如果E 盘根目录没有DATABACKUP文件夹,则新建此文件夹SELECT @filename=@dbname+replace(replace(replace(CONVERT(varchar(16), getdate(), 120 ),'-',''),' ','-'),':','')SET @path='E:\DATABACKUP\'+@filenameBACKUP DATABASE @dbname TO DISK=@path----压缩数据库备份,删除原备份文件set @cmd2='C:\PROGRA~1\WinRAR\winrar.exe a -ibckE:\DATABACKUP\'+@filename+'.rar E:\DATABACKUP\'+@filenameexec master..xp_cmdshell @cmd2----压缩数据库set @cmd3='DEL E:\DATABACKUP\'+@filenameexec master..xp_cmdshell @cmd3----删除原备份文件(只保留压缩包)go--1.修改本过程中目标数据库名成你要备分的数据库名2.复制此行(可含此行)以上内空到查询分析器中执行即可--3.数据库备份文件存放在E:\DATABACKUP文件夹中,文件名为数据库名四位年两位月两位日-两位时两位分.rar。

压缩数据库

压缩数据库

压缩数据库解决方案1、用BACKUP LOG database WITH NO_LOG清除日志把数据库属性中的故障还原模型改为“简单”可以大大减慢日志增长的速度。

如果把还原模型调到简单,这样就不支持时间点还原了,但是日志文件会很小,如果数据比较重要推荐还是把数据库的还原模型调为完全用BACKUP LOG database WITH NO_LOG命名后,会截断不活动日志,不减小物理日志文件的大小,但逻辑日志会减小,收缩数据库后会把不活动虚拟日志删除来释放空间,不会损坏数据。

如果日志被截断并收缩数据库后,就不能直接用最近的一个全库备份做时间点还原,建议立即备份数据库,以防万一。

2、sql server运行中,是否能删除主数据库事务日志文件步骤如下:(1)、分离数据库企业管理器--数据库--右击你要删除日志的数据库--所有任务--分离数据库(2)、然后删除日志文件(3)、然后再附加数据库企业管理器--数据库--右击数据库--所有任务--附加数据库这时候只附加。

mdf就可以了。

3、压缩SQL数据库及日志的详细方法SQL Server 2000基础教程——压缩数据库数据库在使用一段时间后,时常会出现因数据删除而造成数据库中空闲空间太多的情况,这时就需要减少分配给数据库文件和事务日志文件的磁盘空间,以免浪费磁盘空间。

当数据库中没有数据时,可以修改数据库文件属性直接改变其占用空间,但当数据库中有数据时,这样做会破坏数据库中的数据,因此需要使用压缩的方式来缩减数据库空间。

可以在数据库属性选项中选择“Auto shrink”选项,让系统自动压缩数据库,也可以用人工的方法来压缩。

人工压缩数据库有以下两种方式:1、用Enterprise Manager 压缩数据库在Enterprise Manager 中在所要压缩的数据库上单击右键,从快捷菜单中的“所有任务(All Tasks)”中选择“Shrink Database(压缩数据库)”选项,就会出现如图6-10所示的对话框。

SQL Server 2000数据库的事务日志文件过大,如何将其缩小?

SQL Server 2000数据库的事务日志文件过大,如何将其缩小?

关于这两个命令的具体使用方法,可以参考SQL Server 2000联机丛书中的相应主题。另外,也可在SQL Server企业管理器中执行数据库收缩,同样是调用的以上两个命令,效果类似。
在使用以上命令收缩日志文件的时候需要注意,已写入数据库但未被截断的事务日志记录是不会被收缩的,因为虽然这部分日志记录的信息已经写入数据库文件,但在使用事务日志备份进行数据库还原的时候,还将用到其中的信息。
为避免事务日志文件增长过快以致用尽所有磁盘空间的现象发生,一种办法是将数据库设为使用简单恢复模型,这样可以使SQL Server周期性的自动截断事务日志的非活动部分,并回收其占用的空间供以后写入事务日志记录使用。但这将使数据库无法利用事务日志备份还原到即时点,降低了数据库的可靠性,因此一般不应用于生产型数据库。
如果当前数据库的事务日志文件过大,必须对其进行收缩的话,建议参照以下步骤:
1、建议首先备份数据库(但不是必需的):
BACKUP DATABASE database_name TO backup_device
2、备份事务日志:
BACKUP LOG database_name TO backup_device
对于使用简单恢复模型的数据库,事务日志会在每次处理检查点(CheckPoint)时自动被截断。
对于使用完全恢复模型或大容量日志记录恢复模型的数据库,事务日志只有在执行日志备份(BACKUP LOG)时才会被截断,这时事务日志中记录的信息被写入事务日志备份文件,而它们所占用的这部分空间被标记为可用(即被截断)。
4、如果日志文件仍然较大的话,可以尝试重复执行一次BACKUP LOG WITH NO_LOG和DBCC SHRINKFILE命令。

SQL2000数据库收缩方法

SQL2000数据库收缩方法

SQL2000数据库收缩方法SQL Server 2000是一个关系型数据库管理系统(RDBMS),旨在高效地存储和管理大量数据。

收缩数据库是一种优化数据库性能和节省存储空间的方法。

在本文中,我们将介绍SQL Server 2000中的数据库收缩方法。

1.数据库备份:在进行任何数据库操作之前,务必进行数据库备份。

这是一种预防措施,以防止数据丢失。

2. 清理日志文件:SQL Server 2000使用事务日志来记录所有数据库操作。

如果事务日志文件太大,可能会导致数据库性能下降。

可以使用以下命令来清理事务日志文件:```SQLBACKUPLOG[数据库名称]WITHTRUNCATE_ONLYDBCCSHRINKFILE(2,TRUNCATEONLY)```其中,数据库名称是要清理事务日志文件的数据库的名称。

2是事务日志文件的ID。

3.收缩数据库文件:数据库文件可能会随着时间的推移变得非常庞大,这可能会导致性能下降和存储空间浪费。

可以使用以下命令来收缩数据库文件:```SQLDBCCSHRINKDATABASE([数据库名称])```其中,数据库名称是要收缩的数据库的名称。

4. 收缩文件组:SQL Server 2000允许将数据库文件分组到逻辑单元中,称为文件组。

可以使用以下命令来收缩文件组:```SQLDBCCSHRINKFILE([文件组名称],[目标大小])```其中,文件组名称是要收缩的文件组的名称,目标大小是要将文件组压缩到的大小。

5.禁用自动增量增长:数据库中的表可能具有自动增量增长的列,这意味着每次插入时,该列的值都会增加。

这可能会导致数据库文件变大。

可以使用以下命令来禁用自动增量增长:```SQLALTERTABLE[表名称]ALTERCOLUMN[列名称]IDENTITY(当前最大值,增量值)```其中,表名称是要禁用自动增量增长的表的名称,列名称是要禁用自动增量增长的列的名称,当前最大值是当前自动增量增长列的最大值,增量值是自动增量增长列的增量值。

Sql Server数据库压缩方法

Sql Server数据库压缩方法

Sql Server数据库压缩方法Sql Server数据库用了一段时间以后,发现数据大小会猛增,最多时增加到十几G,而实际数据占有量其实只有5G左右。

这样的后果就导致数据库运行缓慢,且大大占用磁盘空间。

经过多方研究,最终找到了压缩数据库的方法。

下面将详细介绍一下这种方法的操作步骤:1.重建索引数据库长期使用之后,索引会占用大量的空间,并且这些空间不能直接清理,这时可以重建索引,重建索引的sql脚本语句如下:SET NOCOUNT ON;DECLARE@objectid int;DECLARE@indexid int;DECLARE@partitioncount bigint;DECLARE@schemaname nvarchar(130);DECLARE@objectname nvarchar(130);DECLARE@indexname nvarchar(130);DECLARE@partitionnum bigint;DECLARE@partitions bigint;DECLARE@frag float;DECLARE@command nvarchar(4000);If Object_Id('Tempdb.dbo.#work_to_do')Is Not Null drop table#work_to_doSELECTobject_id AS objectid,index_id AS indexid,partition_number AS partitionnum,avg_fragmentation_in_percent AS fragINTO#work_to_doFROM sys.dm_db_index_physical_stats(DB_ID(),NULL,NULL,NULL,'LIMITED')WHERE avg_fragmentation_in_percent> 10.0 AND index_id> 0;DECLARE partitions CURSOR local FOR SELECT*FROM#work_to_do;OPEN partitions;WHILE (1=1)BEGIN;FETCH NEXTFROM partitionsINTO@objectid,@indexid,@partitionnum,@frag;IF@@FETCH_STATUS< 0 BREAK;SELECT@objectname=QUOTENAME(),@schemaname=QUOTENAME()FROM sys.objects AS oJOIN sys.schemas as s ON s.schema_id=o.schema_idWHERE o.object_id=@objectid;SELECT@indexname=QUOTENAME(name)FROM sys.indexesWHERE object_id=@objectid AND index_id=@indexid;SELECT@partitioncount=count(*)FROM sys.partitionsWHERE object_id=@objectid AND index_id=@indexid;IF@frag< 30.0SET@command=N'ALTER INDEX'+@indexname+N' ON '+@schemaname+N'.'+@objectname+ N'REORGANIZE';IF@frag>= 30.0SET@command=N'ALTER INDEX'+@indexname+N' ON '+@schemaname+N'.'+@objectname+ N'REBUILD';IF@partitioncount> 1SET@command=@command+N'PARTITION='+CAST(@partitionnum AS nvarchar(10));EXEC (@command);PRINT N'Executed:'+@command;END;CLOSE partitions;2.数据库行压缩和页压缩经长期测试发现,TPMS_PaperResultReport这张表占用很大的空间,执行以下sql 脚本语句,可以压缩这张表的占用空间。

SQLServer2000数据库优化方案参考

SQLServer2000数据库优化方案参考

1、6、7、SQL Server 2000 数据库优化方案参考查询速度慢的原因很多,常见如下几种:没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)2、I/O 吞吐量小,形成了瓶颈效应。

3、没有创建计算列导致查询不优化。

4、内存不足5、网络速度慢查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)8、sp_lock,sp_who, 活动的用户查看,原因是读写竞争资源。

9、返回了不必要的行和列10、查询语句不好,没有优化可以通过如下方法来优化查询1、把数据、日志、索引放到不同的I/O 设备上,增加读取速度,以前可以将Tempdb应放在RAIDO上,SQL2000不在支持。

数据量(尺寸)越大,提高I/O 越重要.2、纵向、横向分割表,减少表的尺寸(sp_spaceuse)3、升级硬件4、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。

注意填充因子要适当(最好是使用默认值0)。

索引应该尽量小,使用字节数小的列建索引好(参照索引的创建),不要对有限的几个值的字段建单一索引如性别字段5 、提高网速;6、扩大服务器的内存,Windows 2000 和SQL server 2000 能支持4-8G 的内存。

配置虚拟内存:虚拟内存大小应基于计算机上并发运行的服务进行配置。

运行Microsoft SQL Server? 2000 时,可考虑将虚拟内存大小设置为计算机中安装的物理内存的1.5 倍。

如果另外安装了全文检索功能,并打算运行Microsoft 搜索服务以便执行全文索引和查询,可考虑:将虚拟内存大小配置为至少是计算机中安装的物理内存的3 倍。

将SQL Server max server memory 服务器配置选项配置为物理内存的1.5 倍(虚拟内存大小设置的一半)。

7、增加服务器CPU 个数;但是必须明白并行处理串行处理更需要资源例如内存。

sqlserver数据库压缩与数据库日志(ldf)压缩方法分享

sqlserver数据库压缩与数据库日志(ldf)压缩方法分享

sqlserver数据库压缩与数据库⽇志(ldf)压缩⽅法分享 操作很简单,具体不步骤如下:打开你mdb数据库,⼯具-->数据库实⽤⼯具-->压缩和修复数据库(c)...⼀般情况下,SQL数据库的收缩并不能很⼤程度上减⼩数据库⼤⼩,其主要作⽤是收缩⽇志⼤⼩,应当定期进⾏此操作以免数据库⽇志过⼤1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根⽬录中依次点开Microsoft SQLServer-->SQLServer组-->双击打开你的服务器-->双击打开数据库⽬录-->选择你的数据库名称(如论坛数据库Forum)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择"简单",然后按确定保存2、在当前数据库上点右键,看所有任务中的收缩数据库,⼀般⾥⾯的默认设置不⽤调整,直接点确定3、收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作⽅法同第⼀点,因为⽇志在⼀些异常情况下往往是恢复数据库的重要依据不过服务器上可以⽤下⾯的语句在查询分析器中执⾏复制代码代码如下:DUMP TRANSACTION [jc8] WITH NO_LOGBACKUP LOG [jc8] WITH NO_LOGDBCC SHRINKDATABASE([jc8])jc8为数据库名,来实现jc8.ldf⽂件的清理。

问:SQLServer中的事务⽇志应该怎样压缩和删除?答:具体⽅法有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是数据库收缩后的数据库⽂件中所要的剩余可⽤空间百分⽐。

SQLserver数据库压缩空间

SQLserver数据库压缩空间

SQLserver数据库压缩空间
SQL server数据库,在⼿动删除或者⾃动删除数据后,查看数据库物理⽂件发现占⽤空间并没有释放,果断采⽤万能的重启。

(反正是⾃⼰⽤的⼀个服务器,随便玩。

如果不是只有⾃⼰⽤的服务器,还是建议让运维或者DBA来做)。

服务器重启后发现还是没有释放空间,emmmmmm。

那就请教百度⽼师了。

⽹友的解答是,SQL server数据库不会⾃⼰压缩已经扩展的空间,如果需要压缩需要⼿动操作。

压缩空间的⽅式有两种:1、数据库。

2、⽂件。

在要收缩空间的数据库上右键--》任务--》收缩--》1、数据库,2⽂件(⾃⼰选择)。

然后就等着吧。

两个会有不同,数据库会将该数据库所有的未使⽤空间进⾏收缩。

适⽤于数据和⽇志都有清空或删除。

选择⽂件,
有三种可以进⾏收缩,数据、⽇志和filestream 数据。

前两个⽐较熟悉,就是对数据和⽇志占⽤空间进⾏收缩,第三个⾃⼰也不是很了解,建议百度下,不过很多地⽅都有讲解。

我选择的是数据库收缩,还是很慢的,⼤家等着吧。

SQL收缩数据库

SQL收缩数据库

SQL收缩数据库SQL里面删除数据后,MDF的大小并没有减少,有没有办法能删除数据后,mdf 文件能跟着减少。

收缩数据库SQL Server 2000 自动收缩有大量可用空间的数据库。

该进程仅适用于那些autoshrink 选项设置为 true 的数据库。

服务器定期检查每个数据库中的空间使用情况。

如果发现数据库中有大量闲置空间,而且它的 autoshrink 选项设置为 true,SQL Server 就缩小该数据库中的文件大小。

也可以使用 SQL Server 企业管理器或 DBCC SHRINKDATABASE 和 DBCC SHRINKFILE 语句,手工收缩数据库中的文件。

如何收缩数据库(企业管理器)展开服务器组,然后展开服务器。

展开"数据库"文件夹,右击要收缩的数据库,指向"所有任务",然后单击"收缩数据库"命令。

要指定数据库的收缩量,请从以下选项中选择:在"收缩后文件中的最大可用空间"中输入收缩后数据库中剩余的可用空间量。

以"数据库大小,可用空间"值作为依据。

选择"在收缩前将页移到文件起始位置",使释放的文件空间保留在数据库文件中,并使包含数据的页移到数据库文件的起始位置。

单击"调度"命令创建或更改自动收缩数据库的频率和时间。

如果要收缩个别的数据库文件,请单击"收缩文件"。

说明不能将数据库的大小收缩到小于 model 数据库的大小DBCC SHRINKDATABASE收缩指定数据库中的数据文件大小。

语法DBCC SHRINKDATABASE( database_name [ , target_percent ][ , { NOTRUNCATE | TRUNCATEONLY } ])参数database_name是要收缩的数据库名称。

关于SQLServer压缩日志及数据库文件大小整理

关于SQLServer压缩日志及数据库文件大小整理

让知识带有温度。

关于SQLServer压缩日志及数据库文件大小整理
关于SQL Server压缩日志及数据库文件大小
请按步骤进行,未进行前面的步骤时,请不要做后面的步骤,以免损坏你的数据库.
一般不建议做第4,6两步,第4步担心全,有可能损坏数据库或丢失数据。

第6步假如日志达到上限,则以后的数据库处理睬失败,在清理日志后才能恢复。

1.清空日志
DUMP TRANSACTION 库名WITH NO_LOG
2.截断事务日志
BACKUP LOG 数据库名WITH NO_LOG
3.收缩数据库文件(假如不压缩,数据库的'文件不会减小
企业管理器--右键你要压缩的数据库--全部任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
也可以用SQL语句来完成
第1页/共2页
千里之行,始于足下。

--收缩数据库
DBCC SHRINKDATABASE(客户资料)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:
select * from sysfiles
DBCC SHRINKFILE(1)
4.为了最大化的缩小日志文件(假如是sql 7.0,这步只能在查询分析器中进行)
a.分别数据库:
企业管理器--服务器--数据库--右键--分别数据库
b.在我的电脑中删除LOG文件
文档内容到此结束,欢迎大家下载、修改、丰富并分享给更多有需要的人。

第2页/共2页。

SQL SERVER2000使用AWE进行内存优化

SQL SERVER2000使用AWE进行内存优化

SQL SERVER2000使用AWE进行内存优化来源:作者:发表于:2012-08-21 10:56点击:21今年年初的时候一个客户打电话抱怨系统随着时间的推移越来越慢,在正常情况下还能够忍受,如果系统出现数据问题需要重新执行,那可以想象在某一个时间急着需要报告而系统确是默默唧唧在拉破车,换谁都无法忍受。

随之,我们调查这个问题,系统本身的设计就没今年年初的时候一个客户打电话抱怨系统随着时间的推移越来越慢,在正常情况下还能够忍受,如果系统出现数据问题需要重新执行,那可以想象在某一个时间急着需要报告而系统确是默默唧唧在拉破车,换谁都无法忍受。

随之,我们调查这个问题,系统本身的设计就没有考虑到有如此大的机构数和高的频度,所以造成了数据库膨胀得特别快,特别是几个主要存放数据表更是比较吓人。

从上表可以看出RMBCredit表近8.3亿笔数据,这个数据量在不同的数据库都是一个不小的数目,在讨论后给出了如下方法:(1)把历史数据移到其他地方进行存放,由于在做数据分析的时候需要保留两年的数据(2)提高SQL Server2000内存使用量,可以通过开启AWE进行实现;(3)修改程序,按照年份存放不同数据表中(由于这个产品在公司已经有公司替代,处于消亡阶段,该修改工作量大风险高,否决);(4)使用数据库分区功能(该功能在SQL Server2000未提供,另外做分区速度提升也不大,否决)通过讨论确定了1、2方法进行改造,具体AWE内存优化步骤如下面所介绍。

1. SQL SERVERAWE大内存设置方法标准的32 位地址最多可映射4 GB 内存。

因此32 位进程的标准地址空间限制为4 GB。

默认情况下,在32 位Microsoft Windows 操作系统中,将为操作系统保留2 GB 空间,另外2 GB 空间可由应用程序使用。

在32位操作系统中,一般SQL Server可以使用的內存不到2G,如果要SQL SERVER2000可以使用大容量的內存,我们需要开启SQL-SERVER的AWE功能。

sqlserver收缩数据库

sqlserver收缩数据库

sqlserver收缩数据库为什么要收缩数据库SQL Server 2000采取预先分配空间的方法来建立数据库的数据文件或者日志文件,比如数据文件的空间分配了100MB,而实际上只占用了50MB空间,这样就会造成存储空间的浪费。

为此,SQL Server 2000提供了收缩数据库的功能,允许对数据库中的每个文件进行收缩,删除已经分配但没有使用的页。

不能将整个数据库收缩到比其原始大小还要小。

因此,如果数据库创建时的大小为 10 MB,后来增长到100MB,则该数据库最小能够收缩到10MB(假定已经删除该数据库中所有数据)。

不能在备份数据库时收缩数据库,也不能在收缩数据库时创建或备份数据库。

4.8.2 什么是自动收缩和手动收缩SQL Server 2000支持对数据库实行自动收缩和手工收缩。

在如图4.38所示的数据库属性的【选项】选项卡中选择【自动收缩】复选框将实现自动收缩。

SQL Server 2000服务器每30分钟检查数据库的空间使用情况。

如果发现大量闲置的空间,就会自动缩小数据库的文件大小。

图4.38 设置自动收缩功能利用企业管理器或DBCC SHRINKDATABASE 和 DBCC SHRINKFILE 语句可以完成手工收缩操作。

4.8.3 收缩数据文件和日志文件有什么不同不论是收缩数据文件还是日志文件,都会确实减少物理文件的大小,两者不同之处如下。

数据文件可以作为文件组或单独地进行手工收缩。

日志文件收缩分别考虑每个文件,基于整个日志文件进行收缩。

日志文件的收缩将删除非活动的VLF。

4.8.4 收缩操作是如何执行的文件的收缩操作始终从文件末端开始反向进行。

例如,如果要将一个5GB 的文件收缩到4GB,则SQL Server 2000将从文件的最后一个1GB开始释放尽可能多的空间。

如果文件中被释放的部分包含使用过的页面,则SQL Server 2000会将这些页面重新定位到保留的部分。

只能将数据库收缩到没有剩余的可用空间为止。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

--DUMP TRANSACTION jiaowu WITH NO_LOG //清除日志
--BACKUP LOG jiaowu WITH NO_LOG //下一步执行
--DBCC SHRINKDATABASE(jiaowu) //查询大小
这边有些资料,希望能有帮助
--压缩日志及数据库文件大小
/*--特别注意
请按步骤进行,未进行前面的步骤,请不要做后面的步骤
否则可能损坏你的数据库.
一般不建议做第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)。

相关文档
最新文档