各位大侠:
        我用的是SQL数据库,每做一次查询或是其它的操作后,发现其的日志文件会增大,现在日志文件比数据文件大的多了,请问有何解决方法?
        在线等待,谢谢!

解决方案 »

  1.   

    用'管理'->'数据库维护计划'来做
    选择数据库->从数据库文件中删除未使用的空间
    当数据库的大小超过n MB 时收缩数据库 保留 10 % 的数据空间作为可用空间,这样可以调度执行,不需要手工操作。
    在维护日志备份序列时,调度 BACKUP LOG 语句按间隔发生,以使事务日志不致增长到超过预期的大小。 *当不维护日志备份序列时,指定简单恢复模式。 详情请参考 MS SQL Server 2000 联机丛书: 目录--> SQL Server构架-->数据库构架-->物理数据库构架-->事务日志构架-->收缩事务日志 目录--> SQL Server构架-->数据1: 删除LOG
    1:分离数据库   企业管理器->服务器->数据库->右键->分离数据库
    2:删除LOG文件
    3:附加数据库  企业管理器->服务器->数据库->右键->附加数据库
    此法生成新的LOG,大小只有500多K
       再将此数据库设置自动收缩
     或用代码: 
    下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。EXEC sp_detach_db @dbname = 'pubs'
    EXEC sp_attach_single_file_db @dbname = 'pubs', 
       @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
    2:清空日志
    DUMP  TRANSACTION  库名  WITH  NO_LOG    再:
    企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
    清空日志
    DUMP  TRANSACTION  库名  WITH  NO_LOG       或截断日志:
    backup log 数据库 with no_log--清除日志
    方法1、
    --在查询分析器,选中所要清理日志的数据库,执行如下SQL
    backup log 数据库名 with no_log
    DBCC SHRINKFILE ( 日志文件名或日志文件ID,要缩小的目标大小)
            
    在当前数据库下
    select fileid,groupid,name from sysfiles where groupid=0
    ----------------------------------------
    得到以下结果
    fileid     groupid          name  
    2          0                test_log 以上结果,fileid为日志文件ID,name为test_log你可以
    backup log test with no_log
    dbcc shrinkfile (2,2)
    or
    backup log test with no_log
    dbcc shrinkfile ('test_log',2)
    如果以后,不想要它变大,在数据库上点右键->属性->选项->故障恢复  模型 选择 简单模型就可以了!
    或用SQL语句
    alter database 数据库名 set recovery simple方法2、
    SQL SERVER企业管理器-》SQL SERVER组-》服务器-》数据库-》选中数据库实体-》右键-》所有任务-》分离数据库,
    然后到数据库所在物理路径下删除.ldf文件,再数据库右键-》所有任务-》附加数据库,即可,会重新生成日志文件。
    展开服务器组,然后展开服务器。
    展开"数据库"文件夹,右击要从中删除数据或日志文件的数据库,然后单击"属性"命令。
    若要删除数据文件,单击"常规"选项卡。若要删除日志文件,单击"事务日志"选项卡。
    在"文件名"列中,单击要删除的文件名旁边的箭头,再按 DELETE 键。文件名旁出现十字光标,表明将删除此文件。 
    说明  只能删除空文件。从数据库中删除文件之前,应先删除文件中的所有对象,并收缩该数据库