数据库管理系统是现代应用程序的核心,保持数据库平稳顺畅运行是组织必须保证的底线。数据库性能工具可以帮助数据库管理员优化系统操作,避免或者预防性能问题。但是,在购买这些工具之前,DBA和IT经理们应该对评估不同产品要考虑的关键功能特性有明确的理解和认识。
在构建数据库性能管理能力时,有三种类型的工具可供考虑:其一是确保数据库系统级的性能水平最优化,其二是管理数据库结构的性能,帮助维护数据库中保存数据的效率,第三是监控SQL和应用性能,识别可以改善应用程序代码的问题点。
为帮助你判断组织需要哪些工具,我们下面会针对每种类型来介绍应该关注的功能特性。
不同的数据库性能工具提供了什么功能?
数据库系统监控和管理工具。这类型软件关注数据库系统内部因素,包括系统资源和数据库系统参数。它可以持续监视和报告数据库的状态,DBA可以设置性能阈值,一旦达到某个值就会触发告警。这些工具通常会提供一个指示面板,展示各种关键性能指标和阈值,同时还会有修改这些阈值设置以及其它参数的功能界面。这些界面通常会提供配置报表需求的机制,可以生成或定时生成生产环境的数据库性能报告。
此外,好的数据库系统性能工具还可以提供数据库资源使用量的信息,例如缓存池消耗的内存,CPU利用率,页面锁情况。更高级的工具还可以根据测量到的系统资源使用量提供性能优化推荐配置。
因为大多数数据库部署场景都不会只有一个实例,系统级的数据库性能工具应该能提供统一视图,使DBA可以在一个界面上管理多个实例。这种功能包括诸如自动恢复数据库实例的功能,以及定制安装向导功能。
数据库结构监控和管理产品。这种工具为DBA提供的功能可以帮助识别、分析和修复数据库空间碎片和空间使用问题。数据库分析工具监控、审查并对数据库结构存储方面的信息进行报告,例如表空间和索引,分析并改进空间利用率。
这些产品还可以自动分析可利用空间,管理诸如空间不足的问题,设定数据库对象可用空间上限,管理混乱和分散的数据。产品还提供达到这些条件后自动向DBA告警的功能。
许多数据库结构化性能工具还提供纠正问题的功能,这些产品可以给数据分配更多存储空间或者重组数据。重组数据就是重新整理数据,通常包含多个步骤的处理过程,必须对这些步骤管理执行。一些高级工具提供了识别数据库结构的能力,同时不影响数据库正常运行和提供给应用访问。
SQL监控和管理软件。这类型工具监视SQL的运行,支持DBA或数据库性能分析师基于资源利用率识别潜在问题程序和问题SQL语句。例如,SQL监控器可以按CPU利用率或者I/O请求量排序,所以关注优化最消耗资源的SQL语句就更容易些了。SQL监控工具还应该能找到SQL语句的调用源头,掌握SQL是来自某个特殊程序、存储过程、触发器还是终端用户。
在找到可能存在问题的语句之后,具备访问计划分析功能的SQL数据库性能工具可以针对个别语句和程序检查访问计划。访问计划是由数据库优化器组件制定的,包含的实际方法将用于规划数据库访问请求数据的计划。这些工具简化了SQL优化图表,可以直接可视化地展示解释路径,SQL优化向导可以用于优化性能并推荐修改SQL代码的方法。(注:访问计划指的是语句执行计划,是数据库收到SQL执行请求后对语句的详细处理过程。后文访问路径亦是此意。)
一些SQL数据库性能工具还提供了模拟生产环境的测试功能。通常,测试环境与生产环境的系统资源是不一样的,因此SQL访问路径可能差异很大,即便SQL代码没有任何变化执行情况可能也不一样。这些工具可以在测试环境模拟生产环境来消除这类问题。
市场上领先的供应商提供的数据库性能工具都涉及上述各种类型的功能特性。每种类型都有专门的工具可选,也有一些工具提供的功能涵盖了以上各类型。
选择性能工具的其它考虑因素
评估数据库性能工具时,还有下面一些重要因素要考虑:
待管理数据库类型有多种。异构数据库性能工具可以管理不同类型的数据库,使用相同或相似的界面,而同构数据库性能工具只能管理一种类型的数据库。主要使用固定一种数据库的机构,或者每位DBA专攻特定数据库的机构,应该考虑选择同构数据库性能工具,因为这种数据库性能工具可以对具体某一种数据库提供更全面的性能管理功能,这样查找和修复问题就更容易一些。
对于使用多种数据库类型的网站,DBA人员数量是有限的,这种时候异构数据库性能管理工具就有优势了,它们可以为每种数据库提供类似的功能,使得DBA监管多种平台更容易。此外,异构工具可以屏蔽不同数据库之间的差异,简化性能监控和优化任务。
不过,在选择异构工具时,要确保全面了解它对每种数据库支持的功能,是否能满足组织需要。这种类型的工具为所支持的每种数据库提供的性能管理功能在广度和深度方面差异很大,这是很常见的。
随时间推移持续度量。数据库性能工具具备识别和解决当前问题的功能是非常重要的,更重要的是还要能随着时间推移持续监控和分析数据库性能指标。大多数监视数据库系统、数据库结构和SQL的工具还会存储历史性能数据明细。这一特性通常称为数据库性能数据仓库,或者叫历史性能表。
保存数据库性能历史数据会帮助你识别长时间运行时的性能趋势。例如,根据性能度量的历史记录,你可以判断性能比以前更好了还是更差了。此外,建立性能基线,基于此基线度量未来性能情况也是重要功能,这种功能只有存储了历史性能数据才可能实现。
成本和支持。数据库性能工具的成本也因工具类型的不同而差异很大,供应商及其使用的报价方式都有很大差异。一些异构工具供应商按基础工具收费,而且管理不同的数据库类型要单独收费。还有的厂商基于管理的实例大小报价,也有的按使用产品时间按年计费。支持服务通常是7*24在线支持或电话支持。选择支持随时电话响应的供应商是非常明智的决定。
一旦你理解了不同数据库性能管理工具的核心需求和功能,下一步就是了解每种数据库工具领域中排行靠前的供应商和他们提供的数据库性能管理产品。