作为数据库管理员,您可能对因网络性能低下而接听大量电话而感到沮丧。如果系统无响应或滞后,则提高数据库性能的最佳方法是进行优化和调整活动。性能调整可以帮助您确定瓶颈,并确保您的基础架构可以管理增加的负载。
如何提高数据库性能
如果需要提高数据库性能,可以采取几种措施来防止和纠正可能的问题。以下调整技巧可以帮助您优化数据库性能并维护完整的操作环境。本指南包括针对MySQL,SQL Server和Oracle的性能改进数据库技巧。
提高数据库性能的最有效方法是实施正确的数据库性能分析和监视工具。SolarWinds的®数据库性能分析器(DPA)和数据库性能监视器(DPM)可帮助您提高MySQL的性能,Oracle数据库的性能和SQL Server的性能。这些工具具有高度的通用性,先进性和用户友好性。
1.实施基准
保持已建立的性能基准是有效调整的关键方面,因为它为您在出现问题时提供了参考点。基准可以帮助您快速轻松地确定高峰使用期,从而可以设置性能目标并准确了解系统功能。一致地衡量现有性能将对数据库的性能提供确切的期望。当调整将来可能出现的瓶颈时,这很有用。
2.使用自动工作量存储库(AWR)工具
如果希望提高Oracle数据库性能,请确保将自动工作负载存储库(AWR)功能用作Oracle监视工具。AWR收集,处理和维护性能统计信息,使您每天可以深入了解数据库运行状况。然后,您可以使用Oracle提供的自动数据库诊断监视器(ADDM)来获得对AWR统计信息的可行见解。通过同时使用AWR和ADDM,您可以长期显着提高Oracle数据库性能,增强调整能力并节省时间和金钱。
3.创建最佳索引
正确完成索引之后,可以帮助您优化查询执行时间并提高数据库性能。索引实现了一种数据结构,可帮助您保持井井有条并简化数据查找。索引可加快检索数据的过程,提高效率并节省您的时间和精力。
4.进行SQL调整
SQL被广泛认为是一种消息语言,因为当发送查询时,将返回数据。但是,客户端解决方案通常会创建效率低下的SQL语句,这可能会对数据库的性能产生负面影响。进行性能调整时,请仔细考虑消耗大量系统资源的SQL。如果要提高Oracle数据库性能,则可以利用Oracle SQL工具,例如查询优化器。通过关注您的SQL处理引擎,可以增强性能调整,确保您的SQL能够正常工作。
如果您希望提高SQL Server性能或MySQL性能,则利用查询优化器仍然很有用。在大多数情况下,性能问题是由编写不正确的SQL查询引起的。当您尝试优化这些查询时,会遇到一些障碍。这可能包括在使用IN或EXISTS以及决定编写联接还是子查询之间进行选择。查询优化器是具有成本效益的替代咨询服务,可以显着加快SQL查询的速度。许多查询优化器甚至解释了他们的建议,可以帮助您提高查询优化技能。
5.检查您的统计数据
在对SQL Server,MySQL或Oracle进行性能调整时,定期检查统计信息至关重要。您应该始终可以访问数据库,操作系统和应用程序度量标准的完整汇编,因为性能调整的意义不仅仅在于纠正性能问题。性能调整是至关重要的维护组件,应在应用程序的整个生命周期中执行。为此,您应该不断检查统计信息并完善收集和展示统计信息的过程,以随着公司的变化和发展提高效率。
性能问题的症状通常可以在数据中识别出来,这就是为什么不忽略统计数据至关重要的原因,它们在性能调整效率中起着关键作用。
6.优化CPU利用率
如果数据库的诊断功能无法解决特定问题,则可能需要执行手动性能调整过程。在调查此类问题时,请确保正确使用您的CPU。首先检查用户空间中的CPU利用率。这将验证当前是否有任何非数据库任务正在消耗CPU,这将限制共享CPU资源的数量。完成CPU使用率的确定之后,更容易纠正性能问题。这也可以帮助您澄清决策。
7.更新您的数据库版本
无论您要提高MySQL,Oracle还是SQL Server数据库性能,保持最新状态都是至关重要的。在旧版本中,查询的性能可能要好于新版本,但一般而言,新版本的性能往往更好。因此,最新的系统可能会遇到更稳定的性能。
8.考虑升级CPU
正如本指南已经提到的那样,您的CPU越好,数据库性能就会越快,越高效。因此,如果数据库无法正常运行,则应考虑升级到更高级别的CPU单元。如果您的CPU功能更强大,则在处理多个请求和应用程序时,它的压力将减小。此外,在评估CPU性能时,您必须跟踪所有性能方面。这应该包括CPU准备时间,该时间可以显示您的系统尝试使用CPU的时间,但是不能显示此时间,这是因为CPU的资源被占用了。
9.分配更多的内存
就像缺乏CPU一样,缺少内存也会影响数据库的效率。如果没有足够的可用内存,则数据库可能无法执行所要求的操作,从而导致数据库性能下降。为数据库提供更多的可用内存将提高性能和整体系统效率。
要确定是否需要分配更多的内存,请查看系统中有多少页面错误。如果故障数量很高(即成千上万),则主机的可用内存空间不足。因此,在尝试提高数据库性能时,应考虑总内存量和页面错误数。此过程将使您了解分配额外的内存是否会提高效率。
10.考虑碎片整理
如果您的数据库运行缓慢,则对数据进行碎片整理可能是一种有效的方法。当大量记录写入数据库并且时间流逝时,记录可能会分散在内部数据文件和磁盘本身中。磁盘碎片整理允许将相关数据分组在一起,从而加快与I / O相关的操作。这直接影响数据库性能和查询性能。确保在运行数据库时有足够的磁盘空间也很重要。如果要显着提高数据库性能,则应将磁盘碎片整理与确保有足够的磁盘空间结合使用。
11.使用正确的磁盘类型
仅从一个查询中检索结果可能需要从磁盘进行数百万次I / O操作。所需的操作量直接取决于查询需要访问以进行处理的数据量以及查询返回的数据量。因此,服务器中的磁盘类型可能会对查询性能产生显着影响。使用SSD磁盘可以提高查询性能和数据库性能。
12.审核访问
一旦确定数据库硬件运行状况良好,就应该检查哪些应用程序正在访问数据库。如果您的一项服务或应用程序的性能很差,请确保不要假设哪个应用程序导致了性能问题。劣势的数据库性能可能由多种因素引起或影响。整个数据库可能已被感染,或者单个客户端的性能可能很差。
如果数据库的所有客户端均性能不佳,则可能需要确认主机运行状况良好。在这种情况下,您的硬件可能正在努力应付负载。如果单个服务的响应时间很短,请深入研究该服务的指标以确定可能导致问题的原因。
13.了解服务实例的负载和响应时间
如果单个服务的数据库性能较差,请仔细查看该服务与数据库的通信方式。您应该调查以下内容:
执行哪些查询?
查询返回多少行?
查询(每个请求)执行一次的频率?
如果您正在运行一个服务的多个实例,那么所有实例都会受到影响还是仅仅是一个实例?
是否有任何原因导致每个请求应多次执行单个查询?
请记住,在数据库级别出现的问题可能植根于其他地方,并且问题的根源可能与如何访问数据库有关。一旦考虑了每个请求调用查询的频率,您可能会发现可以通过增强服务的数据库缓存来减少数据库查询的数量。如果您发现单个查询对每个请求执行多次的充分理由,则应用智能缓存策略可能是有利的。在某些情况下,这些策略可以显着提高性能。
14.不要忽视网络
忽略虚拟化基础架构的物理限制很容易,但是它们在性能中起着重要的作用。不幸的是,电缆,路由器和其他硬件可能会发生故障。如果运行数月后突然出现问题而没有任何问题,则说明您的基础架构可能遇到了物理问题。要确认这一点,您应该检查路由器,电缆和网络接口。您应该在出现问题的第一个迹象时检查这些组件,以便有最大的机会修复它,以免影响您的业务。
通常,过度紧张或过载的进程会丢弃数据包,因为它们的资源已耗尽。如果您的网络问题不是由硬件问题引起的,则过程级可见性可能是识别故障组件的有用方法。
如何使用DPA和DPM提高数据库性能
本文列出的大多数技巧可用于提高MySQL性能,Oracle数据库性能和SQL Server性能。正确的专业软件可以帮助您持续管理这些实践的实施,从而提高数据库性能,而不会使您不知所措。全面的专业工具,例如SolarWinds DPA和DPM,可以监视关键性能指标并为您提供各种诊断功能。使用正确的数据库监视解决方案,您可以深入了解数据库,并可以利用优化实用程序来提高性能。
SolarWinds数据库性能分析器(DPA)
SolarWinds DPA是一个跨平台的数据库性能调整和优化工具,支持 PostgreSQL,MySQL,Amazon Aurora,IBM DB2,SAP ASE,MariaDB,Oracle,Microsoft SQL Server和Azure SQL数据库。DPA使用响应时间分析方法来调整SQL和查询性能,使您能够交付引人注目的结果。响应时间分析(也称为等待时间分析)可分析完成所需操作的实际时间,而不是根据服务器运行状况进行估算。
dpa优化性能
该数据库管理软件有助于使资源调配与数据库性能保持一致,从而使您对硬件建议更具规范性。DPA具有SQL查询分析器,可用于识别资源供应如何影响数据库响应时间。这些功能还为开发人员提供了有关VMware基础架构及其如何影响数据库性能的独特视角。
DPA的另一个有用功能是历史存储库,它可以突出显示趋势和异常情况,这些趋势和异常情况很容易进行SQL调整。DPA使用历史数据来帮助您识别当前改进的机会,提供从5秒钟前到5年前的广泛数据。此见解可帮助您快速解决性能问题。
DPA提供了一系列令人印象深刻的高级功能,包括由机器学习提供支持的异常检测。它提供实时见解,具有索引和查询调整顾问的专家建议,以及同时监视多个活动会话的能力。借助能够快速找出复杂问题根本原因的多维性能分析,以及对SolarWinds PerfStack ™和AppStack ™仪表板的集成支持,DPA是功能强大且用途广泛的工具。
DPA也是用户友好的,具有动态直观的用户界面。它为大小型公司都提供了成本效益和可伸缩性,并且适合经验最少的数据库管理员。您可以在此处获得DPA的14天免费试用。
SolarWinds数据库性能监视器(DPM)
尽管SolarWinds DPA更加注重分析,但DPM提供了深入的监视功能。该工具为您提供了一种高效,便捷的方式来每天实时地监视数据库的性能。使用DPM,检查很简单,您可以获得专家指导,从而填补了监视堆栈中潜在的关键空白。
DPA提供24/7全天候实时监控,可帮助您实现KPI目标,以减少失败的部署,可用性,部署频率,MTTD,MTTR,变更的提前期等等。该工具向您发送有关服务器配置更改和性能不佳查询的即时建议。DPM是应用程序开发的理想选择,并且在DevOps团队中很受欢迎,它是保持数据库健康的一种手段。
DPA还是一种灵活的工具,允许您构建自定义的仪表板,因此您可以将优先级放在首位。仪表板具有数据库和系统的运行状况摘要,可让您跟踪指标并观察趋势。它们使您可以探索性能异常值,管理资源容量等等。
DPM可以帮助您降低变更失败率,更快地恢复并通过DPM笔记本在整个团队中分享您学到的知识。该实用程序允许您创建和共享带有文本,代码段,链接和图像的事后文档。使用DPM,可以通过将查询响应或行为与系统指标相关联来深入了解查询如何影响数据库。该工具还允许您隔离异常行为和潜在的影响因素,并探究查询的详细信息和性能(包括执行计划,示例等)。
该SaaS平台具有用户友好的基于Web的用户界面,使DPM适合经验不足的用户。像DPA一样,DPM提供跨平台支持,包括MySQL,MongoDB,PostgreSQL,Redis和Amazon Aurora。DPM 有14天的免费试用期。
性能改进数据库技巧入门
实现本指南中提到的技巧而不使您的团队不知所措的最有效方法是利用专业软件。尽管有许多可用的数据库监视和分析工具,但强烈建议使用SolarWinds DPA和DPM。这些工具具有可伸缩性,用户友好性,并提供了一系列适当的实用程序,旨在使您以最小的努力来显着提高数据库性能。