iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SQL调优的思路是什么
  • 957
分享到

SQL调优的思路是什么

2024-04-02 19:04:59 957人浏览 八月长安
摘要

本篇内容介绍了“sql调优的思路是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一般来说,需要关注下面

本篇内容介绍了“sql调优的思路是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一般来说,需要关注下面四种Top SQL

  • 消耗最多CPU的(逻辑io过多)

  • 导致过多物理I/O的

  • 执行次数较频繁的

  • 执行时间较长的

我们知道,一个语句的响应时间有个很著名的公式:
响应时间=服务时间+等待时间
其中服务时间就是CPU为执行该语句花费的时间。
服务时间=分析时间+递归时间+执行时间
分析时间是CPU用于分析语句的时间,递归时间是CPU用于语句的递归SQL的时间,剩下的则就是CPU用于执行语句的真正时间了。
那么,上面的这些时间信息从哪里来的?oracle提供的系统统计信息中就有部分的时间统计信息:

  • 服务时间=CPU used by this session

  • 分析时间=parse time cpu

  • 递归时间=recursive cpu usage

那么,执行时间就可以根据上面三个统计信息计算得出:
执行时间=CPU used by this session – parse time cpu – recursive cpu usage

  • 如果执行时间在整个响应时间中占较大的比例,那么下一步就是找出那些造成了最多逻辑IO的SQL语句,可以从statspack报告的SQL ordered by Gets部分找到。

  • 如果分析时间在整个响应时间中占较大的比例,那么下一步就是查找哪些SQL分析过多,这在statspack报告中在SQL ordered by Parse Calls中列出。

  • 如果等待时间在整个响应时间中占较大的比例,并且主要是块读取相关的等待时,下一步就是找出哪些SQL造成了过多的物理读,可以查看statspack报告中的SQL ordered by Reads部分。

那么,根据上面列出的一个简单的原则,我们需要关注三个关于CPU时间的统计信息: CPU used by this session, parse time cpu和recursive cpu usage,以及top5等待事件中和IO相关的等待时间。如果是其他的一些等待事件出现在Top5中,那么可能需要根据不同的等待事件来分析原因了。然后优先调优时间消耗最多的相关SQL。
除了上面的SQL ordered by Gets(逻辑IO最多),SQL ordered by Parse Calls(软解析过多),SQL ordered by Reads(物理IO过多),statspack还按照其他的一些方式列出了Top SQL,这些Top SQL在某些情况下都是需要给予特别关注的。比如:
  SQL ordered by Executions 执行次数超过100的
  SQL ordered by Sharable Memory 占用library cache超过1M的
  SQL ordered by Version Count 子cursor超过20的
如果没有statspack,那么根据v$sysstat/v$sesstat中的统计信息,结合v$sql/v$sqlarea,一样可以得到相关的SQL。
v$sql对于每一个子cursor都有一行统计记录,而v$sqlarea则对同一个父cursor只有一行统计记录,也就是v$sqlarea是对v$sql按照父cursor进行group by后的一个结果。这两个视图中都有诸如buffer_gets,parse_calls,disk_reads,,executions,sharable_mem等列,和报告列出Top SQL的条件对应。

“SQL调优的思路是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: SQL调优的思路是什么

本文链接: https://www.lsjlt.com/news/62861.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL调优的思路是什么
    本篇内容介绍了“SQL调优的思路是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一般来说,需要关注下面...
    99+
    2024-04-02
  • MySQL优化案例的初步思路是什么
    这期内容当中小编将会给大家带来有关MySQL优化案例的初步思路是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 今天想起这件同事处理的一...
    99+
    2024-04-02
  • MySQL的调优思路和实际操作
    这篇文章主要讲解了“MySQL的调优思路和实际操作”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL的调优思路和实际操作”吧! 调优思路: 1.设...
    99+
    2024-04-02
  • sql中的@是什么意思
    sql 中 @ 符号用于指定一个查询中可变的参数,对提高代码可读性、防止 sql 注入攻击、提高性能有帮助。语法:@parameter_name,其中 parameter_name 是参...
    99+
    2024-05-02
    代码可读性
  • 优化JS类和对象的重构思路是什么
    优化JS类和对象的重构思路是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。JavaScript 是一种易于学习的编程语言,编写运行并执...
    99+
    2024-04-02
  • sql中!=是什么意思
    sql查询中,!=运算符表示"不等于",比较两个表达式,若结果不同则为true,若结果相同则为false。语法:expression1 != expression2。如:selec...
    99+
    2024-05-02
  • sql是什么意思啊
    sql是一种用于操作关系数据库的编程语言,它允许用户通过使用特定的命令来查询、插入、更新和删除数据库中的数据。它是用于访问和操作关系数据库的标准语言,它由一组SQL命令组成,这些命令可以用于执行各种数据库操作。它不仅用于数据的查询和操作,还...
    99+
    2023-12-20
    SQL
  • sql中‖是什么意思
    sql 中的 | 运算符表示逻辑 or 运算,将两个布尔值连接起来,返回一个布尔值:如果两个操作数都是 true,结果为 true。如果两个操作数都是 false,结果为 false。如...
    99+
    2024-04-29
  • sql中^是什么意思
    sql中的^符号代表按位异或运算,用于比较两个二进制位并返回一个新位。规则为:0 ^ 0 = 0,0 ^ 1 = 1,1 ^ 0 = 1,1 ^ 1 = 0。用途包括:设置或取消标志位,...
    99+
    2024-04-28
  • sql中$是什么意思
    sql 中 $ 符号表示参数占位符,它被替换为查询中要使用的实际值。$ 符号可提高查询的可读性、可重用性和安全性。 SQL 中 $ 的含义 在 SQL 中,$ 符号指的是一个参数占位符...
    99+
    2024-05-02
  • sql中的coalesce是什么意思
    coalesce 函数返回一个列表中第一个非空值的表达式。它的语法为 coalesce(expression1, expression2, ..., expressionn),参数为要检...
    99+
    2024-05-07
  • MySQL慢sql优化思路详细讲解
    目录1、开启mysql慢查询1.1、查看慢查询相关配置1.2、查询慢查询sql耗时临界点1.3、开启Mysql慢查询2、explain查看SQL执行计划2.1、Select_type2.2、Type2.3、Po...
    99+
    2023-01-05
    mysql慢sql优化五个原则 mysql 慢sql 慢SQL优化
  • sql中的like是什么意思
    sql 中的 like 运算符用于寻找匹配特定模式的值,它使用通配符 %(匹配任意字符)和 _(匹配单个字符)。like 运算符通常与 where 子句结合使用,用于过滤表中的...
    99+
    2024-05-02
  • sql中的and是什么意思
    sql 中的 and 运算符将多个条件连接为一个复合条件,只有所有条件都为 true,复合条件才为 true。用于连接条件的语法:column1 = value1 and column2...
    99+
    2024-05-08
  • sql中的char是什么意思
    char 是 sql 中的字符字符串类型,具有固定长度,无论存储实际字符的数量,都会填充到指定长度。它用于存储特定长度的数据,确保对齐和防止数据不一致。 CHAR 在 SQL 中的含义...
    99+
    2024-05-09
  • sql中:=是什么意思
    在 sql 中,":=" 赋值运算符用于将表达式的结果存储在指定的变量中。它将等号右侧表达式的值立即赋给等号左侧的变量。此外,:= 在任何 sql 语句(如存储过程)中可用,是 set ...
    99+
    2024-05-02
  • sql中的sc是什么意思
    sc 在 sql 中表示 select count,用于计算记录数(无论是否满足条件)的聚合函数。sc 语法:select count(*) as record_count f...
    99+
    2024-05-02
    聚合函数
  • sql中的decimal是什么意思
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-15
  • sql server指的是什么意思
    这篇文章给大家分享的是有关sql server指的是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。一:sql server是什么意思sql server是一种数据库服务器...
    99+
    2024-04-02
  • sql中的in是什么意思
    sql 中 in 操作符用于检查指定值是否在给定集合中,通过检查指定列的值是否与集合中的值匹配来过滤数据,适用于查找与特定值匹配的值、检查值是否属于已知类别、优化查询性能。示例:查找包含...
    99+
    2024-04-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作