MINI MINI MANI MO
REM jftorres 02/17/15 - proj 45826: add smb$config.parameter_data CLOB
REM mziauddi 01/22/15 - Long identifiers support
REM ddas 10/30/14 - lrg 12890725: use M_IDEN for sqlobj$plan.category
REM yuli 03/22/12 - bug 13573552: sysaux defaults to force logging
REM rdongmin 08/01/11 - 28394_spm: store query plan rows in sqlobj$plan
REM sankejai 05/08/11 - move object_usage$ to dcore.bsq
REM traney 03/21/11 - 35209: long identifiers dictionary upgrade
REM arbalakr 11/12/09 - increase lengths of module/action
REM schakkap 10/20/06 - move object_usage from doptim.bsq
REM ddas 10/27/06 - rename OPM to SPM
REM ddas 10/02/06 - plan_hash_value=>plan_id, add version
REM mziauddi 09/15/06 - add SPM_TRACING as parameter to smb$config
REM mziauddi 07/17/06 - don't create sql$ as IOT (ebv issue)
REM mziauddi 06/12/06 - enable creation of IOTs
REM mziauddi 06/06/06 - create sequence sqllog$_seq to compute batch#
REM mziauddi 05/11/06 - replace old SQL Tuning Base schema with
REM new SQL Management Base schema
REM jklein 08/01/05 - creation
Rem ===========================================================================
Rem SYSAUX table space definition
Rem ===========================================================================
CREATE TABLESPACE sysaux DATAFILE "D_SXFN"
"D_SDSG" ONLINE FORCE LOGGING
/
alter tablespace system default compress for all operations
/
alter tablespace sysaux default compress for all operations
/
Rem ===========================================================================
Rem Statement log table (is used to recognize repeatable SQL statements)
Rem ===========================================================================
CREATE TABLE sqllog$ (
signature NUMBER,
batch# NUMBER NOT NULL,
CONSTRAINT sqllog$_pkey PRIMARY KEY (signature)
)
ORGANIZATION INDEX
TABLESPACE sysaux
/
Rem - Create sequence to compute sqllog$.batch# value from it.
CREATE SEQUENCE sqllog$_seq
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 100000000000000000000
NOORDER
CYCLE
/
Rem ===========================================================================
Rem SMB configuration table
Rem ===========================================================================
CREATE TABLE smb$config (
parameter_name VARCHAR2("M_IDEN") NOT NULL,
parameter_value NUMBER NOT NULL,
last_updated TIMESTAMP,
updated_by VARCHAR2("M_IDEN"),
parameter_data CLOB
)
TABLESPACE sysaux
/
CREATE UNIQUE INDEX i_smb$config_pkey ON smb$config (parameter_name)
TABLESPACE sysaux
/
Rem ===========================================================================
Rem SQL statement table
Rem ===========================================================================
CREATE TABLE sql$ (
signature NUMBER NOT NULL, /* join key */
inuse_features NUMBER NOT NULL,
flags NUMBER NOT NULL,
spare1 NUMBER,
spare2 CLOB
-- CONSTRAINT sql$_pkey PRIMARY KEY (signature)
)
--ORGANIZATION INDEX
TABLESPACE sysaux
/
CREATE UNIQUE INDEX i_sql$_pkey on sql$ (signature)
TABLESPACE sysaux
/
Rem ===========================================================================
Rem SQL statement text table
Rem ===========================================================================
CREATE TABLE sql$text (
signature NUMBER NOT NULL, /* join key */
sql_handle VARCHAR2("M_IDEN_30") NOT NULL, /* search key */
sql_text CLOB NOT NULL,
spare1 NUMBER,
spare2 CLOB
)
TABLESPACE sysaux
/
CREATE UNIQUE INDEX i_sql$text_pkey ON sql$text (signature)
TABLESPACE sysaux
/
CREATE UNIQUE INDEX i_sql$text_handle ON sql$text (sql_handle)
TABLESPACE sysaux
/
Rem ===========================================================================
Rem SQL management object table
Rem ===========================================================================
CREATE TABLE sqlobj$ (
signature NUMBER, /* join key */
category VARCHAR2("M_IDEN"), /* join key */
obj_type NUMBER, /* join key */
plan_id NUMBER, /* join key */
name VARCHAR2("M_IDEN") NOT NULL, /* search key */
flags NUMBER NOT NULL,
last_executed TIMESTAMP,
spare1 NUMBER,
spare2 CLOB,
CONSTRAINT sqlobj$_pkey PRIMARY KEY (signature,
category,
obj_type,
plan_id)
)
ORGANIZATION INDEX
TABLESPACE sysaux
/
CREATE UNIQUE INDEX i_sqlobj$name_type on sqlobj$(name, obj_type)
TABLESPACE sysaux
/
Rem ===========================================================================
Rem SQL management object data table
Rem ===========================================================================
CREATE TABLE sqlobj$data (
signature NUMBER, /* join key */
category VARCHAR2("M_IDEN"), /* join key */
obj_type NUMBER, /* join key */
plan_id NUMBER, /* join key */
comp_data CLOB NOT NULL, /* hints collection */
spare1 NUMBER,
spare2 CLOB,
CONSTRAINT sqlobj$data_pkey PRIMARY KEY (signature,
category,
obj_type,
plan_id)
)
ORGANIZATION INDEX
TABLESPACE sysaux
/
Rem ===========================================================================
Rem SQL management object plan rows table
Rem ===========================================================================
CREATE TABLE sqlobj$plan (
signature NUMBER, /* join key */
category VARCHAR2("M_IDEN"), /* join key */
obj_type NUMBER, /* join key */
plan_id NUMBER, /* join key */
statement_id VARCHAR2(30),
xpl_plan_id NUMBER,
timestamp DATE,
remarks VARCHAR2(4000),
operation VARCHAR2(30),
options VARCHAR2(255),
object_node VARCHAR2("M_IDEN"),
object_owner VARCHAR2("M_IDEN"),
object_name VARCHAR2("M_IDEN"),
object_alias VARCHAR2(261),
object_instance NUMBER,
object_type VARCHAR2(30),
optimizer VARCHAR2(255),
search_columns NUMBER,
id NUMBER,
parent_id NUMBER,
depth NUMBER,
position NUMBER,
cost NUMBER,
cardinality NUMBER,
bytes NUMBER,
other_tag VARCHAR2(255),
partition_start VARCHAR2(255),
partition_stop VARCHAR2(255),
partition_id NUMBER,
other LONG,
distribution VARCHAR2(30),
cpu_cost NUMBER,
io_cost NUMBER,
temp_space NUMBER,
access_predicates VARCHAR2(4000),
filter_predicates VARCHAR2(4000),
projection VARCHAR2(4000),
time NUMBER,
qblock_name VARCHAR2("M_IDEN"),
other_xml CLOB,
CONSTRAINT sqlobj$plan_pkey PRIMARY KEY (signature,
category,
obj_type,
plan_id,
id)
)
TABLESPACE sysaux
/
Rem ===========================================================================
Rem SQL management object auxiliary data table
Rem ===========================================================================
CREATE TABLE sqlobj$auxdata (
signature NUMBER NOT NULL, /* join key */
category VARCHAR2("M_IDEN") NOT NULL, /* join key */
obj_type NUMBER NOT NULL, /* join key */
plan_id NUMBER NOT NULL, /* join key */
description VARCHAR2(500),
creator VARCHAR2("M_IDEN"),
origin NUMBER NOT NULL, /* manual, auto, etc. */
version VARCHAR2(64), /* db version @ creation */
-- temporal data
created TIMESTAMP NOT NULL,
last_modified TIMESTAMP,
last_verified TIMESTAMP,
-- compilation information
parse_cpu_time NUMBER,
optimizer_cost NUMBER,
-- user criteria
module VARCHAR2(64),
action VARCHAR2(64),
priority NUMBER,
-- execution context
optimizer_env RAW(2000),
bind_data RAW(2000),
parsing_schema_name VARCHAR2("M_IDEN"),
-- execution statistics
executions NUMBER,
elapsed_time NUMBER,
cpu_time NUMBER,
buffer_gets NUMBER,
disk_reads NUMBER,
direct_writes NUMBER,
rows_processed NUMBER,
fetches NUMBER,
end_of_fetch_count NUMBER,
-- map sql object data back to the advisor task that created it
task_id NUMBER, /* adv fmwk task id */
task_exec_name VARCHAR2("M_IDEN"), /* adv fmwk execution name */
task_obj_id NUMBER, /* adv fmwk object id */
task_fnd_id NUMBER, /* adv fmwk finding id */
task_rec_id NUMBER, /* adv fmwk recommendation id */
flags NUMBER, /* spare flags */
spare1 NUMBER,
spare2 CLOB,
task_con_dbid NUMBER /* adv fmwk task cdb container dbid */
)
TABLESPACE sysaux
/
CREATE UNIQUE INDEX i_sqlobj$auxdata_pkey ON sqlobj$auxdata (signature,
category,
obj_type,
plan_id)
TABLESPACE sysaux
/
CREATE INDEX i_sqlobj$auxdata_task ON sqlobj$auxdata (task_id,
task_exec_name,
task_obj_id,
task_fnd_id,
task_rec_id)
TABLESPACE sysaux
/
OHA YOOOO