好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

SQLServer2005数据维护实务

为了使 数据 库专区 href="http://dev.yesky.com/devsjk" target=_blank>SQL Server 数据 库的性能保持在最佳的状态, 数据 库管理员应该对每一个 数据 库进行定期的常规 维护 。这些常规任务包括重建 数据 库索引、检查 数据 库完整性,更新索引统计信息,

  为了使 数据 库专区 href="http://dev.yesky.com/devsjk" target=_blank>SQL Server 数据 库的性能保持在最佳的状态, 数据 库管理员应该对每一个 数据 库进行定期的常规 维护 。这些常规任务包括重建 数据 库索引、检查 数据 库完整性,更新索引统计信息, 数据 库内部一致性检查和备份等……

   1.关于SQL Server 2005 数据 维护 计划

  为了使SQL Server 数据 库的性能保持在最佳的状态, 数据 库管理员应该对每一个 数据 库进行定期的常规 维护 。这些常规任务包括重建 数据 库索引、检查 数据 库完整性,更新索引统计信息, 数据 库内部一致性检查和备份等。这些常规的 数据 库 维护 任务需要经常重复,而且繁琐耗时,所以往往被管理员忽略。而且,现在的 数据 库管理员一天到晚都被很多其他的任务压得喘不过气来,根本没有时间去进行日常 维护 工作。认识到这些问题的存在,SQL Server通过制定 维护 计划,提供了一个可以自动或手动执行这些日常 维护 事务的方法。当确定并创建了 维护 任务后,日常 维护 就会根据设定的时间段启动,最终会为企业提供更优质更稳定更值得信赖的 数据 库。

   2.SQL Server Service Pack 2 数据 维护 方面的新特性

  SQL Server Service Pack 2有许多改进的新功能和修复设置已经能够支持 维护 计划的创建功能。其中改进的特性包括:

   维护 计划设计器支持在一个 维护 计划里设置多个子计划,而且每个子计划可以具有创建独立任务计划书的功能。多重计划书是备受期待的特性,能够为不同的日常 维护 事务设置独立的计划表,例如备份、更新统计信息和执行SQL Server作业等。

  在SQL Server 2005推出的初期,如果企业想要运行 维护 计划,需要安装SQL Server集成服务(SQL Server Integration Services,SSIS)。不过现在 维护 计划已经作为一项完全支持的特性整合到了 数据 库引擎中,所以不再需要启动集成服务了。

  支持多服务器管理环境,并把 维护 计划信息记录到远程服务器,以适应不断增加的管理 维护 计划。可以从一台中央主服务器为所有的目标服务器设置 维护 计划。

  最早出现在SQL Server 2000备受欢迎的“清除 维护 任务”(Maintenance Cleanup Task)重新回到了 维护 计划里。这个任务可以删除 维护 计划执行以后任何残留下来的文件。

  下面列举几个人们预想不到的修复设置,用以改善相关的具体任务:

  SQL Server 2005 Service Pack 2为 数据 库备份 维护 计划任务增加了新的备份过期选项。如果您想让备份设置在某个特定日期之后失效,就可以通过设置备份过期选项来实现。SQL Server 2000具有这个特性,不过在SQL Server 2005发布之初被删除了。

  您可以另外指定备份文件夹的位置, 数据 库备份 维护 计划任务不会再重新设置这个选项为默认位置。

  过去当您运行备份 数据 库 维护 计划任务时,系统可能会错认为您要利用简单恢复模式为系统 数据 库创建差异和事务日志备份。现在这个缺陷已经修复了。

  历史清除 维护 计划任务能够将删除文件的时间选项设置成以小时为单位,大大减少了人工操作时间。

  更新统计信息任务提供原先在SQL Server 2000 维护 计划中包含的完全扫描或根据样本大小扫描的选项。

   3. SQL Server 维护 计划的任务

  一个 维护 计划可以在设定的时间段里运行全套的SQL Server 维护 任务,以确保 数据 库引擎里的关系 数据 库能够优化运行、执行日常备份和检查异常 数据 。作为SQL Server 数据 库引擎的一个特性,可以自动创建 数据 库 维护 计划并为这些日常 维护 设置计划书。一个全面的 维护 计划包括一下几个主要的任务:

  检查 数据 库完整性   更新 数据 库统计信息   重新组织 数据 库索引   进行 数据 库备份   清洗 数据 库历史操作 数据   收缩 数据 库   清除 维护 计划残留文件   执行SQL Server作业   清除 维护 任务

  注意,和SQL Server 2000不同,日志传送不再包括在 维护 计划的范畴里。可以在SQL Server Management Studio的 数据 库水平上或者通过TSQL脚本设置日志传送任务。

   3.1 检查 数据 库完整性任务

  检查 数据 库完整性任务(Check Database Integrity Task)检验选定的关系 数据 库中用户和系统表的性能和结构完整性,同时也可以选择检查所有索引页的完整性,检查对象可以是所有的系统和用户 数据 库,也可以是单个指定 数据 库。通过 维护 计划向导(Maintenance Plan Wizard)或使用TSQL语句能够手动创建该任务。

  下面的语法虽然简单,但提供了在AdventureWorks 数据 库中创建检查 数据 库完整性任务所需要的所有信息。

  USE [AdventureWorks]
  GO
  DBCC CHECKDB WITH NO_INFOMSGS
  GO

   3.2收缩 数据 库任务

  收缩 数据 库任务可以把 数据 库的物理空间和日志文件所占的空间减小到特定值,类似于SSMS中使用的自动收缩任务(Automatic Shrink Task)。收缩对象可以是所有 数据 库、所有系统 数据 库、所有用户 数据 库或单个任务中指定的 数据 库。该任务会根据您输入的百分比值消除多余的空间。此外,还可以设定各种表示大小(MB)的阈值,包括当 数据 库大小达到某特定值时的收缩量以及收缩后必须保留的可用空间大小等。可用空间可以保留在 数据 库里,也可以释放到操作系统中。

  以下的TSQL语法可以用来收缩AdventureWorks 数据 库,并把所释放的空间返回操作系统,且允许在收缩后保留15%的可用空间。

  USE [AdventureWorks]
  GO
  DBCC SHRINKDATABASE(N'AdventureWorks', 15, TRUNCATEONLY)
  GO

  但是,如果您要创建 维护 计划,最好不要选择收缩 数据 库的选项。首先, 数据 库收缩操作总是反向进行的,即从文件末端开始释放空间,把分配页移动到文件起始端的未分配页。由于所有的转移操作都会被记录到日志中,所以这个过程会增加事务日志文件的大小。其次,如果 数据 库的使用频率很高就会产生插入碎片, 数据 库文件又会不断增加。SQL Server 2005启用即时文件初始化来解决 数据 库自动增长缓慢的问题,因此增长过程会比过去快。不过,有时候会出现自动增长需要的空间不足的情况,这将造成 数据 库性能衰退。最后, 数据 库收缩和增长过于频繁会产生很多文件碎片。如果您想要收缩 数据 库空间,最好在 数据 库运行非高峰时段手动进行。

   3.3 重新组织索引任务

  重新组织索引任务(Reorganize Index Task)可以整理索引碎片,并压缩与所有表和视图相关联的或者与特定表和视图关联的聚集和非聚集索引,以此来来改善索引扫描性能。受此任务影响的 数据 库可以是所有的 数据 库、所有系统 数据 库、所有用户 数据 库或单个目标 数据 库。任务设置了可以用来选择压缩图像或文本等大型对象(LOB) 数据 的额外选项。

  为了更深入了解这个任务,下面举一个用来重新组织与AdventureWorks 数据 库中的[Sales]. [SalesOrderDetail]表关联的索引的TSQL语法实例,本例中还包含了压缩大型对象 数据 的选项:

  USE [AdventureWorks]
  GO
  ALTER INDEX [IX_SalesOrderDetail_ProductID]
  ON [Sales].[SalesOrderDetail]
  REORGANIZE WITH ( LOB_COMPACTION = ON )
  GO
  USE [AdventureWorks]
  GO
  ALTER INDEX [PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID]
  ON [Sales].[SalesOrderDetail]
  REORGANIZE WITH ( LOB_COMPACTION = ON )

查看更多关于SQLServer2005数据维护实务的详细内容...

  阅读:34次