0% found this document useful (0 votes)
168 views

Performance Tools and Monitoring

This document summarizes various performance monitoring and tuning tools for Oracle databases. It describes tools such as edb360 for full database configuration details, esp for resource requirements and workload characterization, run_awr for performance tuning and capacity planning, ash_now and ash_history for database activity monitoring, sqlmon for currently running SQLs, snapper for session-level performance diagnosis, and gen_awr_report and gen_ash_report for generating AWR and ASH reports. It also provides instructions for downloading and using these tools from the command line or within SQL Developer.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
168 views

Performance Tools and Monitoring

This document summarizes various performance monitoring and tuning tools for Oracle databases. It describes tools such as edb360 for full database configuration details, esp for resource requirements and workload characterization, run_awr for performance tuning and capacity planning, ash_now and ash_history for database activity monitoring, sqlmon for currently running SQLs, snapper for session-level performance diagnosis, and gen_awr_report and gen_ash_report for generating AWR and ASH reports. It also provides instructions for downloading and using these tools from the command line or within SQL Developer.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 18

HOWTO: Performance Tools and

Monitoring
By: Karl Arao

Summary of the tools

edb360
o This tool gives the full configuration details of a database.
esp
o Collects the resource requirements of the database (CPU, memory,
storage, IO performance) which can be used for consolidation, sizing,
and capacity planning.
run_awr
o Set of scripts used for Performance Tuning, Capacity Planning and
Sizing, this tool capture more details about the historical time series
SQL performance and workload statistics.
ash_now
o Captures the past 5 minutes database activity.
ash_history
o Similar to ash_now but historical. It ask for the START and END periods
and shows the performance activity.
sqlmon
o List the currently running SQLs and active sessions
snapper
o A session-level performance measurement tool which is very useful for
ad-hoc performance diagnosis.
ash_wait_chains
o Shows the multi-session wait signature useful for showing a session
waiting for another session or process
gen_awr_report
o Generate AWR report and spool to the SQL Developer directory
C:\Users\<user>\AppData\Roaming\SQL Developer
gen_ash_report
o Generate ASH report and spool to the SQL Developer directory
C:\Users\<user>\AppData\Roaming\SQL Developer
sqlhc
o SQL Health Check tool checks the environment in which a single SQL
Statement runs, Cost-based Optimizer (CBO) statistics, schema object
metadata, configuration parameters
planx
o a simpler version of SQLHC

sql monitor report


o Generate SQL Monitor report

Pre-req
Download the latest version of SQL Developer at
http://www.oracle.com/technetwork/developer-tools/sqldeveloper/downloads/index.html

Full database info


edb360
Download at https://github.com/carlos-sierra/edb360/archive/master.zip
$ unzip edb360-master.zip
$ cd edb360-master
$ sqlplus / as sysdba
SQL> @edb360.sql T

Workload characterization and sizing


esp
one CSV file
Download at https://github.com/carlos-sierra/esp_collect/archive/master.zip
$ unzip esp_collect-master.zip
$ cd esp_collect-master
$ sh run_esp_master_linux.sh

run_awr
Download at https://github.com/karlarao/run_awr-quickextract/archive/master.zip
$ unzip run_awr-quickextract-master.zip
$ cd run_awr-quickextract-master
$ sh run_awr

Session troubleshooting
Download at https://github.com/karlarao/scripts/archive/master.zip

sqlmon
Command line
$ cd scripts-master/performance/
$ sqlplus / as sysdba
SQL> @sqlmon

SQL Developer

ash_now
Command line
$ cd scripts-master/performance/
$ sqlplus / as sysdba
SQL> @ash_now

SQL Developer

Other commands
-- to get what part of the execution plan the SQL is spending most of its time

@@ashtop
inst_id,session_id,username,program,sql_id,sql_plan_hash_value,plsql_entry_object_id,sql_p
ql_plan_line_id session_type='FOREGROUND' sysdate-5/24/60 sysdate

ash_history
Command line
$ cd scripts-master/performance/
$ sqlplus / as sysdba
SQL> exec dbms_workload_repository.create_snapshot;
SQL> @ash_history
CURRENT_TIME
------------------2015-12-08 22:44:13
Enter start YYYY-MM-DD HH24:MI:SS -> 2015-12-08 22:30:00
Enter end YYYY-MM-DD HH24:MI:SS -> 2015-12-08 22:44:13

SQL Developer

snapper
Command line
$ cd scripts-master/performance/
$ sqlplus / as sysdba
SQL> @snapper ash 5 1 all@*

SQL Developer

Other commands
-- high level ASH workload characterization across instances
@snapper ash 5 1 all@*

-- by username on all instances


@snapper "ash=sql_id+sid+event+wait_class+module+service+blocking_session+p2+p3,stats" 5 1

-- all users on instance 1


@snapper "ash=sql_id+sid+event+wait_class+module+service+blocking_session+p2+p3,stats" 5 1

-- by SID on instance 1
@snapper "ash=sql_id+sid+event+wait_class+module+service+blocking_session+p2+p3,stats" 5 1
-- by inst_id,sid tuple syntax .. snapper on inst 2, SID 1234
@snapper ash 5 1 (2,1234)
-- comma separate to pass multiple inst_id,SID tuples
@snapper ash 5 1 (2,1234),(4,5678),(3,999)
-- snapper QC_ID run from any instance
@snapper ash 5 1 qc=1234@*

More here => http://blog.tanelpoder.com/2013/02/18/snapper-v4-02-and-the-snapper-launch-pa

ash_wait_chains
Command line

$ cd scripts-master/performance/
$ sqlplus / as sysdba
SQL> @ash_wait_chains.sql session_id||'>>'||program||'>>'||event||'>>'||sql_id||'>>'||sql_
p1||'>>'||blocking_session 1=1 sysdate-1/24/60 sysdate

-- Display ASH Wait Chain Signatures script v0.2 BETA by Tanel Poder ( http://blog.tanelpo

%This
SECONDS
AAS
------ ---------- ---------WAIT_CHAIN
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------100%
60
1
-> 158>>[email protected] (TNS V1-V3)>>enq: TX - row lock contention>>24afhzrp5w
mode>>1415053318>>245

SQL Developer

Other commands

-- using TIMESTAMP
@<the script> username||':'||program2||event2 session_type='FOREGROUND' "TIMESTAMP'2014-11
11-19 18:00:00'"

More here => http://blog.tanelpoder.com/2013/09/11/advanced-oracle-troubleshooting-guide-p


signature-analysis-with-ash_wait_chains-sql/

gen_awr_report
Command line
$ cd scripts-master/performance/
$ sqlplus / as sysdba
SQL> @gen_awr_report
Listing latest AWR snapshots ...
SNAP_ID
---------1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918

END_INTERVAL_TIME
--------------------------------------------------------------------------08-DEC-15 09.00.28.556 AM
08-DEC-15 10.00.30.134 AM
08-DEC-15 11.00.31.726 AM
08-DEC-15 12.00.33.313 PM
08-DEC-15 01.00.34.890 PM
08-DEC-15 02.00.36.471 PM
08-DEC-15 03.00.38.058 PM
08-DEC-15 04.00.39.644 PM
08-DEC-15 05.00.41.210 PM
08-DEC-15 05.26.43.221 PM
08-DEC-15 05.31.13.244 PM
08-DEC-15 07.00.44.373 PM
08-DEC-15 08.00.45.943 PM
08-DEC-15 09.00.47.533 PM
08-DEC-15 10.00.49.614 PM
08-DEC-15 10.44.07.797 PM
08-DEC-15 10.51.33.849 PM
08-DEC-15 10.52.33.672 PM
09-DEC-15 12.00.52.767 AM
09-DEC-15 01.00.54.343 AM
09-DEC-15 02.00.55.901 AM
09-DEC-15 03.00.57.474 AM
09-DEC-15 04.00.59.054 AM
09-DEC-15 05.00.00.634 AM
09-DEC-15 06.00.02.232 AM

1919 09-DEC-15 07.00.03.829 AM


1920 09-DEC-15 08.00.05.407 AM
27 rows selected.
Enter begin snapshot id: 1919
Enter
end snapshot id: 1920
PL/SQL procedure successfully completed.

SQL Developer
Hit cancel first to list the SNAP_IDs, then re-run the script
Go to the C:\Users\<user>\AppData\Roaming\SQL Developer to get the report

gen_ash_report
Command line
$ cd scripts-master/performance/
$ sqlplus / as sysdba
SQL> @gen_ash_report
Enter begin time [2015-12-09 07:11]: 2015-12-09 07:11
Enter
end time [2015-12-09 08:11]: 2015-12-09 08:11
PL/SQL procedure successfully completed.
Spooling into ash_report.html
Done.

SQL Developer

SQL troubleshooting
Download at https://github.com/karlarao/scripts/archive/master.zip

sqlhc
Command line
$ cd scripts-master/performance/
$ sqlplus / as sysdba
SQL> @sqlhc T 9fx889bgz15h3

planx
Command line
$ cd scripts-master/performance/
$ sqlplus / as sysdba
SQL> @planx Y 9fx889bgz15h3

SQL Monitor report


Command line
$ cd scripts-master/performance/
$ sqlplus / as sysdba
SQL> @report_sql_monitor_html
SQL> @report_sql_monitor_detail_html

SQL Developer

You might also like