SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
Page | 1
Oracle (ออราเคิล) Statspack
ติดตั้งและใช้งานเบื้องต้น
(เอกสารเวอร์ชัน 0.1)
นี่เป็นเอกสารที่รวบรวมข ้อมูลเกี่ยวกับ Oracle Statspack เพื่อให ้ผู้อ่านสามารถเข ้าใจการใช ้งาน
Oracle Statspack หลังจากอ่านบทความนี้ ผู้อ่านควรสามารถ ติดตั้ง และใช ้งานเบื้องต ้น Oracle
Statspack ได ้
Statspack คืออะไร?
Statspack คือเซตของ SQL และ PL/SQL สคริปท์ ที่ใช ้ในการเก็บข ้อมูลสถิติที่เกี่ยวกับ
ประสิทธิภาพการทางานของฐานข ้อมูลออราเคิล ในการเก็บข ้อมูลแต่ละครั้งเราเรียกว่า snapshot
หลังจากนั้นเราสามารถสร ้างรายงานระหว่าง snapshot เพื่อวิเคราะห์การทางานของฐานข ้อมูล และ
ตรวจสอบประสิทธิภาพในการทางานในช่วงเวลานั้น รายงานจาก Statspack นั้น เราสามารถ
นาไปใช ้เป็นส่วนหนึ่งในการปรับปรุงฐานข ้อมูล เพื่อให ้มีประสิทธิภาพมากขึ้น
ทาไมต้องใช้ Statspack?
Statspack เป็นเครื่องมือที่ช่วยในการเก็บข ้อมูลเกี่ยวกับประสิทธิภาพการทางานของฐานข ้อมูล ที่
ไม่มีค่าใช ้จ่ายเพิ่มเติม พร ้อมกันนี้หากเราใช ้ฐานข ้อมูลออราเคิลที่เป็น Standard Edition One
(SE1) หรือ Standard Edition (SE) เราจะพบว่าเราไม่สามารถจ่ายเงินเพิ่มในการใช ้“Diagnostics
pack” และ ”Tuning pack” ดังนั้น Statspack จึงเป็นทางเลือกที่เหมาะสม
หมายเหตุ: เราสามารถพบสคริปท์ต่างๆ ได ้ที่ ORACLE_HOME/rdbms/admin
- spcreate.sql ใช ้ในการติดตั้ง Statspack
- spauto.sql สร ้างออราเคิล job เพื่อใช ้ในการเก็บสถิติ
- spreport.sql หรือ sprepsql.sql ใช ้ในการสร ้างรายงาน
- sppurge.sql ใช ้ลบข ้อมูลสถิติของ Statspack สามารถลบในแต่ช่วงของ snapshot ได ้
- sptrunc.sql ใช ้ลบข ้อมูลในเทเบิลทั้งหมดของ Statspack
- spdrop.sql ใช ้ลบสิ่งที่เก็บและเกี่ยวกับ Statspack จากนั้นจะลบ Schema (PERFSTAT) ที่
ติดตั้ง Statspack
- spuexp.par เป็นพารามิเตอร์ที่ใช ้ในการดึงข ้อมูลทั้งหมดใน schema ของ Statspack ด ้วย
คาสั่ง exp
ติดตั้ง Statspack อย่างไร?
ก่อนติดตั้ง Statspack ควรพิจารณาค่าของพารามิเตอร์ STATISTICS_LEVEL (TYPICAL หรือ
ALL) และ TIMED_STATISTICS (ควรเป็น TRUE)
เมื่อพิจารณาที่จะใช ้งาน Statspack เราควรหยุดการทางานของ AWR
Page | 2
การติดตั้ง
- จัดหาพารามิเตอร์ที่ต ้องมีการโต ้ตอบ อาทิเช่น default_tablespace,
temporary_tablespace, perfstat_password
- ติดต่อฐานข ้อมูลด ้วยผู้ใช ้งานที่เป็น sysdba
- กาหนดพารามิเตอร์จากข ้างต ้น
- ติดตั้ง Statspack ด ้วย spcreate.sql
หมายเหตุ: เราไม่ควรติดตั้ง Statspack บน SYSTEM tablespace และควรสร้าง Tablespace
แยก สาหรับการใช ้งาน Statspack
CREATE TABLESPACE PERFSTAT_TS DATAFILE
'/u01/app/oracle/oradata/orcl/perfstat_ts01.dbf' size 50M autoextend on maxsize
unlimited;
SQL> connect / as sysdba
SQL> define default_tablespace='PERFSTAT_TS'
SQL> define temporary_tablespace='TEMP'
SQL> define perfstat_password='password'
SQL> @?/rdbms/admin/spcreate.sql
SQL> undefine perfstat_password
หลังจากการติดตั้งเราจะพบ schema ที่ชื่อว่า PERFSTAT
SQL> select username, default_tablespace, temporary_tablespace from dba_users
where username='PERFSTAT';
USERNAME DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
------------------------------ ------------------------------ ------------------------------
PERFSTAT PERFSTAT_TS TEMP
SQL> connect perfstat/password
Connected.
ใช้งาน Statspack อย่างไร?
เก็บข้อมูลสถิติปัจจุบันที่เกี่ยวกับประสิทธิภาพการทางานของฐานข้อมูล
ใช ้statspack.snap
SQL> connect perfstat/password
SQL> execute statspack.snap
หมายเหตุ: statspack.snap นั้น ประกอบไปด ้วย procedure และ function ดังนั้นเราสามารถ
เรียกใช ้statspack.snap ที่เป็น function เพื่อเช็ค snapshot number
FUNCTION SNAP RETURNS NUMBER(38)
Page | 3
SQL> variable snap number;
SQL> begin :snap := statspack.snap; end;
2 /
PL/SQL procedure successfully completed.
SQL> print snap
SNAP
----------
3
การเก็บข้อมูลสถิติที่เกี่ยวกับประสิทธิภาพการทางานของฐานข้อมูลโดยอัตโนมัติ
กรณีนี้เราใช ้ spauto.sql เพื่อสร ้างออราเคิล job ให ้มีการเรียกใช ้งาน “statspack.snap” ทุกๆ
ชั่วโมง เราสามารถที่จะเปลี่ยนได ้ภายหลัง ด ้วยการใช ้ dbms_job.interval
*** หลังจากมีการติดตั้ง Statspack การเก็บข้อมูลสถิติ (snapshot) หรือเรียกใช้งาน
“statspack.snap” โดยอัตโนมัติ เป็ นสิ่งจาเป็ นอย่างมากที่ไม่ควรลืม ***
SQL> connect perfstat/password
SQL> @?/rdbms/admin/spauto.sql
หมายเหตุ: การใช ้งานออราเคิล job ค่าของพารามิเตอร์ job_queue_processes ต ้องมากกว่า 0
ตัวอย่าง
SQL> connect perfstat/password
Connected.
SQL> @?/rdbms/admin/spauto.sql
PL/SQL procedure successfully completed.
Job number for automated statistics collection for this instance
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~
Note that this job number is needed when modifying or removing
the job:
JOBNO
----------
1
Job queue process
~~~~~~~~~~~~~~~~~
Below is the current setting of the job_queue_processes init.ora
Page | 4
parameter - the value for this parameter must be greater
than 0 to use automatic statistics gathering:
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes integer 1000
Next scheduled run
~~~~~~~~~~~~~~~~~~
The next scheduled run for this job is:
JOB NEXT_DATE NEXT_SEC
---------- --------- --------------------------------
1 09-APR-14 04:00:00
SQL> alter session set nls_date_format='DD-MON-YYYY HH24:MI:SS';
Session altered.
SQL> select job, schema_user, what, next_date, interval from user_jobs;
JOB SCHEMA_USER WHAT NEXT_DATE INTERVAL
---------- --------------- ------------------------------ -------------------- ----------------------------
1 PERFSTAT statspack.snap; 09-APR-2014 04:00:00
trunc(SYSDATE+1/24,'HH')
หมายเหตุ: เราสามารถลบออราเคิล job ได ้ด ้วย dbms_job.remove(<job number>)
การกาหนดระดับ(level)สาหรับใช้ในการเก็บข้อมูล
เราสามารถควบคุมจานวนข ้อมูลที่เก็บได ้ด ้วยการกาหนดระดับของ snapshot ยิ่งระดับสูงยิ่งเก็บ
ข ้อมูลมาก เพราะยิ่งระดับสูง ก็จะมีการเก็บข ้อมูลสถิติหลายๆ ส่วน
หลังการติดตั้ง Statspack เสร็จสิ้น ระดับของ snapshot นั้นจะเป็น 5 (เช็คได ้ด ้วย SQL - select
SNAP_LEVEL from STATS$STATSPACK_PARAMETER) เราสามารถเปลี่ยนได ้ด ้วยการใช ้
STATSPACK.MODIFY_STATSPACK_PARAMETER
ระดับ (Level) Statistics captured
0 General Performance
5 SQL Statements
6 SQL plans and SQL plan usage
7 Segment-level statistics
10 Parent and child latches
ตาราง: Statspack Snapshot Levels (เช็คเพิ่มเติมได ้ที่เทเบิล stats$level_description)
Page | 5
หมายเหตุ: ระดับ 6 ไม่พบในเวอร์ชัน 8i, ระดับ 7 เริ่มที่เวอร์ชัน 9.2
ตัวอย่าง
SQL> select SNAP_LEVEL from STATS$STATSPACK_PARAMETER;
SNAP_LEVEL
----------
5
SQL> execute statspack.modify_statspack_parameter (i_snap_level=>10);
PL/SQL procedure successfully completed.
SQL> select SNAP_LEVEL from STATS$STATSPACK_PARAMETER;
SNAP_LEVEL
----------
10
เราสามารถกาหนดระดับของการ snapshot เมื่อใช ้statspack.snap
SQL> execute statspack.snap(i_snap_level=>6);
หรือเปลี่ยนค่าพารามิเตอร์ระดับของการ snapshot (SNAP_LEVEL) ด ้วยเลย
SQL> select SNAP_LEVEL from STATS$STATSPACK_PARAMETER;
SNAP_LEVEL
----------
5
SQL> execute statspack.snap(i_snap_level=>10, i_modify_parameter=>'true');
PL/SQL procedure successfully completed.
SQL> select SNAP_LEVEL from STATS$STATSPACK_PARAMETER;
SNAP_LEVEL
----------
10
หมายเหตุ: เรายังสามารถใช ้statspack.modify_statspack_parameter ในการเปลี่ยนค่า
threshold ต่างๆ ได ้อีกด ้วย
Page | 6
Number of executions of the SQL statement (default 100)
Number of disk reads performed by the SQL statement (default 1,000)
Number of parse calls performed by the SQL statement (default 1,000)
Number of buffer gets performed by the SQL statement (default 10,000)
Size of sharable memory used by the SQL statement (default 1 MB)
Version count for the SQL statement (default 20)
*** เราสามารถตรวจสอบค่าต่างๆ ที่เทเบิล STATS$STATSPACK_PARAMETER ***
การสร้างรายงาน (spreport.sql หรือ sprepsql.sql)
SQL> connect perfstat/password
SQL> @?/rdbms/admin/spreport.sql
ตัวอย่าง
SQL> connect perfstat/password
Connected.
SQL> @?/rdbms/admin/spreport.sql
Current Instance
~~~~~~~~~~~~~~~~
DB Id DB Name Inst Num Instance
----------- ------------ -------- ------------
1372167019 ORCL 1 orcl
Instances in this Statspack schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DB Id Inst Num DB Name Instance Host
----------- -------- ------------ ------------ ------------
1372167019 1 ORCL orcl test12c
Using 1372167019 for database Id
Using 1 for instance number
Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed. Pressing <return> without
specifying a number lists all completed snapshots.
Page | 7
Listing all Completed Snapshots
Snap
Instance DB Name Snap Id Snap Started Level Comment
------------ ------------ --------- ----------------- ----- --------------------
orcl ORCL 1 09 Apr 2014 02:50 5
3 09 Apr 2014 02:59 5
4 09 Apr 2014 03:05 5
5 09 Apr 2014 03:48 6
6 09 Apr 2014 03:53 6
7 09 Apr 2014 03:54 10
8 09 Apr 2014 03:54 10
9 09 Apr 2014 04:00 10
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 7
Begin Snapshot Id specified: 7
Enter value for end_snap: 9
End Snapshot Id specified: 9
Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is sp_7_9. To use this name,
press <return> to continue, otherwise enter an alternative.
Enter value for report_name: report-sp_7_9.txt
.
.
.
End of Report ( report-sp_7_9.txt )
SQL> !ls -l report-sp_7_9.txt
-rw-r--r--. 1 oracle oinstall 135082 Apr 9 04:04 report-sp_7_9.txt
หรือใช ้การกาหนดพารามิเตอร์ที่มีการโต ้ตอบ
SQL> connect perfstat/password
SQL> define begin_snap=9
SQL> define end_snap=10
SQL> define report_name=report_name.txt
SQL> @?/rdbms/admin/spreport.sql
Page | 8
หากต ้องการสร ้างรายงานสาหรับ SQL เราสามารถใช ้sprepsql.sql แต่เราต ้องทราบ hash_value
เสียก่อน
SQL> connect perfstat/password
SQL> define begin_snap=1
SQL> define end_snap=14
SQL> define hash_value=1616409590
SQL> define report_name=report_sql_name.txt
SQL> @?/rdbms/admin/sprepsql.sql
การสร้าง baselines
เมื่อเราติดตั้ง Statspack และสร ้างรายงานในช่วงเวลาที่เราสนใจ เราอาจจะสงสัยว่าประสิทธิภาพ
ของฐานข ้อมูลนั้นเปลี่ยนแปลงไปทางใด ดีหรือไม่ดี ดังนั้นเราควรที่จะเก็บข ้อมูลของ Statspack
ในช่วงเวลาที่ฐานข ้อมูลมีประสิทธิภาพในการทางานที่ดี(สร ้าง baselines) เพื่อนามาใช ้ในการ
เปรียบเทียบต่อไป เราใช ้statspack.make_baseline
FUNCTION MAKE_BASELINE RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
I_BEGIN_SNAP NUMBER IN
I_END_SNAP NUMBER IN
I_SNAP_RANGE BOOLEAN IN DEFAULT
I_DBID NUMBER IN DEFAULT
I_INSTANCE_NUMBER NUMBER IN DEFAULT
PROCEDURE MAKE_BASELINE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
I_BEGIN_SNAP NUMBER IN
I_END_SNAP NUMBER IN
I_SNAP_RANGE BOOLEAN IN DEFAULT
I_DBID NUMBER IN DEFAULT
I_INSTANCE_NUMBER NUMBER IN DEFAULT
FUNCTION MAKE_BASELINE RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
I_BEGIN_DATE DATE IN
I_END_DATE DATE IN
I_DBID NUMBER IN DEFAULT
I_INSTANCE_NUMBER NUMBER IN DEFAULT
PROCEDURE MAKE_BASELINE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
I_BEGIN_DATE DATE IN
I_END_DATE DATE IN
Page | 9
I_DBID NUMBER IN DEFAULT
I_INSTANCE_NUMBER NUMBER IN DEFAULT
SQL> execute statspack.make_baseline(i_begin_snap => 5, i_end_snap => 10);
และเราสามารถลบ baselines ได ้ด ้วย statspack.clear_baseline
FUNCTION CLEAR_BASELINE RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
I_BEGIN_SNAP NUMBER IN
I_END_SNAP NUMBER IN
I_SNAP_RANGE BOOLEAN IN DEFAULT
I_DBID NUMBER IN DEFAULT
I_INSTANCE_NUMBER NUMBER IN DEFAULT
PROCEDURE CLEAR_BASELINE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
I_BEGIN_SNAP NUMBER IN
I_END_SNAP NUMBER IN
I_SNAP_RANGE BOOLEAN IN DEFAULT
I_DBID NUMBER IN DEFAULT
I_INSTANCE_NUMBER NUMBER IN DEFAULT
FUNCTION CLEAR_BASELINE RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
I_BEGIN_DATE DATE IN
I_END_DATE DATE IN
I_DBID NUMBER IN DEFAULT
I_INSTANCE_NUMBER NUMBER IN DEFAULT
PROCEDURE CLEAR_BASELINE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
I_BEGIN_DATE DATE IN
I_END_DATE DATE IN
I_DBID NUMBER IN DEFAULT
I_INSTANCE_NUMBER NUMBER IN DEFAULT
หากต ้องการลบข ้อมูลจากการ snapshot เราสามารถใช ้statspack.purge
Page | 10
ตัวอย่าง รายงาน Statspack
STATSPACK report for
Database DB Id Instance Inst Num Startup Time Release RAC
~~~~~~~~ ----------- ------------ -------- --------------- ----------- ---
1372167019 orcl 1 09-Apr-14 00:05 12.1.0.1.0 NO
Host Name Platform CPUs Cores Sockets Memory (G)
~~~~ ---------------- ---------------------- ----- ----- ------- ------------
test12c Linux x86 64-bit 1 0 0 3.9
Snapshot Snap Id Snap Time Sessions Curs/Sess Comment
~~~~~~~~ ---------- ------------------ -------- --------- ------------------
Begin Snap: 7 09-Apr-14 03:54:24 38 2.1
End Snap: 9 09-Apr-14 04:00:01 41 2.0
Elapsed: 5.62 (mins) Av Act Sess: 0.0
DB time: 0.06 (mins) DB CPU: 0.04 (mins)
Cache Sizes Begin End
~~~~~~~~~~~ ---------- ----------
Buffer Cache: 512M Std Block Size: 8K
Shared Pool: 272M Log Buffer: 6,656K
Load Profile Per Second Per Transaction Per Exec Per Call
~~~~~~~~~~~~ ------------------ ----------------- ----------- -----------
DB time(s): 0.0 0.2 0.00 0.05
DB CPU(s): 0.0 0.1 0.00 0.03
Redo size: 28,302.7 476,900.0
Logical reads: 2,526.7 42,574.8
Block changes: 35.2 592.8
Physical reads: 0.2 3.2
Physical writes: 3.9 65.1
User calls: 0.2 3.3
Parses: 2.6 43.2
Hard parses: 0.3 4.7
W/A MB processed: 0.5 7.8
Logons: 0.1 1.3
Executes: 3.3 55.9
Rollbacks: 0.0 0.0
Transactions: 0.1
Instance Efficiency Indicators
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Page | 11
Buffer Nowait %: 100.00 Redo NoWait %: 100.00
Buffer Hit %: 99.99 Optimal W/A Exec %: 100.00
Library Hit %: 94.88 Soft Parse %: 89.12
Execute to Parse %: 22.72 Latch Hit %: 100.00
Parse CPU to Parse Elapsd %: 76.32 % Non-Parse CPU: 93.83
Shared Pool Statistics Begin End
------ ------
Memory Usage %: 89.49 91.52
% SQL with executions>1: 69.92 76.85
% Memory for SQL w/exec>1: 65.98 83.78
Top 5 Timed Events Avg %Total
~~~~~~~~~~~~~~~~~~ wait Call
Event Waits Time (s) (ms) Time
----------------------------------------- ------------ ----------- ------ ------
lreg timer 112 336 3001 33.1
heartbeat redo informer 336 336 1000 33.1
AQPC idle 11 330 30010 32.5
control file parallel write 182 6 32 .6
CPU time 5 .5
-------------------------------------------------------------
^LHost CPU (CPUs: 1 Cores: 0 Sockets: 0)
~~~~~~~~ Load Average
Begin End User System Idle WIO WCPU
------- ------- ------- ------- ------- ------- --------
0.64 0.55 7.06 4.55 88.34 0.80
.
.
.
สรุป
การใช ้งาน Statspack ถือว่ามีประโยชน์ อย่างมากในการตรวจสอบ วิเคราะห์ประสิทธิภาพการ
ทางานของฐานข ้อมูลออราเคิล และยังสามารถช่วยในการวิเคราะห์ปัญหาได ้อีกด ้วย
ผู้ทางานดูแลระบบฐานข ้อมูลออราเคิลควรมีความรู้ในการใช ้งาน Statspack และควรสามารถ
วิเคราะห์รายงานจาก Statspack
Page | 12
อ้างอิง
FAQ- Statspack Complete Reference (Doc ID 94224.1)
Oracle Performance Tuning 11g – Oracle University
Oracle Documents
เรียบเรียงโดย
Surachart Opun
Oracle ACE และ Oracle Expert
Blogs: http://surachartopun.com, http://oraclethai.blogspot.com

Weitere ähnliche Inhalte

Was ist angesagt?

Active dataguard
Active dataguardActive dataguard
Active dataguard
Manoj Kumar
 
Oracle SQL Performance Tuning and Optimization v26 chapter 1
Oracle SQL Performance Tuning and Optimization v26 chapter 1Oracle SQL Performance Tuning and Optimization v26 chapter 1
Oracle SQL Performance Tuning and Optimization v26 chapter 1
Kevin Meade
 
Oracle database performance tuning
Oracle database performance tuningOracle database performance tuning
Oracle database performance tuning
Yogiji Creations
 
Oracle backup and recovery
Oracle backup and recoveryOracle backup and recovery
Oracle backup and recovery
Yogiji Creations
 

Was ist angesagt? (20)

Active dataguard
Active dataguardActive dataguard
Active dataguard
 
15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUG
15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUG15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUG
15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUG
 
Dataguard presentation
Dataguard presentationDataguard presentation
Dataguard presentation
 
OS Memory Management
OS Memory ManagementOS Memory Management
OS Memory Management
 
SAN Concepts
SAN ConceptsSAN Concepts
SAN Concepts
 
Backup & recovery with rman
Backup & recovery with rmanBackup & recovery with rman
Backup & recovery with rman
 
Semi join
Semi joinSemi join
Semi join
 
Oracle SQL Performance Tuning and Optimization v26 chapter 1
Oracle SQL Performance Tuning and Optimization v26 chapter 1Oracle SQL Performance Tuning and Optimization v26 chapter 1
Oracle SQL Performance Tuning and Optimization v26 chapter 1
 
SAP HANA Interview questions
SAP HANA Interview questionsSAP HANA Interview questions
SAP HANA Interview questions
 
Maximum Availability Architecture - Best Practices for Oracle Database 19c
Maximum Availability Architecture - Best Practices for Oracle Database 19cMaximum Availability Architecture - Best Practices for Oracle Database 19c
Maximum Availability Architecture - Best Practices for Oracle Database 19c
 
Oracle GoldenGate
Oracle GoldenGate Oracle GoldenGate
Oracle GoldenGate
 
SAP HANA Overview
SAP HANA OverviewSAP HANA Overview
SAP HANA Overview
 
Oracle database performance tuning
Oracle database performance tuningOracle database performance tuning
Oracle database performance tuning
 
Oracle GoldenGate Studio Intro
Oracle GoldenGate Studio IntroOracle GoldenGate Studio Intro
Oracle GoldenGate Studio Intro
 
Exadata Backup
Exadata BackupExadata Backup
Exadata Backup
 
Oracle backup and recovery
Oracle backup and recoveryOracle backup and recovery
Oracle backup and recovery
 
Explain the explain_plan
Explain the explain_planExplain the explain_plan
Explain the explain_plan
 
User, roles and privileges
User, roles and privilegesUser, roles and privileges
User, roles and privileges
 
Nové vlastnosti Oracle Database Appliance
Nové vlastnosti Oracle Database ApplianceNové vlastnosti Oracle Database Appliance
Nové vlastnosti Oracle Database Appliance
 
Oracle database high availability solutions
Oracle database high availability solutionsOracle database high availability solutions
Oracle database high availability solutions
 

Andere mochten auch

Oracle Database 11g Product Family
Oracle Database 11g Product FamilyOracle Database 11g Product Family
Oracle Database 11g Product Family
N/A
 
Apex thaibook 01_draft
Apex thaibook 01_draftApex thaibook 01_draft
Apex thaibook 01_draft
N/A
 
สอนSpss
สอนSpssสอนSpss
สอนSpss
kaew393
 
Bai giang chi tiêt mon qtdn chuan
Bai giang chi tiêt mon qtdn chuanBai giang chi tiêt mon qtdn chuan
Bai giang chi tiêt mon qtdn chuan
phuong2805
 
Basic - Oracle Edition Based Redefinition Presentation
Basic - Oracle Edition Based Redefinition PresentationBasic - Oracle Edition Based Redefinition Presentation
Basic - Oracle Edition Based Redefinition Presentation
N/A
 
FIXING BLOCK CORRUPTION (RMAN) on 11G
FIXING BLOCK CORRUPTION (RMAN) on 11GFIXING BLOCK CORRUPTION (RMAN) on 11G
FIXING BLOCK CORRUPTION (RMAN) on 11G
N/A
 
บทที่ 2 (1)
บทที่ 2 (1)บทที่ 2 (1)
บทที่ 2 (1)
nopphanut
 
งานนำเสนอ การจัดการฐานข้อมุล
งานนำเสนอ การจัดการฐานข้อมุลงานนำเสนอ การจัดการฐานข้อมุล
งานนำเสนอ การจัดการฐานข้อมุล
chanoot29
 
การใช้โปรแกรม Spss
การใช้โปรแกรม Spssการใช้โปรแกรม Spss
การใช้โปรแกรม Spss
thaweesak mahan
 
Lesson 2 ไฟล์ฐานข้อมูล
Lesson 2 ไฟล์ฐานข้อมูลLesson 2 ไฟล์ฐานข้อมูล
Lesson 2 ไฟล์ฐานข้อมูล
Errorrrrr
 
คู่มือSpss
คู่มือSpssคู่มือSpss
คู่มือSpss
kuankaaw
 
การใช้โปรแกรม Access เบื้องต้น
การใช้โปรแกรม Access เบื้องต้นการใช้โปรแกรม Access เบื้องต้น
การใช้โปรแกรม Access เบื้องต้น
techno UCH
 

Andere mochten auch (16)

Oracle Database 11g Product Family
Oracle Database 11g Product FamilyOracle Database 11g Product Family
Oracle Database 11g Product Family
 
Apex thaibook 01_draft
Apex thaibook 01_draftApex thaibook 01_draft
Apex thaibook 01_draft
 
สอนSpss
สอนSpssสอนSpss
สอนSpss
 
Bai giang chi tiêt mon qtdn chuan
Bai giang chi tiêt mon qtdn chuanBai giang chi tiêt mon qtdn chuan
Bai giang chi tiêt mon qtdn chuan
 
Basic - Oracle Edition Based Redefinition Presentation
Basic - Oracle Edition Based Redefinition PresentationBasic - Oracle Edition Based Redefinition Presentation
Basic - Oracle Edition Based Redefinition Presentation
 
Test Dml With Nologging
Test Dml With NologgingTest Dml With Nologging
Test Dml With Nologging
 
FIXING BLOCK CORRUPTION (RMAN) on 11G
FIXING BLOCK CORRUPTION (RMAN) on 11GFIXING BLOCK CORRUPTION (RMAN) on 11G
FIXING BLOCK CORRUPTION (RMAN) on 11G
 
Web 2.0 สู่ Library 2.0
Web 2.0 สู่ Library 2.0Web 2.0 สู่ Library 2.0
Web 2.0 สู่ Library 2.0
 
บทที่ 2 (1)
บทที่ 2 (1)บทที่ 2 (1)
บทที่ 2 (1)
 
งานนำเสนอ การจัดการฐานข้อมุล
งานนำเสนอ การจัดการฐานข้อมุลงานนำเสนอ การจัดการฐานข้อมุล
งานนำเสนอ การจัดการฐานข้อมุล
 
การใช้โปรแกรม Spss
การใช้โปรแกรม Spssการใช้โปรแกรม Spss
การใช้โปรแกรม Spss
 
Lesson 2 ไฟล์ฐานข้อมูล
Lesson 2 ไฟล์ฐานข้อมูลLesson 2 ไฟล์ฐานข้อมูล
Lesson 2 ไฟล์ฐานข้อมูล
 
คู่มือSpss
คู่มือSpssคู่มือSpss
คู่มือSpss
 
Spss jan2010
Spss jan2010Spss jan2010
Spss jan2010
 
Database Tuning for e-Learning
Database Tuning for e-LearningDatabase Tuning for e-Learning
Database Tuning for e-Learning
 
การใช้โปรแกรม Access เบื้องต้น
การใช้โปรแกรม Access เบื้องต้นการใช้โปรแกรม Access เบื้องต้น
การใช้โปรแกรม Access เบื้องต้น
 

ออราเคิล (Oracle) Statspack (ติดตั้งและใช้งานเบื้องต้น)

  • 1. Page | 1 Oracle (ออราเคิล) Statspack ติดตั้งและใช้งานเบื้องต้น (เอกสารเวอร์ชัน 0.1) นี่เป็นเอกสารที่รวบรวมข ้อมูลเกี่ยวกับ Oracle Statspack เพื่อให ้ผู้อ่านสามารถเข ้าใจการใช ้งาน Oracle Statspack หลังจากอ่านบทความนี้ ผู้อ่านควรสามารถ ติดตั้ง และใช ้งานเบื้องต ้น Oracle Statspack ได ้ Statspack คืออะไร? Statspack คือเซตของ SQL และ PL/SQL สคริปท์ ที่ใช ้ในการเก็บข ้อมูลสถิติที่เกี่ยวกับ ประสิทธิภาพการทางานของฐานข ้อมูลออราเคิล ในการเก็บข ้อมูลแต่ละครั้งเราเรียกว่า snapshot หลังจากนั้นเราสามารถสร ้างรายงานระหว่าง snapshot เพื่อวิเคราะห์การทางานของฐานข ้อมูล และ ตรวจสอบประสิทธิภาพในการทางานในช่วงเวลานั้น รายงานจาก Statspack นั้น เราสามารถ นาไปใช ้เป็นส่วนหนึ่งในการปรับปรุงฐานข ้อมูล เพื่อให ้มีประสิทธิภาพมากขึ้น ทาไมต้องใช้ Statspack? Statspack เป็นเครื่องมือที่ช่วยในการเก็บข ้อมูลเกี่ยวกับประสิทธิภาพการทางานของฐานข ้อมูล ที่ ไม่มีค่าใช ้จ่ายเพิ่มเติม พร ้อมกันนี้หากเราใช ้ฐานข ้อมูลออราเคิลที่เป็น Standard Edition One (SE1) หรือ Standard Edition (SE) เราจะพบว่าเราไม่สามารถจ่ายเงินเพิ่มในการใช ้“Diagnostics pack” และ ”Tuning pack” ดังนั้น Statspack จึงเป็นทางเลือกที่เหมาะสม หมายเหตุ: เราสามารถพบสคริปท์ต่างๆ ได ้ที่ ORACLE_HOME/rdbms/admin - spcreate.sql ใช ้ในการติดตั้ง Statspack - spauto.sql สร ้างออราเคิล job เพื่อใช ้ในการเก็บสถิติ - spreport.sql หรือ sprepsql.sql ใช ้ในการสร ้างรายงาน - sppurge.sql ใช ้ลบข ้อมูลสถิติของ Statspack สามารถลบในแต่ช่วงของ snapshot ได ้ - sptrunc.sql ใช ้ลบข ้อมูลในเทเบิลทั้งหมดของ Statspack - spdrop.sql ใช ้ลบสิ่งที่เก็บและเกี่ยวกับ Statspack จากนั้นจะลบ Schema (PERFSTAT) ที่ ติดตั้ง Statspack - spuexp.par เป็นพารามิเตอร์ที่ใช ้ในการดึงข ้อมูลทั้งหมดใน schema ของ Statspack ด ้วย คาสั่ง exp ติดตั้ง Statspack อย่างไร? ก่อนติดตั้ง Statspack ควรพิจารณาค่าของพารามิเตอร์ STATISTICS_LEVEL (TYPICAL หรือ ALL) และ TIMED_STATISTICS (ควรเป็น TRUE) เมื่อพิจารณาที่จะใช ้งาน Statspack เราควรหยุดการทางานของ AWR
  • 2. Page | 2 การติดตั้ง - จัดหาพารามิเตอร์ที่ต ้องมีการโต ้ตอบ อาทิเช่น default_tablespace, temporary_tablespace, perfstat_password - ติดต่อฐานข ้อมูลด ้วยผู้ใช ้งานที่เป็น sysdba - กาหนดพารามิเตอร์จากข ้างต ้น - ติดตั้ง Statspack ด ้วย spcreate.sql หมายเหตุ: เราไม่ควรติดตั้ง Statspack บน SYSTEM tablespace และควรสร้าง Tablespace แยก สาหรับการใช ้งาน Statspack CREATE TABLESPACE PERFSTAT_TS DATAFILE '/u01/app/oracle/oradata/orcl/perfstat_ts01.dbf' size 50M autoextend on maxsize unlimited; SQL> connect / as sysdba SQL> define default_tablespace='PERFSTAT_TS' SQL> define temporary_tablespace='TEMP' SQL> define perfstat_password='password' SQL> @?/rdbms/admin/spcreate.sql SQL> undefine perfstat_password หลังจากการติดตั้งเราจะพบ schema ที่ชื่อว่า PERFSTAT SQL> select username, default_tablespace, temporary_tablespace from dba_users where username='PERFSTAT'; USERNAME DEFAULT_TABLESPACE TEMPORARY_TABLESPACE ------------------------------ ------------------------------ ------------------------------ PERFSTAT PERFSTAT_TS TEMP SQL> connect perfstat/password Connected. ใช้งาน Statspack อย่างไร? เก็บข้อมูลสถิติปัจจุบันที่เกี่ยวกับประสิทธิภาพการทางานของฐานข้อมูล ใช ้statspack.snap SQL> connect perfstat/password SQL> execute statspack.snap หมายเหตุ: statspack.snap นั้น ประกอบไปด ้วย procedure และ function ดังนั้นเราสามารถ เรียกใช ้statspack.snap ที่เป็น function เพื่อเช็ค snapshot number FUNCTION SNAP RETURNS NUMBER(38)
  • 3. Page | 3 SQL> variable snap number; SQL> begin :snap := statspack.snap; end; 2 / PL/SQL procedure successfully completed. SQL> print snap SNAP ---------- 3 การเก็บข้อมูลสถิติที่เกี่ยวกับประสิทธิภาพการทางานของฐานข้อมูลโดยอัตโนมัติ กรณีนี้เราใช ้ spauto.sql เพื่อสร ้างออราเคิล job ให ้มีการเรียกใช ้งาน “statspack.snap” ทุกๆ ชั่วโมง เราสามารถที่จะเปลี่ยนได ้ภายหลัง ด ้วยการใช ้ dbms_job.interval *** หลังจากมีการติดตั้ง Statspack การเก็บข้อมูลสถิติ (snapshot) หรือเรียกใช้งาน “statspack.snap” โดยอัตโนมัติ เป็ นสิ่งจาเป็ นอย่างมากที่ไม่ควรลืม *** SQL> connect perfstat/password SQL> @?/rdbms/admin/spauto.sql หมายเหตุ: การใช ้งานออราเคิล job ค่าของพารามิเตอร์ job_queue_processes ต ้องมากกว่า 0 ตัวอย่าง SQL> connect perfstat/password Connected. SQL> @?/rdbms/admin/spauto.sql PL/SQL procedure successfully completed. Job number for automated statistics collection for this instance ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~ Note that this job number is needed when modifying or removing the job: JOBNO ---------- 1 Job queue process ~~~~~~~~~~~~~~~~~ Below is the current setting of the job_queue_processes init.ora
  • 4. Page | 4 parameter - the value for this parameter must be greater than 0 to use automatic statistics gathering: NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ job_queue_processes integer 1000 Next scheduled run ~~~~~~~~~~~~~~~~~~ The next scheduled run for this job is: JOB NEXT_DATE NEXT_SEC ---------- --------- -------------------------------- 1 09-APR-14 04:00:00 SQL> alter session set nls_date_format='DD-MON-YYYY HH24:MI:SS'; Session altered. SQL> select job, schema_user, what, next_date, interval from user_jobs; JOB SCHEMA_USER WHAT NEXT_DATE INTERVAL ---------- --------------- ------------------------------ -------------------- ---------------------------- 1 PERFSTAT statspack.snap; 09-APR-2014 04:00:00 trunc(SYSDATE+1/24,'HH') หมายเหตุ: เราสามารถลบออราเคิล job ได ้ด ้วย dbms_job.remove(<job number>) การกาหนดระดับ(level)สาหรับใช้ในการเก็บข้อมูล เราสามารถควบคุมจานวนข ้อมูลที่เก็บได ้ด ้วยการกาหนดระดับของ snapshot ยิ่งระดับสูงยิ่งเก็บ ข ้อมูลมาก เพราะยิ่งระดับสูง ก็จะมีการเก็บข ้อมูลสถิติหลายๆ ส่วน หลังการติดตั้ง Statspack เสร็จสิ้น ระดับของ snapshot นั้นจะเป็น 5 (เช็คได ้ด ้วย SQL - select SNAP_LEVEL from STATS$STATSPACK_PARAMETER) เราสามารถเปลี่ยนได ้ด ้วยการใช ้ STATSPACK.MODIFY_STATSPACK_PARAMETER ระดับ (Level) Statistics captured 0 General Performance 5 SQL Statements 6 SQL plans and SQL plan usage 7 Segment-level statistics 10 Parent and child latches ตาราง: Statspack Snapshot Levels (เช็คเพิ่มเติมได ้ที่เทเบิล stats$level_description)
  • 5. Page | 5 หมายเหตุ: ระดับ 6 ไม่พบในเวอร์ชัน 8i, ระดับ 7 เริ่มที่เวอร์ชัน 9.2 ตัวอย่าง SQL> select SNAP_LEVEL from STATS$STATSPACK_PARAMETER; SNAP_LEVEL ---------- 5 SQL> execute statspack.modify_statspack_parameter (i_snap_level=>10); PL/SQL procedure successfully completed. SQL> select SNAP_LEVEL from STATS$STATSPACK_PARAMETER; SNAP_LEVEL ---------- 10 เราสามารถกาหนดระดับของการ snapshot เมื่อใช ้statspack.snap SQL> execute statspack.snap(i_snap_level=>6); หรือเปลี่ยนค่าพารามิเตอร์ระดับของการ snapshot (SNAP_LEVEL) ด ้วยเลย SQL> select SNAP_LEVEL from STATS$STATSPACK_PARAMETER; SNAP_LEVEL ---------- 5 SQL> execute statspack.snap(i_snap_level=>10, i_modify_parameter=>'true'); PL/SQL procedure successfully completed. SQL> select SNAP_LEVEL from STATS$STATSPACK_PARAMETER; SNAP_LEVEL ---------- 10 หมายเหตุ: เรายังสามารถใช ้statspack.modify_statspack_parameter ในการเปลี่ยนค่า threshold ต่างๆ ได ้อีกด ้วย
  • 6. Page | 6 Number of executions of the SQL statement (default 100) Number of disk reads performed by the SQL statement (default 1,000) Number of parse calls performed by the SQL statement (default 1,000) Number of buffer gets performed by the SQL statement (default 10,000) Size of sharable memory used by the SQL statement (default 1 MB) Version count for the SQL statement (default 20) *** เราสามารถตรวจสอบค่าต่างๆ ที่เทเบิล STATS$STATSPACK_PARAMETER *** การสร้างรายงาน (spreport.sql หรือ sprepsql.sql) SQL> connect perfstat/password SQL> @?/rdbms/admin/spreport.sql ตัวอย่าง SQL> connect perfstat/password Connected. SQL> @?/rdbms/admin/spreport.sql Current Instance ~~~~~~~~~~~~~~~~ DB Id DB Name Inst Num Instance ----------- ------------ -------- ------------ 1372167019 ORCL 1 orcl Instances in this Statspack schema ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DB Id Inst Num DB Name Instance Host ----------- -------- ------------ ------------ ------------ 1372167019 1 ORCL orcl test12c Using 1372167019 for database Id Using 1 for instance number Specify the number of days of snapshots to choose from ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Entering the number of days (n) will result in the most recent (n) days of snapshots being listed. Pressing <return> without specifying a number lists all completed snapshots.
  • 7. Page | 7 Listing all Completed Snapshots Snap Instance DB Name Snap Id Snap Started Level Comment ------------ ------------ --------- ----------------- ----- -------------------- orcl ORCL 1 09 Apr 2014 02:50 5 3 09 Apr 2014 02:59 5 4 09 Apr 2014 03:05 5 5 09 Apr 2014 03:48 6 6 09 Apr 2014 03:53 6 7 09 Apr 2014 03:54 10 8 09 Apr 2014 03:54 10 9 09 Apr 2014 04:00 10 Specify the Begin and End Snapshot Ids ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Enter value for begin_snap: 7 Begin Snapshot Id specified: 7 Enter value for end_snap: 9 End Snapshot Id specified: 9 Specify the Report Name ~~~~~~~~~~~~~~~~~~~~~~~ The default report file name is sp_7_9. To use this name, press <return> to continue, otherwise enter an alternative. Enter value for report_name: report-sp_7_9.txt . . . End of Report ( report-sp_7_9.txt ) SQL> !ls -l report-sp_7_9.txt -rw-r--r--. 1 oracle oinstall 135082 Apr 9 04:04 report-sp_7_9.txt หรือใช ้การกาหนดพารามิเตอร์ที่มีการโต ้ตอบ SQL> connect perfstat/password SQL> define begin_snap=9 SQL> define end_snap=10 SQL> define report_name=report_name.txt SQL> @?/rdbms/admin/spreport.sql
  • 8. Page | 8 หากต ้องการสร ้างรายงานสาหรับ SQL เราสามารถใช ้sprepsql.sql แต่เราต ้องทราบ hash_value เสียก่อน SQL> connect perfstat/password SQL> define begin_snap=1 SQL> define end_snap=14 SQL> define hash_value=1616409590 SQL> define report_name=report_sql_name.txt SQL> @?/rdbms/admin/sprepsql.sql การสร้าง baselines เมื่อเราติดตั้ง Statspack และสร ้างรายงานในช่วงเวลาที่เราสนใจ เราอาจจะสงสัยว่าประสิทธิภาพ ของฐานข ้อมูลนั้นเปลี่ยนแปลงไปทางใด ดีหรือไม่ดี ดังนั้นเราควรที่จะเก็บข ้อมูลของ Statspack ในช่วงเวลาที่ฐานข ้อมูลมีประสิทธิภาพในการทางานที่ดี(สร ้าง baselines) เพื่อนามาใช ้ในการ เปรียบเทียบต่อไป เราใช ้statspack.make_baseline FUNCTION MAKE_BASELINE RETURNS NUMBER(38) Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- I_BEGIN_SNAP NUMBER IN I_END_SNAP NUMBER IN I_SNAP_RANGE BOOLEAN IN DEFAULT I_DBID NUMBER IN DEFAULT I_INSTANCE_NUMBER NUMBER IN DEFAULT PROCEDURE MAKE_BASELINE Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- I_BEGIN_SNAP NUMBER IN I_END_SNAP NUMBER IN I_SNAP_RANGE BOOLEAN IN DEFAULT I_DBID NUMBER IN DEFAULT I_INSTANCE_NUMBER NUMBER IN DEFAULT FUNCTION MAKE_BASELINE RETURNS NUMBER(38) Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- I_BEGIN_DATE DATE IN I_END_DATE DATE IN I_DBID NUMBER IN DEFAULT I_INSTANCE_NUMBER NUMBER IN DEFAULT PROCEDURE MAKE_BASELINE Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- I_BEGIN_DATE DATE IN I_END_DATE DATE IN
  • 9. Page | 9 I_DBID NUMBER IN DEFAULT I_INSTANCE_NUMBER NUMBER IN DEFAULT SQL> execute statspack.make_baseline(i_begin_snap => 5, i_end_snap => 10); และเราสามารถลบ baselines ได ้ด ้วย statspack.clear_baseline FUNCTION CLEAR_BASELINE RETURNS NUMBER(38) Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- I_BEGIN_SNAP NUMBER IN I_END_SNAP NUMBER IN I_SNAP_RANGE BOOLEAN IN DEFAULT I_DBID NUMBER IN DEFAULT I_INSTANCE_NUMBER NUMBER IN DEFAULT PROCEDURE CLEAR_BASELINE Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- I_BEGIN_SNAP NUMBER IN I_END_SNAP NUMBER IN I_SNAP_RANGE BOOLEAN IN DEFAULT I_DBID NUMBER IN DEFAULT I_INSTANCE_NUMBER NUMBER IN DEFAULT FUNCTION CLEAR_BASELINE RETURNS NUMBER(38) Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- I_BEGIN_DATE DATE IN I_END_DATE DATE IN I_DBID NUMBER IN DEFAULT I_INSTANCE_NUMBER NUMBER IN DEFAULT PROCEDURE CLEAR_BASELINE Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- I_BEGIN_DATE DATE IN I_END_DATE DATE IN I_DBID NUMBER IN DEFAULT I_INSTANCE_NUMBER NUMBER IN DEFAULT หากต ้องการลบข ้อมูลจากการ snapshot เราสามารถใช ้statspack.purge
  • 10. Page | 10 ตัวอย่าง รายงาน Statspack STATSPACK report for Database DB Id Instance Inst Num Startup Time Release RAC ~~~~~~~~ ----------- ------------ -------- --------------- ----------- --- 1372167019 orcl 1 09-Apr-14 00:05 12.1.0.1.0 NO Host Name Platform CPUs Cores Sockets Memory (G) ~~~~ ---------------- ---------------------- ----- ----- ------- ------------ test12c Linux x86 64-bit 1 0 0 3.9 Snapshot Snap Id Snap Time Sessions Curs/Sess Comment ~~~~~~~~ ---------- ------------------ -------- --------- ------------------ Begin Snap: 7 09-Apr-14 03:54:24 38 2.1 End Snap: 9 09-Apr-14 04:00:01 41 2.0 Elapsed: 5.62 (mins) Av Act Sess: 0.0 DB time: 0.06 (mins) DB CPU: 0.04 (mins) Cache Sizes Begin End ~~~~~~~~~~~ ---------- ---------- Buffer Cache: 512M Std Block Size: 8K Shared Pool: 272M Log Buffer: 6,656K Load Profile Per Second Per Transaction Per Exec Per Call ~~~~~~~~~~~~ ------------------ ----------------- ----------- ----------- DB time(s): 0.0 0.2 0.00 0.05 DB CPU(s): 0.0 0.1 0.00 0.03 Redo size: 28,302.7 476,900.0 Logical reads: 2,526.7 42,574.8 Block changes: 35.2 592.8 Physical reads: 0.2 3.2 Physical writes: 3.9 65.1 User calls: 0.2 3.3 Parses: 2.6 43.2 Hard parses: 0.3 4.7 W/A MB processed: 0.5 7.8 Logons: 0.1 1.3 Executes: 3.3 55.9 Rollbacks: 0.0 0.0 Transactions: 0.1 Instance Efficiency Indicators ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • 11. Page | 11 Buffer Nowait %: 100.00 Redo NoWait %: 100.00 Buffer Hit %: 99.99 Optimal W/A Exec %: 100.00 Library Hit %: 94.88 Soft Parse %: 89.12 Execute to Parse %: 22.72 Latch Hit %: 100.00 Parse CPU to Parse Elapsd %: 76.32 % Non-Parse CPU: 93.83 Shared Pool Statistics Begin End ------ ------ Memory Usage %: 89.49 91.52 % SQL with executions>1: 69.92 76.85 % Memory for SQL w/exec>1: 65.98 83.78 Top 5 Timed Events Avg %Total ~~~~~~~~~~~~~~~~~~ wait Call Event Waits Time (s) (ms) Time ----------------------------------------- ------------ ----------- ------ ------ lreg timer 112 336 3001 33.1 heartbeat redo informer 336 336 1000 33.1 AQPC idle 11 330 30010 32.5 control file parallel write 182 6 32 .6 CPU time 5 .5 ------------------------------------------------------------- ^LHost CPU (CPUs: 1 Cores: 0 Sockets: 0) ~~~~~~~~ Load Average Begin End User System Idle WIO WCPU ------- ------- ------- ------- ------- ------- -------- 0.64 0.55 7.06 4.55 88.34 0.80 . . . สรุป การใช ้งาน Statspack ถือว่ามีประโยชน์ อย่างมากในการตรวจสอบ วิเคราะห์ประสิทธิภาพการ ทางานของฐานข ้อมูลออราเคิล และยังสามารถช่วยในการวิเคราะห์ปัญหาได ้อีกด ้วย ผู้ทางานดูแลระบบฐานข ้อมูลออราเคิลควรมีความรู้ในการใช ้งาน Statspack และควรสามารถ วิเคราะห์รายงานจาก Statspack
  • 12. Page | 12 อ้างอิง FAQ- Statspack Complete Reference (Doc ID 94224.1) Oracle Performance Tuning 11g – Oracle University Oracle Documents เรียบเรียงโดย Surachart Opun Oracle ACE และ Oracle Expert Blogs: http://surachartopun.com, http://oraclethai.blogspot.com