最近试用了下 Sql Server 2008 的    Maintenance Plans( 维护计划 ),感觉很不错很不错。一贯的延续了微软的风格,图形化界面操作,保准你掌握了这个,就能成为半个DBA了,哈哈,吹牛了,就是想说这个蛮不错的,特别是比这 Sql Server 2000 和 Sql Server 2005 来说,用户体验又好了一些。

废话不多说了,下面就开始详细介绍 Maintenance Plans( 维护计划 ) :

官方对维护计划,即  Maintenance Plans 的解释:维护计划向导可以用于帮助您设置核心维护任务,从而确保数据库执行良好,做到定期备份数据库以防系统出现故障,对数据库实施不一致性检查。维护计划向导可创建一个或多个 SQL Server 代理作业,代理作业将按照计划的间隔自动执行这些维护任务。它使您可以执行各种数据库管理任务,包括备份、运行数据库完整性检查、或以指定的间隔更新数据库统计信息。创建数据库维护计划可以让SQL Server有效地自动维护数据库,保持数据库运行在最佳状态,并为管理员节省了宝贵的时间。

其实用一句话来说,Maintenance Plans( 维护计划 ) 就是来帮你方便的管理和优化数据库。

其内部,仍然是封装了部分 T-Sql 语句和 job

Maintenance Plans( 维护计划 )主要能做的工作为:

1. 备份数据库(Back Up Database)

2. 更新统计信息(Update Statistics)

3. 检查数据库完整性(Check Database Integrity)

4. 清除历史记录(History Cleanup)

5. 清除维护(Maintenance Cleanup)

6. 收缩数据库(Shrink Database)

7. 通知操作员(Notify Operator)

8. 执行 Sql Server 代理作业(Execute SQL Server Agent Job)

9. 执行 T-SQL 语句(Execute T-SQL Statement)

10. 重新生成索引(Rebuild Index Task)

11. 重新组织索引(Reorganize Index)

1. 备份数据库(Back Up Database)

最常用,也是最重要的功能了,是用起来也很见很简单,直接从左边拖拽过来

之后,在“备份数据库任务” 上右键编辑或者直接双击红色的图标,进行详细配置,详细配置信息如下图所示:

大致一看,就能明白大多配置的意思。其中有几个还是需要特殊说明一下的。

数据库:该选项选择备份Sql Server 实例中的那几个库,可以多选

备份集过期时间:是备份的失效时间,数值在 0 -99999之间,0 代表永不过气,此选项也是比较有用的,如果磁盘空间不足,新的备份文件就会覆盖掉过期的备份文件

跨一个或多个文件备份数据库:适合多文件组的数据库

2. 更新统计信息

更新 MicrosoftSQL Server 中对 表和索引的统计信息,此任务使用 UPDATE STATISTICS 语句。这个还是蛮有用的,主要影响 Sql Server 创建更好的查询计划。

上图标红的按钮,可以查看该任务封装的SQL语句

3. 检查数据库完整性(Check Database Integrity)

其实就是 DBCC CHECKDB 的 T-Sql  的封装,没什么好说的。主要用来检查数据库的完整性,DBCC CHECKDB 及相关语句通常必须从磁盘将每个已分配的页读取到内存中,才能对其进行检查,所以极消耗性能,不建议在高峰期使用。

另外,鄙人一直找不到用 DBCC CHECKDB 这个语句的地方,可能还没有碰到相应的问题把,或者由于鄙人才疏学浅啦

4. 清除历史记录(History Cleanup)

使用“‘清除历史记录’任务”对话框,可以丢弃 msdb 数据库表中旧的历史信息。 此任务支持删除备份和还原历史记录、SQL Server 代理作业历史记录和维护计划历史记录。

其实个人观察,清除的应该是 日志里面的内容

5. 清除维护(Maintenance Cleanup)

这个功能很实用,绝对的实用,并且很简单,主要用来删除备份文件或其他文件,并且图形化界面,功能也很全面,有了这个功能,绝对不会再怕备份文件把磁盘占满了。

想当初,还写的是清除文件的bat,然后放到任务计划里面,现在想起来,那种操作真不犀利了,Sql Server 已经为我们考虑好了

详细配置看下图(主要包括:删除以下类型的文件、文件位置、文件保留时间):

6. 收缩数据库(Shrink Database)

这个功能鄙人不太常用,主要是用来减小数据库所占用的磁盘空间大小,下面就引用一段MSDN 的解释把:

使用“‘收缩数据库’任务”对话框可以创建一个任务,尝试减小所选数据库 的大小。使用下面的选项可以确定数据库收缩后在数据库中保留的未使用空间量(该百分比越大,数据库可收缩的量越小)。该数值取决于数据库中实际数据的百分 比。例如,某个 100 MB 数据库包含 60 MB 的数据和 40 MB 的可用空间,当可用空间百分比为 50% 时,则将保留 60 MB 的数据和 30 MB 的可用空间(因为 60 MB 的 50% 是 30 MB)。只会去除数据库中的多余空间。有效值为 0 到 100。

此任务执行 DBCC SHRINKDATABASE 语句。

7. 通知操作员(Notify Operator)

使用的也是比较少,不过随着数据库重要性的上升,这个任务的重要程度也会提升的

摘自MSDN:使用“‘通知操作员’任务”对话框可以向此维护计划中添加自动通知。若要使用此任务,必须启用数据库邮件并将 MSDB 正确配置为邮件主机数据库,而且还要具有一个带有有效电子邮件地址的 MicrosoftSQL Server 代理操作员。

此任务使用 sp_notify_operator 存储过程。

8. 执行 Sql Server 代理作业(Execute SQL Server Agent Job)

感觉比较鸡肋的功能,主要用来执行 job 的,不知道怎么用,还不如在 SQL Server Agent 里面设置 Job。

9. 执行 T-SQL 语句(Execute T-SQL Statement)

蛮有用的,设置也比较简单,超时时间最好设置下

10. 重新生成索引(Rebuild Index Task) 和 重新组织索引(Reorganize Index)

这两个比较重要,又比较常用,同时又有可比性,所以就放在一起说。其实,在维护中,一般只选择这两个中的其中一个,对于如何选择,则是表的大小和db请求压力等决定的。

重新生成索引比重新组织索引更彻底,更给力,但是对于在线DB来讲,影响也比较大.。下面是详细的解释:

无论何时对基础数据执行插入、更新或删除操作,SQL Server 数据库引擎都会自动维护索引。随着时间的推移,这些修改可能会导致索引中的信息分散在数据库中(含有碎片)。当索引包含的页中的逻辑排序(基于键值)与数 据文件中的物理排序不匹配时,就存在碎片。碎片非常多的索引可能会降低查询性能,导致应用程序响应缓慢。

您可以通过重新组织索引或重新生成索引来修复索引碎片。对于基于分区方案生成的已分区索引,可以在完整索引或索引的单个分区上使用下列方法之一。

重新组织索引:

若要重新组织一个或多个索引,可以使用带 REORGANIZE 子句的 ALTER INDEX 语句。此语句可以替代 DBCC INDEXDEFRAG 语句。若要重新组织已分区索引的单个分区,可以使用 ALTER INDEX 的 PARTITION 子句。

重新组织索引是通过对叶页进行物理重新排序,使其与叶节点的逻辑顺序 (从左到右)相匹配,从而对表或视图的聚集索引和非聚集索引的叶级别进行碎片整理。使页有序可以提高索引扫描的性能。索引在分配给它的现有页内重新组织, 而不会分配新页。如果索引跨多个文件,将一次重新组织一个文件,不会在文件之间迁移页。

重新组织还会压缩索引页。如果还有可用的磁盘空间,将删除此压缩过程中生成的所有空页。压缩基于 sys.indexes 目录视图中的填充因子值。

重新组织进程使用最少的系统资源。而且,重新组织是自动联机执行的。该进程不持有长期阻塞锁,所以不会阻止运行查询或更新。

索引碎片不太多时,可以重新组织索引。请参阅上面的表,了解有关碎片的指导原则。不过,如果索引碎片非常多,重新生成索引则可以获得更好的结果。

大型对象数据类型压缩

重新组织索引时,除了重新组织一个或多个索引外,默认情况下还将压缩聚集索引或基础表中包含的大型对象数据类型 (LOB)。数据类型 image、text、ntext、varchar(max)、nvarchar(max)、varbinary(max) 和 xml 都是大型对象数据类型。压缩此数据可以改善磁盘空间使用情况:

重新组织指定的聚集索引将压缩该聚集索引的叶级别(数据行)包含的所有 LOB 列。

重新组织非聚集索引将压缩该索引中属于非键(包含性)列的所有 LOB 列。

如果指定 ALL,将重新组织与指定的表或视图相关联的所有索引,并压缩与聚集索引、基础表或带有包含列的非聚集索引相关联的所有 LOB 列。

如果 LOB 列不存在,则忽略 LOB_COMPACTION 子句。

重新生成索引:

重新生成索引将删除该索引并创建一个新索引。此过程中将删除碎片,通过使用指定的或现有的填充因子设置压缩页来回收磁盘空间,并在连续页中对索引行重新排序(根据需要分配新页)。这样可以减少获取所请求数据所需的页读取数,从而提高磁盘性能。

可以使用下列方法重新生成聚集索引和非聚集索引:

带 REBUILD 子句的 ALTER INDEX。此语句将替换 DBCC DBREINDEX 语句。

带 DROP_EXISTING 子句的 CREATE INDEX。

每个方法执行的功能都相同,但如下表所示,也都各有优缺点需要考虑。

功能

ALTER INDEX REBUILD

CREATE INDEX WITH DROP_EXISTING

可以通过添加或删除键列、更改列顺序或更改列排序顺序来更改索引定义。*

是**

可以设置或修改索引选项。

可以在单个事务中重新生成多个索引。

可以联机重新生成大部分索引类型,而不会阻止运行查询或更新。

已分区索引可以重新分区。

可以将索引移动到另一个文件组中。

需要额外的临时磁盘空间。

重新生成聚集索引的操作将重新生成相关的非聚集索引。

除非指定关键字 ALL。

除非更改索引定义。

可以重新生成强制 PRIMARY KEY 和 UNIQUE 约束的索引,而不用删除并重新创建这些约束。

可以重新生成单个索引分区。

* 通过在索引定义中指定 CLUSTERED,可以将非聚集索引转换成聚集索引类型。执行此操作时必须将 ONLINE 选项设置为 OFF。不管将 ONLINE 设置成什么,都不支持从聚集索引到非聚集索引的转换。

** 如果通过使用相同的名称、列和排序顺序重新创建索引,则可以省略排序操作。重新生成操作将检查行是否在生成索引时进行了排序。

您也可以先使用 DROP INDEX 语句删除索引,然后使用一个单独的 CREATE INDEX 语句重新创建该索引,通过这种方式重新生成索引。将这些操作作为单独的语句执行有许多缺点,因此不推荐这样做。

Maintenance Plans(维护计划)详解【转】的更多相关文章

  1. sql server 的Maintenance Plans(维护计划)详解

    下面说下我遇到的场景,就是我通过数据库自身的维护计划建立了数据库收缩自动计划,却发现数据库并没有实际性收缩. 前奏自动化配置流程 数据库--管理---维护计划--双击(维护计划向导)--下一步--名称 ...

  2. linux查看端口及端口详解

    今天现场查看了TCP端口的占用情况,如下图   红色部分是IP,现场那边问我是不是我的程序占用了tcp的链接,,我远程登陆现场查看了一下,这种类型的tcp链接占用了400多个,,后边查了一下资料,说E ...

  3. 服务器.htaccess 详解以及 .htaccess 参数说明(转载)

    htaccess文件(或者”分布式配置文件”)提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录.作为用户,所能使用的命令受到限 ...

  4. .htaccess详解及.htaccess参数说明【转】

    目录(?)[-] htaccess 详解 htaccess rewrite 规则详细说明 RewriteEngine OnOff RewriteBase URL-path RewriteCond Te ...

  5. Linux 高可用(HA)集群之keepalived详解

    http://freeloda.blog.51cto.com/2033581/1280962 大纲 一.前言 二.Keepalived 详解 三.环境准备 四.LVS+Keepalived 实现高可用 ...

  6. Spring Boot 2.x 快速入门(下)HelloWorld示例详解

    上篇 Spring Boot 2.x 快速入门(上)HelloWorld示例 进行了Sprint Boot的快速入门,以实际的示例代码来练手,总比光看书要强很多嘛,最好的就是边看.边写.边记.边展示. ...

  7. 网络-02-端口号-linux端口详解大全

    端口详解 1 tcpmux TCP Port Service Multiplexer 传输控制协议端口服务多路开关选择器  2 compressnet Management Utility compr ...

  8. 【转】.htaccess详解及.htaccess参数说明

    .htaccess文件(或者”分布式配置文件”)提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录.作为用户,所能使用的命令受到 ...

  9. hadoop1.2.1+zk-3.4.5+hbase-0.94.1集群安装过程详解

    hadoop1.2.1+zk-3.4.5+hbase-0.94.1集群安装过程详解 一,环境: 1,主机规划: 集群中包括3个节点:hadoop01为Master,其余为Salve,节点之间局域网连接 ...

随机推荐

  1. WebLogic和Tomcat的区别

    J2ee开发主要是浏览器和服务器进行交互的一种结构.逻辑都是在后台进行处理,然后再把结果传输回给浏览器.可以看出服务器在这种架构是非常重要的. 这几天接触到两种Java的web服务器,做项目用的Tom ...

  2. 异步任务 -- FutureTask

    任务提交 之前在分析线程池的时候,提到过 AbstractExecutorService 的实现: public Future<?> submit(Runnable task) { if ...

  3. HDU - 1051 Wooden Sticks 贪心 动态规划

    Wooden Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)    ...

  4. [ 转载 ] Mysql 远程连接+开放80和3306端口 常用配置

    直接上方法: 首先配置CentOS下防火墙iptables规则: # vim /etc/sysconfig/iptables 向其中加入下列规则: -A INPUT -m state –state N ...

  5. md 添加 图片

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 1.在github上的仓库建立一个存放图片的文件夹,文件夹名字随意.如:img-fold ...

  6. 【贪心】Google Code Jam Round 1A 2018 Waffle Choppers

    题意:给你一个矩阵,有些点是黑的,让你横切h刀,纵切v刀,问你是否能让切出的所有子矩阵的黑点数量相等. 设黑点总数为sum,sum必须能整除(h+1),进而sum/(h+1)必须能整除(v+1). 先 ...

  7. 【扩展欧几里得】BZOJ1477-青蛙的约会

    一直在WA,后来我发现我把东西看反了…… [题目大意] 给出一个长度为L的环状坐标轴,两个点开始时位于(X,0).(Y,0).每次两点分别往右边移动m和n,问能否相遇? [思路] 由题意,可得: X+ ...

  8. android实现gif图播放、暂停、继续播放

    之前做过一个项目,在android上实现gif图的播放以及点击屏幕弹出窗口显示gif图片的暂停,之前一直用gifView的jar包实现gif图片的显示,但是在gif暂停.继续播放这块没有找到好的解决方 ...

  9. bzoj 4627: [BeiJing2016]回转寿司 -- 权值线段树

    4627: [BeiJing2016]回转寿司 Time Limit: 10 Sec  Memory Limit: 256 MB Description 酷爱日料的小Z经常光顾学校东门外的回转寿司店. ...

  10. 洛谷P2657 Loj10165 SCOI2009 windy数

    题目描述 windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道, 在A和B之间,包括A和B,总共有多少个windy数? 输入输出格式 输 ...