如何选择合适的数据库性能工具?

数据库管理系统是现代应用程序的核心,保持数据库平稳顺畅运行是组织必须保证的底线。数据库性能工具可以帮助数据库管理员优化系统操作,避免或者预防性能问题。但是,在购买这些工具之前,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在线支持或电话支持。选择支持随时电话响应的供应商是非常明智的决定。

一旦你理解了不同数据库性能管理工具的核心需求和功能,下一步就是了解每种数据库工具领域中排行靠前的供应商和他们提供的数据库性能管理产品。

【编辑推荐】

原文地址:https://www.cnblogs.com/syncnavigator/p/10198359.html

时间: 2024-10-26 08:59:18

如何选择合适的数据库性能工具?的相关文章

(转)NoSQL系列:选择合适的数据库

内容目录: 为什么使用NoSQL数据库? 键值数据库 文档数据库 列族数据库 图数据库 附思维导图 参考 NoSQL系列:选择合适的数据库 为什么使用NoSQL数据库? 阻抗失衡 关系模型和内存中的数据结构不匹配 采用更为方便的数据交互方式提升开发效率 待处理的数据量很大 数据量超过关系型数据库的承载能力 大集群的出现 在成本方面,集群中应用关系数据库,许可费用是一笔很大的支出: 横向扩展和纵向扩展:关系数据库一般只能是纵向扩展,通过对单机服务器的性能换代增强而实现:而对于扩展到多个服务器, D

12.app后端如何选择合适的数据库产品

app后端的开发中,经常要面临的一个问题是:数据放在哪里? mysql ?redis?mongodb? 现在有这么多优秀的开源数据库产品,怎么根据业务场景来选择合适的数据? 常用的数据库产品的优缺点又是什么呢? 通过阅读这篇文章,能帮你解决以上的疑惑,使你在碰到数据存储选择问题时思路更清晰. 1. redis,mongodb,mysql存储数据的区别 数据,就涉及读和写这两个问题.出于性能的考虑,当然希望读和写的速度越快越好. 计算机中,数据一般都放在内存或硬盘,众所周知,内存的读写速度比硬盘快

小蚂蚁学习mysql性能优化(7)--数据库结构优化--选择合适的数据类型

关于SQL以及索引优化的部分终于学习完了,今天开始进入第二层次的学习,数据库的结构优化,第一部分,选择合适的数据类型. 数据类型的选择,重点在于合适二字. 1.    使用可以存下数据的最小的数据类型 比如,一个时间类型的一个数据,可以使用varchar,可以使用datetime,还可以使用int,如何选择,就看哪一种类型对我们来说是最小的,不言而喻,int类型相对来说是最小的数据类型. 2.    使用简单的数据类型. int类型要比varchar类型在mysql处理上简单的多,用int类型来

谈谈数据库中MyISAM与InnoDB区别 针对业务类型选择合适的表

MyISAM:这个是默认类型,它是基于传统的ISAM类型, ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法. 与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具. MyISAM表格可以被压缩,而且它们支持全文搜索.它们不是事务安全的,而且也不支持外键.如果事物回滚将造成不完全回滚,不具有原子性.如果执行大量的SELECT,MyISAM是更好的选择. MyIASM是IASM表的新版本,有如下扩展

为MySQL选择合适的备份方式

数据库的备份是极其重要的事情.如果没有备份,遇到下列情况就会抓狂: UPDATE or DELETE whitout where- table was DROPPed accidentally- INNODB was corrupt- entire datacenter loses power- 从数据安全的角度来说,服务器磁盘都会做raid,MySQL本身也有主从.drbd等容灾机制,但它们都无法完全取代备份.容灾和高可用能帮我们 有效的应对物理的.硬件的.机械的故障,而对我们犯下的逻辑错误却

Hadoop集群选择合适的硬件配置

为Hadoop集群选择合适的硬件配置 随着Apache Hadoop的起步,云客户的增多面临的首要问题就是如何为他们新的的Hadoop集群选择合适的硬件. 尽管Hadoop被设计为运行在行业标准的硬件上,提出一个理想的集群配置不想提供硬件规格列表那么简单. 选择硬件,为给定的负载在性能和经济性提供最佳平衡是需要测试和验证其有效性.(比如,IO密集型工作负载的用户将会为每个核心主轴投资更多). 在这个博客帖子中,你将会学到一些工作负载评估的原则和它在硬件选择中起着至关重要的作用.在这个过程中,你也

转载:SqlServer数据库性能优化详解

本文转载自:http://blog.csdn.net/andylaudotnet/article/details/1763573 性能调节的目的是通过将网络流通.磁盘 I/O 和 CPU 时间减到最小,使每个查询的响应时间最短并最大限度地提高整个数据库服务器的吞吐量.为达到此目的,需要了解应用程序的需求和数据的逻辑和物理结构,并在相互冲突的数据库使用之间(如联机事务处理 (OLTP) 与决策支持)权衡. 对性能问题的考虑应贯穿于开发阶段的全过程,不应只在最后实现系统时才考虑性能问题.许多使性能得

mysql数据库性能优化(包括SQL,表结构,索引,缓存)

优化目标减少 IO 次数IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是收效最明显的优化手段.降低 CPU 计算除了 IO 瓶颈之外,SQL优化中需要考虑的就是 CPU 运算量的优化了.order by, group by,distinct … 都是消耗 CPU 的大户(这些操作基本上都是 CPU 处理内存中的数据比较运算).当我们的 IO 优化做到一定阶段之后

数据库性能调优(转)

数据库性能调优 SQLServer性能监控 这套性能优化的清单将至少准科学的帮助你找出你的SQLServer任何明显的性能问题.说是这样说,SQLServer的性能调优仍然是很困难的.我试图用这套清单去找出“容易”的sqlserver性能问题,困难的留待稍后.我这样做是因为很容易将容易和困难的的性能调优问题搞混.通过列出一个“容易”的性能调优范围,就很容易的将这些问题解决,一旦解决了这些容易的问题,那么你就能集中去解决更困难的问题. 使用这个SQLServer性能调优清单的一个好处是,它将不仅仅