使用sqld360進行特定SQL調優分析
系統效能問題通常是一個綜合性的問題,使用者對系統的反饋,通常是一個“慢”字。對調優人員,要從網路、應用伺服器、資料庫伺服器等多個層面進行定位,發現瓶頸。如果落實到資料庫層面,執行 SQL 速度慢就是開發運維 DBA 所需要關注的範疇。
對系統 SQL 的調優,一般而言不是“一錘子”買賣。而且,效能問題 SQL 也都遵循“二八原則”,即百分之八十的效能問題,是由百分之二十的 SQL 語句引起的。所以,每次集中處理兩到三個 SQL ,之後看效果再決定下一步處理的方式,是比較合適的做法。
特定 SQL 語句調優,是我們進行調優的重點。一個 SQL 語句,從執行計劃、統計量、實際消耗情況、歷史執行情況到 CBO 計算,都需要綜合進行考量。如何“一鍵式”進行相關資訊收集,是本篇要解決的問題。 sqld360 是一個開源資料收集軟體,在不安裝任何元件的情況下,可以針對一個特定 SQL 語句進行資料收集,提供進一步分析處理。
1 、軟體下載安裝
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 、結果顯示
加壓之後,會發現是一系列 html 、 txt 和 cvs 檔案構成的檔案包。從其中的 readme.txt ,可以發現初始檔案。
1. Unzip sqld360_sicsdb_41hkr3jy35zn6_localhost_20150617_1424.zip into a directory
2. Review 00001_sqld360_sicsdb_41hkr3jy35zn6_index.html
開啟
index.html
檔案,可以發現所有分析專案。
從上面專案中,可以發現對 sqld360 對 SQL 語句的分析維度:
ü 資料庫配置和 SQL 語句資訊;
ü 執行計劃和過程統計量,包括時間歷史資訊;
ü 物件統計量,基於 CBO 最佳化器基礎;
ü SQL 效能資訊;
ü 各種其他元件工具;
下面根據幾個主要功能模組截圖:
資料庫資訊:
SQL
子游標執行計劃:
執行計劃分項統計:
資料歷史統計量資訊:
4 、結論
SQLD360 是第三方提供的 SQL 效能調優小工具,在進行復雜 SQL 處理或者求助第三方時,是一個不錯的選擇。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29863023/viewspace-1815850/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用SQL調整顧問進行語句優化SQL優化
- 通過ADDM進行SQL調優SQL
- 透過ADDM進行SQL調優SQL
- 使用SQL Profile進行SQL優化案例SQL優化
- 使用JRockit Mission Control進行效能分析和調優
- 使用VisualVM對JAVA程式進行效能分析及調優LVMJava
- 大廠是怎麼進行SQL調優的?SQL
- ORACLE 使用TRACE進行SQL效能分析OracleSQL
- 使用dbms_sqltune進行SQL優化SQL優化
- 分析從管理員角度對Hadoop進行調優Hadoop
- 使用DBMS_PROFILER進行PL/SQL效能分析SQL
- SQL Server調優系列進階篇(查詢優化器的執行方式)SQLServer優化
- SQL調優SQL
- 【sql調優之執行計劃】使用hint(五)Hint for parallelSQLParallel
- 【sql調優之執行計劃】使用hint(四)Hints for JoinSQL
- 使用hint來調優sql語句SQL
- 循序漸進調優union相關的sqlSQL
- 生產sql調優之統計資訊分析SQL
- 【sql調優之執行計劃】使用hint(三)Hints for Query TransformationsSQLORM
- 【sql調優之執行計劃】使用hint(二)Hints for Access PathsSQL
- oracle 通過statspace 進行效能調優Oracle
- sql調優1SQL
- oracle sql調優OracleSQL
- 【sql調優】使用繫結變數(二)SQL變數
- 【sql調優】使用繫結變數(一)SQL變數
- 教程直播第7期|如何對 OceanBase 進行 SQL 診斷和調優SQL
- 【sql調優之執行計劃】sort operationsSQL
- 【sql調優之執行計劃】estimator iSQL
- 【sql調優之執行計劃】hash joinSQL
- 一條sql語句的建議調優分析SQL
- 使用SQL調整顧問得到SQL優化建議SQL優化
- 【sql調優之執行計劃】使用hint(六) append and noappendSQLAPP
- 使用sqlmap進行sql注入SQL
- MySQL調優篇 | SQL調優實戰(5)MySql
- SQL調優(SQL TUNING)並行查詢提示(Hints)之pq_distribute的使用SQL並行
- 指定特定的jdk進行安裝JDK
- 透過使用hint unnest調優sql語句SQL
- 通過使用hint unnest調優sql語句SQL