使用sqld360进行特定SQL调优分析

简介:     系统性能问题通常是一个综合性的问题,用户对系统的反馈,通常是一个“慢”字。对调优人员,要从网络、应用服务器、数据库服务器等多个层面进行定位,发现瓶颈。

 

 

系统性能问题通常是一个综合性的问题,用户对系统的反馈,通常是一个“慢”字。对调优人员,要从网络、应用服务器、数据库服务器等多个层面进行定位,发现瓶颈。如果落实到数据库层面,执行SQL速度慢就是开发运维DBA所需要关注的范畴。

对系统SQL的调优,一般而言不是“一锤子”买卖。而且,性能问题SQL也都遵循“二八原则”,即百分之八十的性能问题,是由百分之二十的SQL语句引起的。所以,每次集中处理两到三个SQL,之后看效果再决定下一步处理的方式,是比较合适的做法。

特定SQL语句调优,是我们进行调优的重点。一个SQL语句,从执行计划、统计量、实际消耗情况、历史执行情况到CBO计算,都需要综合进行考量。如何“一键式”进行相关信息收集,是本篇要解决的问题。sqld360是一个开源数据收集软件,在不安装任何组件的情况下,可以针对一个特定SQL语句进行数据收集,提供进一步分析处理。

 

1、软件下载安装

 

sqld360是一个完全开源软件,可以从官方网站https://github.com/mauropagano/sqld360进行下载。下载介质是一个单独的zip文件。

上传到服务器上,进行解压。

 

 

[root@localhost ~]# cd /

[root@localhost /]# mkdir sql360d

 

[root@localhost /]# cd sql360d/

[root@localhost sql360d]# ls -l

total 188

-rw-r--r--. 1 root root 189858 Jun 17 14:13 sqld360-master.zip

 

 

使用unzip进行解压,之后更改权限。

 

 

[root@localhost sql360d]# unzip sqld360-master.zip

Archive:  sqld360-master.zip

9c19c022a6439ed729335d156a2a332eb129c5a1

   creating: sqld360-master/

  inflating: sqld360-master/README.txt 

   creating: sqld360-master/js/

  inflating: sqld360-master/js/SQLd360_img.jpg 

  (篇幅原因,有省略……

  inflating: sqld360-master/sql/sqld360_9h_one_org_chart.sql 

  inflating: sqld360-master/sqld360.sql 

[root@localhost sql360d]#

 

[root@localhost sql360d]# cd ..

[root@localhost /]# chown -R oracle:oinstall sql360d/

[root@localhost /]# ls -l | grep sql360d/

[root@localhost /]# ls -l | grep sql360d

drwxr-xr-x.   3 oracle oinstall  4096 Jun 17 14:13 sql360d

 

 

2、执行脚本生成报告包

 

进入sqld360文件夹,执行sqlplus脚本。

 

 

[oracle@localhost ~]$ cd /sql360d/sqld360-master

[oracle@localhost sqld360-master]$ ls -l

total 48

drwxr-xr-x. 2 oracle oinstall  4096 Jun  8 09:14 js

-rwxr-xr-x. 1 oracle oinstall 28942 Jun  8 09:14 license.txt

-rw-r--r--. 1 oracle oinstall  2223 Jun  8 09:14 README.txt

drwxr-xr-x. 2 oracle oinstall  4096 Jun  8 09:14 sql

-rw-r--r--. 1 oracle oinstall  3361 Jun  8 09:14 sqld360.sql

 

 

如果需要分析一个sql语句,首先需要从v$sqlarea或者AWR报告中找到sql_id标示,之后以这个ID作为标示进行报告生成。

 

 

[oracle@localhost sqld360-master]$ sqlplus /nolog

 

SQL*Plus: Release 11.2.0.4.0 Production on Wed Jun 17 14:21:27 2015

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

SQL> conn / as sysdba

Connected.

SQL> @sqld360.sql 41hkr3jy35zn6 T

(若干输出)

 

     6579  06-17-2015 14:25   00287_sqld360_sicsdb_41hkr3jy35zn6_5_sql_monitor_reports_sqlmon.zip

    38246  06-17-2015 14:25   00288_sqld360_sicsdb_41hkr3jy35zn6_5_tcb_testcase_tcb.zip

    22621  06-17-2015 14:25   00289_sqld360_sicsdb_41hkr3jy35zn6_5_raw_data.html

    87420  06-17-2015 14:25   00290_sqld360_sicsdb_41hkr3jy35zn6_5_raw_data.txt

    75786  06-17-2015 14:25   00291_sqld360_sicsdb_41hkr3jy35zn6_5_raw_data.csv

    10240  06-17-2015 14:25   00292_sqld360_sicsdb_41hkr3jy35zn6_5_eadam_ash.tar

     7096  06-17-2015 14:25   99999_sqld360_41hkr3jy35zn6_drivers.zip

  1244946  06-17-2015 14:25   00005_sqld360_sicsdb_41hkr3jy35zn6_alert_sicsdb.log

  2519140  06-17-2015 14:25   00003_sqld360_sicsdb_41hkr3jy35zn6_tkprof_sort.txt

      139  06-17-2015 14:25   00000_readme_first.txt

---------                     -------

 27165029                     296 files

 

 

在目录中,会生成压缩包文件。

 

 

[oracle@localhost sqld360-master]$ ls -l

total 1420

drwxr-xr-x. 2 oracle oinstall    4096 Jun  8 09:14 js

-rwxr-xr-x. 1 oracle oinstall   28942 Jun  8 09:14 license.txt

-rw-r--r--. 1 oracle oinstall    2223 Jun  8 09:14 README.txt

drwxr-xr-x. 2 oracle oinstall    4096 Jun  8 09:14 sql

-rw-r--r--. 1 oracle oinstall 1402369 Jun 17 14:25 sqld360_sicsdb_41hkr3jy35zn6_localhost_20150617_1424.zip

-rw-r--r--. 1 oracle oinstall    3361 Jun  8 09:14 sqld360.sql

 

 

3、结果显示

 

加压之后,会发现是一系列htmltxtcvs文件构成的文件包。从其中的readme.txt,可以发现初始文件。

 

 

1. Unzip sqld360_sicsdb_41hkr3jy35zn6_localhost_20150617_1424.zip into a directory

2. Review 00001_sqld360_sicsdb_41hkr3jy35zn6_index.html

 

 

打开index.html文件,可以发现所有分析项目。



 

从上面项目中,可以发现对sqld360SQL语句的分析维度:

 

ü  数据库配置和SQL语句信息;

ü  执行计划和过程统计量,包括时间历史信息;

ü  对象统计量,基于CBO优化器基础;

ü  SQL性能信息;

ü  各种其他组件工具;

 

下面根据几个主要功能模块截图:

 

数据库信息:




 

SQL子游标执行计划:



 

执行计划分项统计:




 

数据历史统计量信息:



 

4、结论

SQLD360是第三方提供的SQL性能调优小工具,在进行复杂SQL处理或者求助第三方时,是一个不错的选择。


 

 

目录
相关文章
|
4月前
|
存储 SQL 关系型数据库
【MySQL调优】如何进行MySQL调优?从参数、数据建模、索引、SQL语句等方向,三万字详细解读MySQL的性能优化方案(2024版)
MySQL调优主要分为三个步骤:监控报警、排查慢SQL、MySQL调优。 排查慢SQL:开启慢查询日志 、找出最慢的几条SQL、分析查询计划 。 MySQL调优: 基础优化:缓存优化、硬件优化、参数优化、定期清理垃圾、使用合适的存储引擎、读写分离、分库分表; 表设计优化:数据类型优化、冷热数据分表等。 索引优化:考虑索引失效的11个场景、遵循索引设计原则、连接查询优化、排序优化、深分页查询优化、覆盖索引、索引下推、用普通索引等。 SQL优化。
717 15
【MySQL调优】如何进行MySQL调优?从参数、数据建模、索引、SQL语句等方向,三万字详细解读MySQL的性能优化方案(2024版)
|
3月前
|
SQL 存储 数据可视化
手机短信SQL分析技巧与方法
在手机短信应用中,SQL分析扮演着至关重要的角色
|
3月前
|
SQL Oracle 关系型数据库
Oracle SQL:了解执行计划和性能调优
Oracle SQL:了解执行计划和性能调优
94 1
|
4月前
|
SQL 分布式计算 数据库
SQL调优总结
数据库表的规范化和反规范化设计,设计合适的字段数据类型……
52 8
|
5月前
|
前端开发 Java JSON
Struts 2携手AngularJS与React:探索企业级后端与现代前端框架的完美融合之道
【8月更文挑战第31天】随着Web应用复杂性的提升,前端技术日新月异。AngularJS和React作为主流前端框架,凭借强大的数据绑定和组件化能力,显著提升了开发动态及交互式Web应用的效率。同时,Struts 2 以其出色的性能和丰富的功能,成为众多Java开发者构建企业级应用的首选后端框架。本文探讨了如何将 Struts 2 与 AngularJS 和 React 整合,以充分发挥前后端各自优势,构建更强大、灵活的 Web 应用。
69 0
|
5月前
|
Java XML Maven
跨越时代的飞跃:Struts 2 升级秘籍——从旧版本无缝迁移到最新版,焕发应用新生!
【8月更文挑战第31天】随着软件技术的发展,Struts 2 框架也在不断更新。本文通过具体案例指导开发者如何从旧版平滑升级到 Struts 2.6.x。首先更新 `pom.xml` 中的依赖版本,并执行 `mvn clean install`。接着检查 `struts.xml` 配置,确保符合新版本要求,调整包扫描器等设置。审查 Action 类及其注解,检查配置文件中的弃用项及插件。更新自定义拦截器实现,并验证日志配置。最后,通过一系列测试确保升级后的系统正常运行。通过这些步骤,可以顺利完成 Struts 2 的版本升级,提升应用的安全性和性能。
933 0
|
5月前
|
Java 开发者 前端开发
Struts 2、Spring MVC、Play Framework 上演巅峰之战,Web 开发的未来何去何从?
【8月更文挑战第31天】在Web应用开发中,Struts 2框架因强大功能和灵活配置备受青睐,但开发者常遇配置错误、类型转换失败、标签属性设置不当及异常处理等问题。本文通过实例解析常见难题与解决方案,如配置文件中遗漏`result`元素致页面跳转失败、日期格式不匹配需自定义转换器、`<s:checkbox>`标签缺少`label`属性致显示不全及Action中未捕获异常影响用户体验等,助您有效应对挑战。
110 0
|
5月前
|
SQL 数据采集 数据挖掘
为什么要使用 SQL 函数?详尽分析
【8月更文挑战第31天】
70 0
|
5月前
|
SQL 监控 关系型数据库
SQL性能监控与调优工具的神奇之处:如何用最佳实践选择最适合你的那一个,让你的数据库飞起来?
【8月更文挑战第31天】在现代软件开发中,数据库性能监控与调优对应用稳定性至关重要。本文对比了数据库内置工具、第三方工具及云服务工具等几种常用SQL性能监控与调优工具,并通过示例代码展示了如何利用MySQL的EXPLAIN功能分析查询性能。选择最适合的工具需综合考虑功能需求、数据库类型及成本预算等因素。遵循了解工具功能、试用工具及定期维护工具等最佳实践,可帮助开发者更高效地管理和优化数据库性能,迎接未来软件开发中的挑战与机遇。
69 0
|
5月前
|
SQL 数据采集 算法
【电商数据分析利器】SQL实战项目大揭秘:手把手教你构建用户行为分析系统,从数据建模到精准营销的全方位指南!
【8月更文挑战第31天】随着电商行业的快速发展,用户行为分析的重要性日益凸显。本实战项目将指导你使用 SQL 构建电商平台用户行为分析系统,涵盖数据建模、采集、处理与分析等环节。文章详细介绍了数据库设计、测试数据插入及多种行为分析方法,如购买频次统计、商品销售排名、用户活跃时间段分析和留存率计算,帮助电商企业深入了解用户行为并优化业务策略。通过这些步骤,你将掌握利用 SQL 进行大数据分析的关键技术。
276 0