使用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处理或者求助第三方时,是一个不错的选择。


 

 

目录
相关文章
|
3月前
|
SQL 数据库 开发者
MSSQL性能调优实战技巧:索引优化、SQL语句微调与并发控制策略
在Microsoft SQL Server(MSSQL)的管理与优化中,性能调优是一项复杂但至关重要的任务
|
22天前
|
存储 SQL 关系型数据库
【MySQL调优】如何进行MySQL调优?从参数、数据建模、索引、SQL语句等方向,三万字详细解读MySQL的性能优化方案(2024版)
MySQL调优主要分为三个步骤:监控报警、排查慢SQL、MySQL调优。 排查慢SQL:开启慢查询日志 、找出最慢的几条SQL、分析查询计划 。 MySQL调优: 基础优化:缓存优化、硬件优化、参数优化、定期清理垃圾、使用合适的存储引擎、读写分离、分库分表; 表设计优化:数据类型优化、冷热数据分表等。 索引优化:考虑索引失效的11个场景、遵循索引设计原则、连接查询优化、排序优化、深分页查询优化、覆盖索引、索引下推、用普通索引等。 SQL优化。
171 15
【MySQL调优】如何进行MySQL调优?从参数、数据建模、索引、SQL语句等方向,三万字详细解读MySQL的性能优化方案(2024版)
|
23天前
|
SQL 分布式计算 数据库
SQL调优总结
数据库表的规范化和反规范化设计,设计合适的字段数据类型……
35 8
|
2月前
|
Java XML Maven
跨越时代的飞跃:Struts 2 升级秘籍——从旧版本无缝迁移到最新版,焕发应用新生!
【8月更文挑战第31天】随着软件技术的发展,Struts 2 框架也在不断更新。本文通过具体案例指导开发者如何从旧版平滑升级到 Struts 2.6.x。首先更新 `pom.xml` 中的依赖版本,并执行 `mvn clean install`。接着检查 `struts.xml` 配置,确保符合新版本要求,调整包扫描器等设置。审查 Action 类及其注解,检查配置文件中的弃用项及插件。更新自定义拦截器实现,并验证日志配置。最后,通过一系列测试确保升级后的系统正常运行。通过这些步骤,可以顺利完成 Struts 2 的版本升级,提升应用的安全性和性能。
94 0
|
2月前
|
Java 开发者 前端开发
Struts 2、Spring MVC、Play Framework 上演巅峰之战,Web 开发的未来何去何从?
【8月更文挑战第31天】在Web应用开发中,Struts 2框架因强大功能和灵活配置备受青睐,但开发者常遇配置错误、类型转换失败、标签属性设置不当及异常处理等问题。本文通过实例解析常见难题与解决方案,如配置文件中遗漏`result`元素致页面跳转失败、日期格式不匹配需自定义转换器、`<s:checkbox>`标签缺少`label`属性致显示不全及Action中未捕获异常影响用户体验等,助您有效应对挑战。
67 0
|
2月前
|
SQL 数据采集 数据挖掘
为什么要使用 SQL 函数?详尽分析
【8月更文挑战第31天】
22 0
|
2月前
|
SQL 监控 关系型数据库
SQL性能监控与调优工具的神奇之处:如何用最佳实践选择最适合你的那一个,让你的数据库飞起来?
【8月更文挑战第31天】在现代软件开发中,数据库性能监控与调优对应用稳定性至关重要。本文对比了数据库内置工具、第三方工具及云服务工具等几种常用SQL性能监控与调优工具,并通过示例代码展示了如何利用MySQL的EXPLAIN功能分析查询性能。选择最适合的工具需综合考虑功能需求、数据库类型及成本预算等因素。遵循了解工具功能、试用工具及定期维护工具等最佳实践,可帮助开发者更高效地管理和优化数据库性能,迎接未来软件开发中的挑战与机遇。
36 0
|
2月前
|
SQL 关系型数据库 MySQL
SQL性能调优的神奇之处:如何用优化技巧让你的数据库查询飞起来,实现秒级响应?
【8月更文挑战第31天】在现代软件开发中,数据库性能至关重要。本文通过一个实战案例,展示了从慢查询到秒级响应的全过程。通过对查询的详细分析与优化,包括创建索引、改进查询语句及数据类型选择等措施,最终显著提升了性能。文章还提供了示例代码及最佳实践建议,帮助读者掌握SQL性能调优的核心技巧。
46 0
|
2月前
|
SQL 数据挖掘 BI
【超实用技巧】解锁SQL聚合函数的奥秘:从基础COUNT到高级多表分析,带你轻松玩转数据统计与挖掘的全过程!
【8月更文挑战第31天】SQL聚合函数是进行数据统计分析的强大工具,可轻松计算平均值、求和及查找极值等。本文通过具体示例,展示如何利用这些函数对`sales`表进行统计分析,包括使用`COUNT()`、`SUM()`、`AVG()`、`MIN()`、`MAX()`等函数,并结合`GROUP BY`和`HAVING`子句实现更复杂的数据挖掘需求。通过这些实践,你将学会如何高效地应用SQL聚合函数解决实际问题。
42 0
|
2月前
|
网络协议 NoSQL 网络安全
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
下一篇
无影云桌面