数据库文件设置为自动增长,会导致有业务过来的时候,系统增长磁盘,狂占io,发生错误.一定要手工扩展磁盘空间.
-----------------------------------------------------------------------------------------------------------
那这个手工扩展的话,仍然是扩展10%的量吗?

解决方案 »

  1.   

    SQL事务日志文件增的太快处理--下面的所有库名都指你要处理的数据库的库名1.清空日志
        DUMP  TRANSACTION  库名  WITH  NO_LOG    2.截断事务日志:
        BACKUP LOG 库名 WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小
        企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
            --选择日志文件--在收缩方式里选择收缩至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)
      

  2.   

    --可以设置
    create DATABASE MyDB
    ON PRIMARY                           --主文件组和主要数据文件
      ( NAME='MyDB_Primary',
       FILENAME= 'c:\MyDB_Prm.mdf',
       maxsize=100MB,
       filegrowth=1%--这里设置就可以了
      
       )
       LOG ON                               --日志文件
      ( NAME='MyDB_log',
       FILENAME ='c:\MyDB.ldf',
         maxsize=100MB,
       filegrowth=1%--这里
       )
      

  3.   

    压缩数据库mytest 的未使用空间为数据库大小的20%

    dbcc shrinkdatabase (mytest, 20)
    运行结果如下:
    DBCC execution completed. If DBCC printed error 
    messages, contact your system administrator. 
    (2) DBCC SHRINKFILE
    DBCC SHRINKFILE 命令压缩当前数据库中的文件。其语法如下:
    DBCC SHRINKFILE ( {file_name | file_id }
    { [, target_size] |
    [, {EMPTYFILE | NOTRUNCATE | TRUNCATEONLY}] } )
    各参数说明如下:
    ·file_id
    指定要压缩的文件的鉴别号(Identification number, 即ID)
    。文件的ID 号可以通过 FILE_ID()函数或如本章前面所讲述
    的Sp_helpdb 系统存储过程来得到。 
    ·target_size
    指定文件压缩后的大小。以MB 为单位。如果不指定此选项,SQL Server 就会尽最大可能地缩减文件。 
    ·EMPTYFILE
    指明此文件不再使用,将移动所有在此文件中的数据到同一文件组中的其它文件中去。执行带此参数的命令后,此文件就可以用ALTER DATABASE 命令来删除了。 其余参数NOTRUNCATE 和TRUNCATEONLY 与DBCC SHRINKDATABASE 
    命令中的含义相同。 例6-15: 压缩数据库mydb 中的数据库文件mydb_data2 的大小到1MB。 use mydb dbcc shrinkfile (mydb_data2, 1)