| |
1.perfstat/perfstat 로 login하여 현재 시점의 통계를 수집하기위해 snap.sql을 실행하고 snapshot id를 확인해둔다.
$ sqlplus /nolog
SQL> @$HOME/LABS/ptw9i/snap.sql
Connected.
PL/SQL procedure successfully completed.
SNAPSHOT_ID
-----------
14
SQL> exit
2. workload를 유발한다.
$ sqlplus sh/sh
SQL> !cat $HOME/LABS/ptw9i/lab05_02.sql
drop index sales_prod_bix;
CREATE BITMAP INDEX sales_prod_bix
ON sales (prod_id)
LOCAL COMPUTE STATISTICS ;
drop index sales_cust_bix;
CREATE BITMAP INDEX sales_cust_bix
ON sales (cust_id)
LOCAL COMPUTE STATISTICS ;
drop index sales_time_bix;
CREATE BITMAP INDEX sales_time_bix
ON sales (time_id)
LOCAL COMPUTE STATISTICS ;
drop index sales_channel_bix;
CREATE BITMAP INDEX sales_channel_bix
ON sales (channel_id)
LOCAL COMPUTE STATISTICS ;
drop index sales_promo_bix;
CREATE BITMAP INDEX sales_promo_bix
ON sales (promo_id)
LOCAL COMPUTE STATISTICS ;
SQL> @LABS/ptw9i/lab05_02.sql
SQL> exit
3. system/manager로 login하여 redo log buffer에 대한 space request가 있었는지 확인한다.
$ sqlplus system/manager
SQL> select r.value "Retries",e.value "Entries",r.value/e.value*100 "Percentage"
from v$sysstat r,v$sysstat e
where r.name='redo buffer allocation retries' <-- User Process가 redolog buffer에서 space가 나기를 기다린 횟수
and e.name= 'redo entries';
<-- Redo entries의 갯수
Retries Entries Percentage
---------- ---------- ----------
1 21841 .004578545 <-- 이 값은 1보다는 작아야한다.
그렇지 않다면? log_buffer 증가, checkpoint, archiving성능 개선
SQL> exit
4. 이번에는 perfstat/perfstat 로 login하여 redo log buffer의 크기에 문제가 있는지 확인해 본다.
$ sqlplus /nolog
SQL> @LABS/ptw9i/snap.sql
SQL> @LABS/ptw9i/spreport.sql
Enter value for begin_snap: 14 <-- 이전에 확인해 두었던 snapshot id
Enter value for end_snap: 15 <-- 방금 확인한 snapshot id
SQL> exit
$vi sp_14_15.lst
Instance Efficiency Percentages (Target 100%)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Buffer Nowait %: 100.00 Redo NoWait %: 100.00 <--**
Buffer Hit %: 60.66 In-memory Sort %: 100.00
Library Hit %: 98.01 Soft Parse %: 97.62
Execute to Parse %: 34.24 Latch Hit %: 99.99
Parse CPU to Parse Elapsd %: 62.20 % Non-Parse CPU: 99.93
|