Vous êtes sur la page 1sur 7

AUTOMATIC DATA OPTIMIZATION

[oracle@DB12c cdb2]$ . oraenv


ORACLE_SID = [cdb2] ? cdb2
The Oracle base remains unchanged with value /u02/app/oracle

[oracle@DB12c cdb2]$ dbca

Screen 1
=> Create database
=> CLick Next

Screen 2
GLobal Database Name : orcl2
Deselect "Create as Container Database"
Admin password : oracle_4U
=> Click Next

Screen 3
=> Click Finish

[oracle@DB12c ~]$ . oraenv


ORACLE_SID = [orcl] ? orcl
The Oracle base remains unchanged with value /u02/app/oracle
[oracle@DB12c ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Sun Jun 15 08:49:07 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit
Production
With the Partitioning, OLAP, Advanced Analytics and Real Application
Testing options

SQL> ALTER SYSTEM SET heat_map=on SCOPE=BOTH;


System altered.

SQL> CREATE TABLESPACE adotbs


DATAFILE '/u02/app/oracle/oradata/ORCL/datafile/adotbs1.dbf'
size 10m reuse autoextend off extent management local;
Tablespace created.
SQL> CREATE TABLESPACE low_cost_store
DATAFILE '/u02/app/oracle/oradata/ORCL/datafile/lcs.dbf'
size 200M;

SQL> connect system/oracle_4U

SQL> create table employee (


EMPNO NUMBER(4) NOT NULL,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2)
)tablespace adotbs;
Table created.

SQL> insert into employee (empno, ename, job, mgr, hiredate,


sal, comm, deptno)
select empno, ename, job, mgr, hiredate, sal, comm, deptno from
scott.emp;
14 rows created.

SQL> declare
blowup PLS_INTEGER := 8;
sql_test clob;
begin
for i in 1..blowup loop
sql_test := 'insert /*+ append */ into employee
select * from
employee';
execute immediate sql_test;
commit;
end loop;
end;
/

SQL> SELECT count(*) FROM employee;


COUNT(*)
----------
3584
SQL> alter session set nls_date_format='dd-mon-yy hh:mi:ss';
Session altered.

SQL> COL object_name FORMAT A12


SQL> COL "Seg write" FORMAT A10
SQL> SELECT object_name, to_char(track_time,'DD-MON-YY HH:MI:SS')
"Tracking Time", segment_write "Seg write", FULL_SCAN
"Full Scan", lookup_scan "Lookup Scan" FROM DBA_HEAT_MAP_SEG_HISTOGRAM
WHERE object_name='EMPLOYEE'; 2
OBJECT_NAME Tracking Time Seg write Ful Loo
------------ ------------------ ---------- --- ---
EMPLOYEE 15-JUN-14 08:57:20 NO YES NO

SQL> SELECT object_name, segment_write_time, FULL_SCAN, lookup_scan


FROM dba_heat_map_segment WHERE object_name='EMPLOYEE'; 2
OBJECT_NAME SEGMENT_WRITE_TIME FULL_SCAN LOOKUP_SCAN
------------ ------------------ ------------------ ------------------
EMPLOYEE 15-jun-14 08:57:44

SQL> col tablespace format A16


SQL> SELECT /* + RULE */ df.tablespace_name "Tablespace", df.bytes /
(1024 * 1024) "Size (MB)", SUM(fs.bytes) / (1024 * 1024) "Free (MB)",
Nvl(Round(SUM(fs.bytes) * 100 / df.bytes),1) "% Free", Round((df.bytes -
SUM(fs.bytes)) * 100 / df.bytes) "% Used"
FROM dba_free_space fs,
(SELECT tablespace_name,SUM(bytes) bytes
FROM dba_data_files
GROUP BY tablespace_name) df
WHERE fs.tablespace_name (+) = df.tablespace_name
GROUP BY df.tablespace_name,df.bytes
Order by 4;
Tablespace Size (MB) Free (MB) % Free % Used
---------------- ---------- ---------- ---------- ----------
UNDOTBS1 55 .25 0 100
SYSTEM 780 4.4375 1 99
SYSAUX 700 34.0625 5 95
USERS 5 3.3125 66 34
ADOTBS 10 8.6875 87 13
LOW_COST_STORE 200 199 100 1
6 rows selected.

SQL> ALTER TABLE employee ILM ADD POLICY TIER TO low_cost_store;


Table altered.
SQL> COL policy_name format A12
SQL> COL TIER_TBS format A20
SQL> SELECT policy_name, action_type, scope, tier_tablespace "TIER_TBS"
FROM user_ilmdatamovementpolicies ORDER BY policy_name;
POLICY_NAME ACTION_TYPE SCOPE TIER_TBS
------------ ----------- ------- --------------------
P1 STORAGE SEGMENT LOW_COST_STORE

SQL> SELECT policy_name, object_name, inherited_from, enabled


FROM user_ilmobjects;
POLICY_NAME OBJECT_NAME INHERITED_FROM ENA
------------ ------------ -------------------- ---
P1 EMPLOYEE POLICY NOT INHERITED YES

SQL> COL name format A20


SQL> COL value format 9999
SQL> SELECT * FROM dba_ilmparameters;
NAME VALUE
-------------------- -----
ENABLED 1
JOB LIMIT 10
EXECUTION MODE 3
EXECUTION INTERVAL 15
TBS PERCENT USED 85
TBS PERCENT FREE 25
6 rows selected.

SQL> connect / as sysdba


Connected.

SQL> EXEC
dbms_ilm_admin.customize_ilm(DBMS_ILM_ADMIN.TBS_PERCENT_FREE,95);
PL/SQL procedure successfully completed.

SQL> EXEC
dbms_ilm_admin.customize_ilm(DBMS_ILM_ADMIN.TBS_PERCENT_USED,5);
PL/SQL procedure successfully completed.
SQL> SELECT * FROM dba_ilmparameters;
NAME VALUE
-------------------- -----
ENABLED 1
JOB LIMIT 10
EXECUTION MODE 3
EXECUTION INTERVAL 15
TBS PERCENT USED 5
TBS PERCENT FREE 95
6 rows selected.

SQL> connect system/oracle_4U


Connected.

SQL> declare
v_executionid number;
begin
dbms_ilm.execute_ILM (ILM_SCOPE => dbms_ilm.SCOPE_SCHEMA,
execution_mode => dbms_ilm.ilm_execution_offline,
task_id
=> v_executionid);
end;
/
PL/SQL procedure successfully completed.

SQL> COL tablespace format A16


SQL> SELECT /* + RULE */ df.tablespace_name "Tablespace",
df.bytes / (1024 * 1024) "Size (MB)",
SUM(fs.bytes) / (1024 * 1024) "Free (MB)",
Nvl(Round(SUM(fs.bytes) * 100 / df.bytes),1) "% Free",
Round((df.bytes - SUM(fs.bytes)) * 100 / df.bytes) "% Used"
FROM dba_free_space fs,
(SELECT tablespace_name,SUM(bytes) bytes
FROM dba_data_files
GROUP BY tablespace_name) df
WHERE fs.tablespace_name (+) = df.tablespace_name
GROUP BY df.tablespace_name,df.bytes;
Tablespace Size (MB) Free (MB) % Free % Used
---------------- ---------- ---------- ---------- ----------
USERS 5 3.3125 66 34
SYSAUX 700 34.0625 5 95
ADOTBS 10 9 90 10
UNDOTBS1 55 1
SYSTEM 780 3.6875 0 100
LOW_COST_STORE 200 198.75 99 1
6 rows selected.
SQL> SELECT task_id, state FROM user_ilmtasks;
TASK_ID STATE
---------- ---------
21 COMPLETED

SQL> SELECT TASK_ID, POLICY_NAME, OBJECT_NAME,


SELECTED_FOR_EXECUTION, JOB_NAME
FROM user_ilmevaluationdetails;
TASK_ID POLICY_NAME OBJECT_NAME SELECTED_FOR_EXECUTION
---------- ------------ ------------ ------------------------------------
------
JOB_NAME
-------------------------------------------------------------------------
-------
21 P1 EMPLOYEE SELECTED FOR EXECUTION
ILMJOB42

SQL> SELECT task_id, job_name, job_state FROM user_ilmresults;


TASK_ID
----------
JOB_NAME
-------------------------------------------------------------------------
-------
JOB_STATE
-----------------------------------
21
ILMJOB42
COMPLETED SUCCESSFULLY

SQL> SELECT table_name, tablespace_name FROM user_tables


WHERE table_name = 'EMPLOYEE';
TABLE_NAME
-------------------------------------------------------------------------
-------
TABLESPACE_NAME
------------------------------
EMPLOYEE
LOW_COST_STORE

DISABLE ADO , HEAT MAP

SQL> alter table employee ILM delete_all;


Table altered.
SQL> ALTER SYSTEM SET heat_map=off SCOPE=BOTH;
System altered.

CLEAN STATS

SQL> connect / as sysdba


Connected.

SQL> select OBJ#, TS#, TRACK_TIME from sys.heat_map_stat$;


OBJ# TS# TRACK_TIM
---------- ---------- ---------
-1 -1 15-JUN-14
376 1 15-JUN-14
19283 1 15-JUN-14
16949 1 15-JUN-14
17633 1 15-JUN-14
379 1 15-JUN-14
91269 1 15-JUN-14
16946 1 15-JUN-14
7780 1 15-JUN-14
5512 1 15-JUN-14
19066 1 15-JUN-14
OBJ# TS# TRACK_TIM
---------- ---------- ---------
17636 1 15-JUN-14
19286 1 15-JUN-14
18428 1 15-JUN-14
19069 1 15-JUN-14
7612 1 15-JUN-14
5513 1 15-JUN-14
17 rows selected.

SQL> exec dbms_ilm_admin.clear_heat_map_all


PL/SQL procedure successfully completed.

SQL> select OBJ#, TS#, TRACK_TIME from sys.heat_map_stat$;


OBJ# TS# TRACK_TIM
---------- ---------- ---------
-1 -1 15-JUN-14

Vous aimerez peut-être aussi