SQL 数据库的 10 大性能调优错误

已发表: 2020-06-12

几家公司拥有 SQL 数据库; 但是,并非所有人都能以最佳方式执行其数据库。 请注意,性能调优涉及将系统文件设计同质化到数据库环境的过程。 您必须确保将任务分配给具有上述经验和知识的专家,以获得最佳结果。 如果您的组织没有对数据库进行性能调整,您最终可能会得到一个缓慢的数据库。 这将影响组织的内部和外部职能。 最终用户将感到满意,而您的业务将在增长和客户满意度方面遭受巨大损失。

另请阅读 – 什么是跟踪 Cookie

SQL 数据库与其他数据库有何不同?

如果您仔细检查当今流行的大多数编程语言,您会发现它们是专门为具有扎实数据结构和算法知识的熟练开发人员设计的。 但是,SQL 语言完全不同。 它由产品经理、数据科学家、设计师、分析师和其他人部署。 所有这些专业人员都可以访问数据库; 但是,他们可能不了解创建高效 SQL 查询的直觉。 这就是为什么如果您的组织中有 SQL 数据库,则必须确保您的 IT 团队精通 SQL 查询,以便能够及时识别和纠正性能调整问题。

如何创建更好的 SQL 查询?

每个开发人员都有创建更好 SQL 的目标; 然而,大多数时候,他们犯了一般性错误。 下面给出了从代码审查中获取的一般性能错误,这些错误导致 SQL 优化中错失机会 -

1. 坏连接的管理——SQL 数据库

开发人员创建配置代码以将数据库连接到应用程序或运行查询以从系统中获取数据。 在获取此数据并且不需要其他任何内容后,此代码必须关闭与系统的连接。 但是,这可能不会发生,从而导致非活动会话的数量增加。 系统中的这些非活动会话利用了宝贵的资源,这些资源可能已经部署用于数据库中当前活动的其他连接。

2.共享池和游标使用不当

开发人员通常在他们的武器库中拥有大部分仍在使用的光标。 当每次运行没有游标的代码时,Oracle 通常会面临一段艰难的时期。 这主要会对重复运行的 SQL 查询性能产生不利影响。 经验丰富且技术娴熟的 DBA 可以通过检查数据库中的 AWR 报告部分来识别此问题。

3.糟糕的SQL

SQL 数据库的性能取决于其查询的质量。 它的编写方式会影响系统的性能,这也包括执行后获取数据的连接条件。 对于大表,不要使用全表扫描。 编写 SQL 后,您应该为 SQL 查询合并一个解释计划,以了解在系统中运行它的成本。 您应该使用绑定变量、索引和游标来提高其效率。

4.使用不合标准的初始化参数

DBA 应该优化推荐的初始化参数。 使用这些参数将提高数据库的性能。 如果您不确定,请查看 Oracle 服务请求以获取建议。

5.错误的I/O数据库

优秀的 DBA 会为系统选择正确的硬件,以便将其轻松分布在多个磁盘上以提高速度。 专业人员应与网络团队的其他成员讨论该主题。 应考虑和讨论数据在系统中传输的速度。 应考虑路由器以及网络交换机的速度,以避免系统中的性能错误和其他瓶颈。

6.重做日志设置问题

您必须重做日志,因为它们存储来自重做缓冲区的数据,供 Oracle 在服务器崩溃时重做事务。 如果redo log的大小不够,系统会发生多次切换,导致性能问题。 这使得归档生成处理的负载很重。

7.缓冲区缓存和数据块的序列化

这是由于空闲列表集的撤消段不足而发生的。 这种情况对于具有多个活动用户的大型数据库来说是典型的,这些用户具有较少的撤消段,这会导致许多性能问题。

8. 全表扫描

在 SQL 查询中注意全表扫描。 这可以通过运行解释计划来完成。 来自美国可靠的数据库管理公司的经验丰富的 DBA,Remote.DBA.com 指出,反映不良 SQL 设计的查询可以通过使用索引来纠正。 这可以通过缩小所需数据的范围来完成。 在某些情况下,全表扫描对小表很有帮助。

9. 递归 SQL——SQL 数据库

如果使用得当,这对数据库开发人员来说是一个福音; 但是,您必须小心。 他们就像一把双刃剑。 如果你能把它们做对,数据库输出的效率就会提高,对数据库的性能产生积极的影响。

10. 磁盘内排序——SQL 数据库

对于数据库来说,这是一项非常昂贵的任务。 这意味着 SQL 设计很差,优化很差。 该问题可以在处理活动统计的 AWR 报告中快速识别。

因此,总而言之,可以说经验丰富且技术娴熟的 DBA 应该考虑从应用程序和数据库设计开始的不同性能调整领域。 在可扩展性和功能方面,数据库以及以性能调整为目标而创建的应用程序更好。

每个在 SQL 中处理性能调整的专业人员都应该随时了解最新技术并更新。 此外,这里列出的 10 个问题需要谨慎注意,以便在不影响 SQL 数据库性能的情况下快速纠正其他错误,从而将速度和功能提高到最佳极限。

作者简介:

Karen 是一名商业技术分析师。 她喜欢与朋友分享她的知识。