15 Jun
Posted by: gato in: Administration, DBA, Oracle
It is possible to speed up creation/rebuild process of a large index using keywords PARALLEL, and NOLOGGING:
ALTER SESSION ENABLE PARALLEL DDL;
CREATE INDEX INDEX_OWNER.INDEX_NAME
ON TABLE_NAME ( col1 , col2, ..)
NOLOGGING PARALLEL
TABLESPACE TABLESPACE_NAME
/
– or
ALTER INDEX INDEX_OWNER.INDEX_NAME
REBUILD NOLOGGING PARALLEL
/
Don’t forget to set back LOGGING and NOPARALLEL options, because create/rebuild will set these options.
ALTER INDEX INDEX_OWNER.INDEX_NAME LOGGING NOPARALLEL;
Estimate statistics:
BEGIN
DBMS_STATS.GATHER_INDEX_STATS(
OWNNAME [...]
You can use the following techniques to speed up search in the code:
Packages, functions, and procedures:
SELECT –+ORDERED PARALLEL(A)
B.OBJECT_NAME,
A.LINE,
A.SOURCE
FROM SYS.SOURCE$ A,
DBA_OBJECTS B
WHERE UPPER (A.SOURCE)
LIKE ‘%SEARCH STRING%’
AND B.OWNER = ‘OBJ_OWNER’
AND A.OBJ# = B.OBJECT_ID
/
Views:
– create tmp table
CREATE TABLE VIEW_CONVERT
(
OWNER VARCHAR2(255),
VIEW_NAME VARCHAR2(255),
VIEW_TEXT CLOB
)
NOLOGGING PARALLEL PCTFREE 0
/
– fill table and convert long column
INSERT –+APPEND
INTO VIEW_CONVERT NOLOGGING
SELECT –+PARALLEL(AA)
OWNER
, VIEW_NAME
, TO_LOB(TEXT)
FROM [...]