首页 > 语言 > 关键词  > 正文

Sql Server 2005 数据库维护计划

2007-09-07 11:29 · 稿源:itbulo.com

这个星期开始为了减轻工作压力开始使用数据库维护计划(SQL Server Maintenance Plan Wizard)维护数据库,由于以前都没用过,在个人使用的免费版(Express)里也没有这个功能,所以现在好好学习了一番,这里总结一下。

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

以下是可以安排为自动运行的一些维护任务:

用新填充因子重新生成索引来重新组织数据和索引页上的数据。这确保了数据库页中包含的数据量和可用空间的平均分布,还使得以后能够更快地增长。

通过删除空数据库页压缩数据文件。

更新索引统计信息,确保查询优化器含有关于表中数据值分布的最新信息。这使得查询优化器能够更好地确定 访问数据的最佳方法,因为可以获得数据库中存储数据的详细信息。虽然 SQL Server 会定期自动更新索引统 计信息,但是此选项可以对统计信息立即进行强制更新。

对数据库内的数据和数据页执行内部一致性检查,确保系统或软件故障没有损坏数据。

备份数据库和事务日志文件。数据库和日志备份可以保留一段指定时间。这使您可以为备份创建一份历史记录 ,以便在需要将数据库还原到早于上一次数据库备份的时间的时候使用。还可以执行差异备份。

运行 SQL Server 代理作业。这可以用来创建可执行各种操作的作业以及运行这些作业的维护计划。

维护任务生成的结果可以作为报表写入文本文件,或写入 msdb 中的 sysmaintplan_log 和 sysmaintplan_log_detail 维护计划表。若要在日志文件查看器中查看结果,请右键单击“维护计划”,再单 击“查看历史记录”。

以下是详细说明:

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

任务检查指定数据库中所有对象 的分配和结构完整性。此任务可以检查单个数据库或多个数据库,您还可以选择是否也检查数据库索引,检查所有索引页以及表数据页的完整性。

此任务封装 DBCC CHECKDB 语句。

生成的代码:

--检查当前数据库,取消信息性消息

DBCC CHECKDB WITH NO_INFOMSGS

Shrink Database(收缩数据库任务)

收缩数据库’任务”对话框可以创建一 个任务,尝试减小所选数据库的大小。

此任务封装了 DBCC SHRINKDATABASE 命令。

选项:

Shrink database when it grows beyond

当数据库大小超过指定值时收缩数据库,指定引发此任务的数据库大小(MB)。

Amount of free space to remain after shrink

收缩后保留的 可用空间,当数据库文件中的可用空间达到此值时停止收缩。

Retain freed space in database files

选择在数据库文件中保留所释放的文件空间。如果指定 NOTRUNCATE 选项,数据文件好像没有收缩。

Return freed space to operating system

选择把数据文件中任何未使用空间被释放给操作系统。无需移动任何数据即可减小文件大小。

生成的代码:

--选择Retain freed space in database files

DBCC SHRINKDATABASE (N'AdventureWorks', 10, NOTRUNCATE)

--选择Return freed space to operating system

DBCC SHRINKDATABASE(N'AdventureWorks', 10, TRUNCATEONLY)

Reorganize Index(重新组织索引)

重新组织 SQL Server 数据库表和视图中的索引。 通过使用“重新组织索引”任务,包可以重新组织单个数据库或多个数据库中的索引。如果此任务仅重新组织单个数据库中的索引,则可以选择任务要重新组织其索引的视图或表。“重新组织索引”任务还包含压缩大型对象数据的选项。大型对象数据是具有 image 、text、ntext、varchar(max)、nvarchar(max)、varbinary(max) 或 xml 数据类型的数据。

此任务封装了 Transact-SQL ALTER INDEX 语句。

如果选择压缩大型对象数据,则该语句使用 REORGANIZE WITH(LOB_COMPACTION = ON) 子句,否则 LOB_COMPACTION 将设置为 OFF。

生成代码:(只选择了Employee表)

--选择compact large objects

ALTER INDEX [PK_Employee_EmployeeID] ON [HumanResources].[Employee] REORGANIZE WITH ( LOB_COMPACTION = ON )

--不选择

ALTER INDEX [PK_Employee_EmployeeID] ON [HumanResources].[Employee] REORGANIZE WITH ( LOB_COMPACTION = OFF )

Rebuild Index(重新生成索引)

重新生成 SQL Server 数据库表和视图中的索引。包可 以重新生成单个数据库或多个数据库中的索引。如果任务仅重新生成单个数据库中的索引,则可以选择任务要 重新生成其索引的视图和表。使用默认可用空间重新组织页删除数据库中表上的索引,并使用在创建索引时指 定的填充因子重新创建索引。

此任务封装 ALTER INDEX REBUILD 语句并提供下列索引重新生成选项:

Reorganize pages with the default amount of free space

指定 FILLFACTOR 百 分比或使用原始的 FILLFACTOR 量。

Change free space per page percentage to:

填充索引使用 PAD_INDEX 选项可以在索引创建过程中设置中间级页中的可用空间百分比。将每页的可用空间百分比更改,删除数据库中表上的索引,并使用新的、自动计算的填充因子重新创建索引,从而在索引页上保留指定的可用空间。

Sort results in tempdb

使用 SORT_IN_TEMPDB 选项,该选项确定在索引创建 过程中生成的中间排序结果的临时存储位置。使用索引的IGNORE_DUP_KEY 选项,该选项指定对唯一聚集或非聚集索引上多行 INSERT 事务中的重复键值的错误响应 。

Keep index online while reindexing

使用 ONLINE 选项,用户可以在索引操作期间访问基础表或聚集索引数据以及任何关联的非聚集索引。

生成代码:(只选择了Employee表)

ALTER INDEX [PK_Employee_EmployeeID] ON [HumanResources]. [Employee] REBUILD WITH ( FILLFACTOR = 90, PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, SORT_IN_TEMPDB = OFF, ONLINE = OFF )

Updata Statics(更新统计信息)

为指定的表或索引视图中的一个或多个统计信息组( 集合)更新键值分布信息。

此任务封装 UPDATE STATISTICS 语句。

All existing statistics

如果更新应用于所有统计信息,则暗示使用 WITH ALL 子句。

Column statistics only

如果更新仅 应用于列,则包含 WITH COLUMN 子句。

Index statistics only

如果更新仅应用于索引,则包含 WITH INDEX 子句。

Full scan

全部统计

Sample by

从每个索引所对应的表中抽样的数据,此样本的大小取决 于表中的行数和数据修改的频率。

生成代码:(只选择了Employee表)
UPDATE STATISTICS [HumanResources].[Employee]

WITH FULLSCAN

Clean Up History(清除历史记录)

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

此任务封装 sp_delete_backuphistory 系统存储过程并将指定日期作为参数传递给该过程。

选项:

Backup and restore history

Sql Server Agent job history

Maintenance plan history

生成代码:

以下为引用的内容:
declare @dt datetime select @dt = cast(N'2007-05-31T08:00:00' as datetime)
exec msdb.dbo.sp_delete_backuphistory @dt
GO
EXEC msdb.dbo.sp_purge_jobhistory @oldest_date=@dt
GO
EXECUTE msdb..sp_maintplan_delete_log null,null,@dt
GO

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

任务运行 SQL Server 代理作业。SQL Server 代理作业能够自动执行您需要重复执行的任务。

此任务封装 sp_start_job 系统 过程并把 SQL Server 代理作业的名称作为参数传递给该过程。

Back Up Database Task

备份用的,太熟悉了,不介绍了。

Maintenance Cleanup Task

此任务封装 master.dbo.xp_delete_file 系统过程,用来删除备份文件。

Execute T-SQL Statement Task

执行T-SQL 任务运行Transact-SQL 语句。这个任务用向导的时候是没有的,要到设计视图里面去拖出来。

Notify Operator Task

通知操作员任务将通知消息发送到 SQL Server 代理操作员。此任务是唯一一个不封装 Transact-SQL 语句或 DBCC 命令的数据库维护任务。

执行维护计划最好按一定的顺序,首先是执行检查数据库完整性,然后是收缩数据库,重新生成索引或者重新组织索引任务,最后是更新统计信息。

重新生成索引或者重新组织索引要根据情况选择不同的操作,两个一起选择没有什么意义。决定使用哪种碎片整理方法的第一步是分析索引以确定碎片程度。使用系统函数 sys.dm_db_index_physical_stats 可以检测特定索引、表或索引视图的所有索引、一个数据库中的所有索引或所有数据库中的所有索引中的碎片。知道碎片程度后,可以确定修复碎片的最佳方法。索引碎片不太多时,可以重新组织索引。不过,如果索引碎片非常多,重新生成索引则可以获得更好的结果。

我们公司这些任务都是一个星期运行一次,几个数据库加起来有200G,数据库也不算很大,每次运行要两个小时以上,所以都是在凌晨进行。如果进行的是重新生成索引那么在执行的时候表是无法访问的,现在也没什么更好的解决方案。这个问题还在继续学习中!

举报

  • 相关推荐
  • 金仓数据库26周年|淬火砺重器,万里再扬帆

    金仓数据库26年发展历程:从萨师煊教授70年代引入数据库概念,到王珊教授团队1999年创立金仓公司实现产业化突破,见证了中国数据库从无到有的发展。金仓坚持自主创新,打造KES融合数据库产品体系,拥有700多项专利,服务金融、能源等国家重点行业,装机量超百万套。公司构建产学研生态,培养数万名专业人才,推动国产数据库生态建设。站在新起点,金仓将继续以自主可控技术支撑千行百业数字化转型,助力数字中国建设。

  • 国内独家AI+操作系统TencentOS Server亮相2025中国国际金融展

    腾讯云TencentOS+Server历经15年技术积累,打造了国内独家AI+操作系统,已在农业银行、招商银行等金融机构核心系统落地应用。该系统具备性能提升、安全稳定等关键能力,支持国产CPU深度优化,实测性能提升9%-25%。其推出的TACO-LLM大模型推理加速器显著降低延迟,在金融信创生态实验室评测中获得权威认证。作为OpenCloudOS社区核心贡献者,TencentOS+Server已适配1697款硬件,覆盖四大架构,并孵化云原生OS"玄湾"等创新项目,成为国产操作系统规模化应用的标杆。

  • 国产化标杆!金仓数据库助力一汽奔腾核心业务数字化转型

    一汽奔腾在数字化转型中面临国外数据库系统的三大挑战:性能瓶颈、数据安全隐患和成本压力。通过国产数据库替换,实现千万级数据无缝迁移,采用智能转换工具缩短适配周期,完成核心系统改造。成效显著:数据主权回归,安全漏洞归零,订单处理峰值能力提升;成本结构优化,年节省可观;技术团队本土化。该项目为汽车行业提供了国产替代标杆,推动行业从技术跟跑向标准制定转变,目前正联合开发车联网专用数据库引擎,深化智能驾驶数据分析等场景应用。

  • 205斤小伙被大风吹倒 头部着地滚翻:幸无大碍

    6 月 9 日傍晚,山东滨州突发大风天气,一段监控视频记录下惊险一幕:一名 18 岁小伙张永翔在户外收拾桌椅时,被突如其来的大风吹倒,头部着地后翻滚一圈。幸运的是,张永翔并未受伤。 ​据他回忆,当晚阵风突然加大,他和同事们正在收拾店外的桌椅,结果被吹倒。另一名同事高波(体重 180 多斤)同样被吹倒,但迅速爬起后扶起了张永翔。

  • 雷军:未来5年小米研发投入预计2000亿

    今晚的小米发布会上,雷军公布了一项重磅计划:未来5年小米研发投入预计2000亿。 回顾过往,2021-2025年这5年里,小米已投入1050亿元深耕核心技术研发。 此般对比,意味着未来5年小米研发投入将实现翻倍冲刺”,直接跃升至过去5年的2倍。 尤其2025年,单年科研投入预计就达300亿元,这般砸钱”力度,无疑是要把技术护城河挖得更深更宽。

  • MCP server资源网站去哪找?国内MCP服务合集平台有哪些?

    在人工智能飞速发展的今天,AI模型与外部世界的交互变得愈发重要。一个好的工具不仅能提升开发效率,还能激发更多的创意。今天,我要给大家介绍一个宝藏平台——AIbase(<https://mcp.aibase.cn/>),一个专注于MCP(Model Context Protocol)服务的全球集合平台,它正在悄然改变AI应用开发的格局。 平台精心挑选了全球最受欢迎的MCP服务进行推荐。这些服务经过了市场的检验,具�

  • 首届央国企数智化与转型战略成果发布会在京召开,TencentOS Server展示应用成果

    6月26日,首届央国企数智化转型战略成果发布会在京举行,发布《央国企数智化发展研究报告》等重要成果。腾讯云受邀参会,其自研操作系统TencentOS Server凭借"西游四件套"等创新技术方案获得关注。该系统已实现超1000万套部署,支撑金融、政务等行业国产化需求,具备三大优势:1)性能提升方面,CPU利用率提升15-45%,整机能耗降低5-10%;2)技术创新方面,独创qGPU虚拟化技术可降低60%硬件成本;3)生态适配方面,已完成与国产主流硬件的互认证。目前该系统已助力农业银行等金融机构实现5%-25%性能提升,并成为金融、党政领域首选方案。作为国内三家具备Linux研发能力的厂商之一,腾讯云将持续打磨技术,支撑企业数字化转型需求。

  • 腾讯2026青云计划正式启动,首次开放课题资源库,探索校企合作新模式

    腾讯启动2026"青云计划",面向全球招募顶尖技术人才。该计划为2024-2026年毕业的博士生和2025-2026年毕业的本硕生提供行业顶级师资、充足算力资源和极具竞争力的薪酬。相比往年,新一期计划打造校企合作新模式,首次开放青云课题资源库,并推荐优秀人才直通招聘绿色通道。计划覆盖AI大模型、基础架构、高性能计算等十大技术领域,设置100余项技术课题。腾讯将持续投入基础科研和青年人才培养,2024年研发投入达706.86亿元,2018年以来累计投入3403亿元。多位青年人才已在导师带领下快速成长,部分研究成果已应用于微信等核心业务。腾讯还携手清华大学设立博士生联合培养实践基地,共同探索前沿科技边界。

  • MCP协议资源服务去哪找?国内MCP server资源网站推荐

    ​在人工智能技术飞速发展的今天,AI模型与外部工具和服务的交互需求日益增长。为了满足这一需求,一个名为 AIbase 的全球MCP服务器集合平台(https://mcp.aibase.cn/)应运而生,为开发者和企业提供了前所未有的便利和强大的功能支持。

  • 抓住人们对“Soulmate”的渴望,20天入账200万美金?

    6月17日,一款 AI 占星产品 Starla-Call the Universe 进入了 iOS 美国下载总榜前10,当笔者以为这又是一个昙花一现的产品时,它不仅能够持续坚守榜单 Top10长达半个月,而且到了6月24日,另一款产品 Astra-Life Advice 也进入了美榜前10,两款同类产品相继进入 Top10,并双双持续在榜超1周的时间。