• 史林枫:sqlserver数据库中数据日志的压缩及sqlserver占用内存管理设置


    使用sqlserver和IIS开发.net B/S程序时,数据量逐渐增多,用户也逐渐增多,那么服务器的稳定性就需要维护了。数据库如何占用更小内存,无用的日志如何瞬间清空?

    今天在给一个客户维护网站的时候,发现运行了2年的程序,数据库中主表的数据已超过70万条,按理说这样的数据量根本不算多。数据库是Sqlserver2012版本,服务器是Windows Server 2008。

    在远程连接过程中,IIS和sqlserver总是打开一会儿自动闪退,打开任务管理器,发现IIS进程占用几百MB内存,数据库进程占用了将近600M内存。为了让服务器稳定运行IIS和sqlserver 我强制重启了服务器。

    重启后,发现数据库和IIS都能正常打开使用了。数据库的日志文件已经有2个多GB,数据文件不到200MB。于是开始清空数据库日志:

    需要用以下命令:

    1 ALTER DATABASE [数据库名称]  SET RECOVERY SIMPLE -- 更改为简单模式
    2 
    3 DBCC SHRINKDATABASE([数据库名称])  --压缩数据库命令
    4 
    5 ALTER DATABASE [数据库名称] SET RECOVERY FULL  --恢复为完全模式

    先将数据库改为简单模式,再压缩数据库,最后恢复完全模式即可。这样数据库就回收了一部分空间,并清空了日志,只保留了必要的数据。

    另外,数据库占用的内存是可以调控的,这里说一下可视化界面的调控

    第一步:打开数据库 连接后  如图操作 右键选择属性

    选择“内存”管理 

    调整最大内存,即可。这样就可以限制数据库占用的内存了。当然,这只是临时做法,真正优化数据库内存还有很多方法,如分库,分表,读写分离,程序优化,sql语句优化等。

    关于IIS的内存占用过大,这里就只能优化程序了,某些算法的升级,请求次数的减少都可以帮助优化IIS所占用的内存。

  • 相关阅读:
    洛谷
    洛谷
    洛谷
    洛谷
    模板
    .
    洛谷
    洛谷
    洛谷
    poj 2955"Brackets"(区间DP)
  • 原文地址:https://www.cnblogs.com/jayshsoft/p/5997950.html
Copyright © 2020-2023  润新知