ACE Director Alum Daniel Morgan, founder of Morgan's Library, is scheduling
complimentary technical Workshops on Database Security for the first 30
Oracle Database customers located anywhere in North America, EMEA, LATAM, or
APAC that send an email to
asra_us@oracle.com. Request a Workshop for
your organization today.
Purpose
Internal utilities for verifying and rebuilding indexes and index components
Returns database parameters relating to index rebuild
dbms_i_index_utl.collect_parameters(
parameters OUT VARCHAR2 dbms_i_index_utl.parametername_array,
paramvals OUT VARCHAR2 dbms_i_index_utl.parameterval_array,
events OUT NUMBER dbms_i_index_utl.number_array,
eventvals OUT NUMBER dbms_i_index_utl.number_array);
conn sys@pdbdev as sysdba
DECLARE
pna dbms_i_index_utl.parametername_array;
pva dbms_i_index_utl.parameterval_array;
eva dbms_i_index_utl.number_array;
evl dbms_i_index_utl.number_array;
BEGIN
dbms_i_index_utl.collect_parameters(pna, pva, eva, evl);
FOR i IN 1 .. pna.COUNT LOOP
dbms_output.put_line(pna(i));
dbms_output.put_line(pva(i));
END LOOP;
END;
/
dbms_i_index_utl.get_rebuild_command(
ctype IN VARCHAR2, -- G=global, L=local
iowner IN VARCHAR2,
iname IN VARCHAR2,
cname IN VARCHAR2)
RETURN VARCHAR2;
conn uwclass/uwclass@pdbdev
set serveroutput on
DECLARE
oput VARCHAR2(1000);
BEGIN
oput := dbms_i_index_utl.get_rebuild_command('G', 'UWCLASS', 'PK_SERVER', 'PK_SERVER');
dbms_output.put_line(oput);
END;
/
conn sh/sh@pdbdev
set serveroutput on
DECLARE
oput VARCHAR2(1000);
BEGIN
oput := dbms_i_index_utl.get_rebuild_command('L', 'SH', 'COSTS_TIME_BIX', 'COSTS_Q4_2001');
dbms_i_index_utl.i_analyze_index(
index_owner IN VARCHAR2,
index_name IN VARCHAR2,
index_comp IN VARCHAR2,
index_subcomp IN VARCHAR2,
sample_pct IN BINARY_INTEGER);
dbms_i_index_utl.i_build_indexes(
ctypes IN dbms_i_index_utl.symbol_array,
iowners IN dbms_i_index_utl.name_array,
inames IN dbms_i_index_utl.name_array,
cnames IN dbms_i_index_utl.name_array,
degrees IN dbms_i_index_utl.number_array,
rowcnts IN dbms_i_index_utl.number_array,
join_idx_flags IN dbms_i_index_utl.symbol_array,
concurrent IN BOOLEAN,
cont_after_err IN BOOLEAN,
maxdop IN BINARY_INTEGER,
num_errors IN OUT BINARY_INTEGER,
retry_online IN BOOLEAN);
dbms_i_index_utl.pack_parameters(
env_pipe IN VARCHAR2 PL/SQL TABLE,
parameters IN VARCHAR2 dbms_i_index_utl.parametername_array,
paramvals IN VARCHAR2 dbms_i_index_utl.parametername_array,
events IN NUMBER dbms_i_index_utl.number_array,
eventvals IN NUMBER dbms_i_index_utl.number_array);
dbms_i_index_utl.rebuild_index(
pipe IN VARCHAR2,
jobno IN BINARY_INTEGER,
ctype IN VARCHAR2,
iowner IN VARCHAR2,
iname IN VARCHAR2,
cname IN VARCHAR2,
mvidx IN BINARY_INTEGER,
rscs IN BINARY_INTEGER,
ronline IN BOOLEAN);
dbms_i_index_utl.rebuild_index_list(
inpipe IN VARCHAR2,
jobid IN BINARY_INTEGER,
outpipe IN VARCHAR2,
cont_after_err IN BINARY_INTEGER,
degree IN BINARY_INTEGER);
dbms_i_index_utl.submit_idx_rebuild_job(
sched_class IN VARCHAR2,
jobname IN VARCHAR2,
jobaction IN VARCHAR2,
jobcomment IN VARCHAR2,
this_inst IN BINARY_INTEGER,
jobno OUT BINARY_INTEGER,
submit_as_job IN BOOLEAN);
dbms_i_index_utl.verify_idx_comp(
comp_name IN VARCHAR2,
idx_name IN VARCHAR2,
idx_owner_name IN VARCHAR2)
RETURN BINARY_INTEGER;
conn uwclass/uwclass@pdbdev
CREATE TABLE range_part (
prof_history_id NUMBER(10),
person_id NUMBER(10) NOT NULL,
organization_id NUMBER(10) NOT NULL,
record_date DATE NOT NULL)
PARTITION BY RANGE (record_date) (
PARTITION yr0 VALUES LESS THAN (TO_DATE('01-JAN-2016','DD-MON-YYYY')),
PARTITION yr1 VALUES LESS THAN (TO_DATE('01-JAN-2017','DD-MON-YYYY')),
PARTITION yr2 VALUES LESS THAN (TO_DATE('01-JAN-2018','DD-MON-YYYY')),
PARTITION yr9 VALUES LESS THAN (MAXVALUE));
CREATE INDEX ix_range_part_phid
ON range_part(prof_history_id)
LOCAL;
conn / as sysdba
SELECT dbms_i_index_utl.verify_idx_comp('YR0', 'IX_RANGE_PART_PHID', 'UWCLASS')
FROM dual;
Returns the object identifier for a table component
dbms_i_index_utl.verify_tab_comp(
comp_name IN VARCHAR2,
table_name IN VARCHAR2,
tab_owner_name IN VARCHAR2)
RETURN BINARY_INTEGER;
conn uwclass/uwclass@pdbdev
CREATE TABLE range_part (
prof_history_id NUMBER(10),
person_id NUMBER(10) NOT NULL,
organization_id NUMBER(10) NOT NULL,
record_date DATE NOT NULL)
PARTITION BY RANGE (record_date) (
PARTITION yr0 VALUES LESS THAN (TO_DATE('01-JAN-2016','DD-MON-YYYY')),
PARTITION yr1 VALUES LESS THAN (TO_DATE('01-JAN-2017','DD-MON-YYYY')),
PARTITION yr2 VALUES LESS THAN (TO_DATE('01-JAN-2018','DD-MON-YYYY')),
PARTITION yr9 VALUES LESS THAN (MAXVALUE));
conn / as sysdba
SELECT dbms_i_index_utl.verify_tab_comp('YR0', 'RANGE_PART', 'UWCLASS')
FROM dual;
SELECT dbms_i_index_utl.verify_tab_comp('YR2', 'RANGE_PART', 'UWCLASS')
FROM dual;
SELECT dbms_i_index_utl.verify_tab_comp('YR8', 'RANGE_PART', 'UWCLASS')
FROM dual;