SQL Server自动增长过大的问题

一、背景

我们遇到的问题如下图所示:自动增长无端端就按照这样的比例进行增长;

(Figure1:问题所在)

尝试使用SSMS修改自动增长值,就会出现下面的错误:

(Figure2:错误信息)

遇到上面的问题,我们需要解决两个问题:

1. 把数据文件收缩到一定范围内的值,腾出磁盘空间;

2. 重新设置自动增长的值,可以按照百分比,也可以使用指定的空间大小,我个人倾向使用n*1024M这样的值,仅供参考;

3. 如果有需要你也可以进行日志文件的收缩;

二、解决过程

1. 使用下面的脚本修改自动增长的值:

--1024
ALTER DATABASE [DataBaseName]
MODIFY FILE ( NAME = N'FileName', FILEGROWTH = 1024MB )
GO

(图3:效果)

上面是执行了按照1024MB的空间执行的效果,如果你想用百分比的可以使用下面的SQL:

--10%
ALTER DATABASE [DataBaseName]
MODIFY FILE ( NAME = N'FileName', FILEGROWTH = 10%)
GO

2. 使用下面的脚本收缩数据:(默认是是以MB作为单位的)

--12000MB
USE [DataBaseName]
GO
DBCC SHRINKFILE (N'FileName' , 12000)
GO

(Figure4:效果)

(Figure5:效果)

3. 如果有需要你也可以进行日志文件的收缩:(需要简单模式,如果在完整模式下,你需要进行的是日志文件的备份)

--sql server 2005
BACKUP LOG [DataBaseName] WITH NO_LOG
DBCC SHRINKDATABASE ([DataBaseName],TRUNCATEONLY)

--sql server 2008
ALTER DATABASE [DataBaseName] SET RECOVERY SIMPLE
GO
-- 收缩
DBCC SHRINKFILE (2,30)  --30单位为M,日志文件的大小
GO
-- 更改模式为FULL ,再改回来,如果本身就已是simple,那就不必要了
ALTER DATABASE [DataBaseName] SET RECOVERY FULL
GO

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/SQLServer/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索问题
, 文件
, database
, 自动
, 自动增长
, databasename
, 收缩
, 日志文件过大
, 文件增长
自动增长值
sql server 自动增长、sqlserver 自动增长、sql server自动增长列、sqlserver 自动增长列、sqlserver id自动增长,以便于您获取更多的相关知识。

时间: 2024-09-23 00:29:27

SQL Server自动增长过大的问题的相关文章

SQL Server 自动增长清零

方法1: truncate table TableName删除表中的所有的数据的同时,将自动增长清零. 如果有外键参考这个表,这个方法会报错(即便主键表和外键表都已经没有数据),请参考方法2. PS: 用delete删除数据,自动增长不会清零的哦.   方法2: DBCC CHECKIDENT('TableName', RESEED, 0)不删除表的数据,直接重置自动增长的值.

关于SQL Server自动备份无法删除过期的备份文件奇怪现象

server|备份 关于SQL Server自动备份无法删除过期的备份文件 数据库服务器每天凌晨两点进行数据库备份,同时对5天前的数据库备份文件进行删除,不然的话就会把硬盘给撑爆的 windows的日志里给出信息:SQL Server Scheduled Job 'DB 维护计划"数据库维护计划1"的 DB 备份作业.' (0x2DA54A5BBEFC2B4A874428B91602C52A) - Status: 失败 - Invoked on: 2005-09-09 01:00:00

SQL Server 2012全力打造大数据特性

本文讲的是SQL Server 2012全力打造大数据特性,同其他IT厂商一样,微软公司也做好了全面进军"大数据"领域的准备,而即将发布的SQL Server 2012将成为微软大数据战略的支点.最新的数据库平台将提供一系列的大数据功能,其中包括Apache Hadoop连接器.开源分布式计算架构,能够存储并处理海量的结构化与非结构化数据. 为了让用户对于SQL Server 2012的大数据功能有一个更直观的了解,记者采访微软数据库平台专家Mark Kromer,让他来谈一谈SQL

sql server自动生成批量执行SQL脚本的批处理

  场景: DBA那边给我导出了所有的存储.函数等等对象的创建脚本,有上千个文件. 现在需要将这些对象创建脚本导入到另外一个库,如何解决呢? 手动一个个执行显然不太现实. 于是手动写了一个批处理,将所有的文件形成一个.SQL的脚本,最后以@生成的.SQL脚本方式导入到目标库中. OS环境:WINDOWS xp 脚本内容如下: @echo off if exist list.sql del list.sql /q :input cls set input=: set /p input= 请输入要进

SQL Server自动更新统计信息的基本算法

自动更新统计信息的基本算法是: · 如果表格是在 tempdb 数据库表的基数是小于 6,自动更新到表的每个六个修改. · 如果表的基数是大于 6,但小于或等于 500,更新状态每 500 的修改. · 如果基数大于 500,表为更新统计信息时(500 + 20%的表)发生了更改. · 表变量为基数的更改不会触发自动更新统计信息. 注意:此严格意义上讲,SQL Server 计算基数为表中的行数. 注意:除了基数,该谓语的选择性也会影响 AutoStats 生成.这意味着该统计信息可能无法更新的

SQL Server自动更新统计信息的基本算法_MsSql

自动更新统计信息的基本算法是: · 如果表格是在 tempdb 数据库表的基数是小于 6,自动更新到表的每个六个修改. · 如果表的基数是大于 6,但小于或等于 500,更新状态每 500 的修改. · 如果基数大于 500,表为更新统计信息时(500 + 20%的表)发生了更改. · 表变量为基数的更改不会触发自动更新统计信息. 注意:此严格意义上讲,SQL Server 计算基数为表中的行数. 注意:除了基数,该谓语的选择性也会影响 AutoStats 生成.这意味着该统计信息可能无法更新的

保护 SQL Server 数据库的十大绝招

server|数据|数据库 1.安装最新的服务包 为了提高服务器安全性,最有效的一个方法就是升级到 SQL Server 2000 Service Pack 3a (SP3a). 另外,您还应该安装所有已发布的安全更新. 2.使用 Microsoft 基线安全性分析器(MBSA)来评估服务器的安全性 MBSA 是一个扫描多种 Microsoft 产品的不安全配置的工具,包括 SQL Server 和 Microsoft SQL Server 2000 Desktop Engine (MSDE 2

SQL Server自动备份无法删除过期的备份文件

server|备份 数据库服务器每天凌晨两点进行数据库备份,同时对5天前的数据库备份文件进行删除,不然的话就会把硬盘给撑爆的 windows的日志里给出信息:SQL Server Scheduled Job 'DB 维护计划"数据库维护计划1"的 DB 备份作业.' (0x2DA54A5BBEFC2B4A874428B91602C52A) - Status: 失败 - Invoked on: 2005-09-09 01:00:00 - Message: 作业失败.  调度 28 (第

SQL Server自动备份脚本

以下脚本执行 SQL Server 中某一数据库全备份,并将备份文件传至另一机器.备份文件命名规则:数据库名_时间戳.BAK. 执行环境: windows 2003 server SQL Server 2000 @ECHO off REM Backup Database Script Log Files SET dbbak_dir=e:testdbbak if not exist %dbbak_dir% mkdir %dbbak_dir% REM Backup Database Name SET