日期:2014-05-18  浏览次数:20476 次

求 SQL Server 数据库日常维护脚本 合集
大家维护数据库一段时间 肯定都有自己的常用脚本合集。小弟求各位高手的 SQL Server 数据库日常维护脚本,举例如下

1. 查看DB和DB内各个表所占的空间大小,监控是否有异常现象,如:某个表的大小突增等,利用 Report 功能比较方便直观
2. 检查 SQL Server Agent 是否正常,job 是否正常执行,重要,因为job一般都是清理数据或者汇总报表等操作的
3. 每周都要用 Profile 抓取 15 分钟执行的 SQL 放到 Table 里面,优化耗时、耗IO、耗CPU 等操作的SQL 语句
4. 检查数据文件和日志文件增长方式是否合理,是否设置增长最大值,推荐 增长变量 300M,最好不要用百分比
5. 查看 Error Logs,检查是否有错误发生,记录的比较全面,对于排错,也是不错的选择
6. 定期 收缩数据库、更新统计信息、收缩数据库和重新组织索引
。。。。。。

上面只是列举了 一小部分的日常工作,都可以用sql 脚本实现,现在希望各位高手能分享 自己工作中所总结出来的脚本合集 !!!!高分奉上!! 
请发到我邮箱 375201644@qq.com


------解决方案--------------------
SQL code

--备份
declare  @sql  varchar(8000)  
set  @sql='backup  database  mis    to  disk=''d:\databack\mis\mis'  
+rtrim(convert(varchar,getdate(),112))+'.bak'''  
exec(@sql) 

--删除15天前备份文件 
set  @sql='del  d:\databack\mis\mis'  
+rtrim(convert(varchar,getdate()-15,112))+'.bak'''  
exec  master..xp_cmdshell  @sql

--清除日志
dump transaction databasename with no_log 
backup log databasename with no_log

--查看数据库里用户和进程的信息
sp_who 

--查看SQL Server数据库里的活动用户和进程的信息
sp_who 'active' 

--查看SQL Server数据库里的锁的情况
sp_lock 
--进程号--50是SQL Server系统内部用的,进程号大于的才是用户的连接进程. 
--spid是进程编号,dbid是数据库编号,objid是数据对象编号

--收缩数据库日志文件的方法
--收缩简单恢复模式数据库日志,收缩后@database_name_log的大小单位为M 
backup log @database_name with no_log 
dbcc shrinkfile (@database_name_log, 5) 

--分析SQL Server SQL 语句的方法: 
set statistics time {on | off} 
set statistics io {on | off} 

--图形方式显示查询执行计划
--在查询分析器->查询->显示估计的评估计划(D)-Ctrl-L 或者点击工具栏里的图形

--文本方式显示查询执行计划
set showplan_all {on | off} 
set showplan_text { on | off } 
set statistics profile { on | off }

------解决方案--------------------
很多东西不是通用的好,是合适的好。

但愿渐渐的,LZ可以自己整理。

更多内容,参考