2026-03-12 20:23:15
This commit is contained in:
96
idev/dba_rebuild_indexes.sql
Normal file
96
idev/dba_rebuild_indexes.sql
Normal file
@@ -0,0 +1,96 @@
|
||||
-- +----------------------------------------------------------------------------+
|
||||
-- | Jeffrey M. Hunter |
|
||||
-- | jhunter@idevelopment.info |
|
||||
-- | www.idevelopment.info |
|
||||
-- |----------------------------------------------------------------------------|
|
||||
-- | Copyright (c) 1998-2012 Jeffrey M. Hunter. All rights reserved. |
|
||||
-- |----------------------------------------------------------------------------|
|
||||
-- | DATABASE : Oracle |
|
||||
-- | FILE : dba_rebuild_indexes.sql |
|
||||
-- | CLASS : Database Administration |
|
||||
-- | PURPOSE : This script generates another script that will include all of |
|
||||
-- | the ALTER INDEX REBUILD .... commands needed to rebuild a |
|
||||
-- | tablespaces indexes. This script will prompt the user for the |
|
||||
-- | tablespace name. This script must be run be a user with the DBA |
|
||||
-- | role under Oracle7. |
|
||||
-- | NOTE : As with any code, ensure to test this script in a development |
|
||||
-- | environment before attempting to run it in production. |
|
||||
-- +----------------------------------------------------------------------------+
|
||||
|
||||
SET TERMOUT OFF;
|
||||
COLUMN current_instance NEW_VALUE current_instance NOPRINT;
|
||||
SELECT rpad(instance_name, 17) current_instance FROM v$instance;
|
||||
SET TERMOUT ON;
|
||||
|
||||
PROMPT
|
||||
PROMPT +------------------------------------------------------------------------+
|
||||
PROMPT | Report : Rebuild Index Build Script |
|
||||
PROMPT | Instance : ¤t_instance |
|
||||
PROMPT +------------------------------------------------------------------------+
|
||||
|
||||
PROMPT
|
||||
ACCEPT TS_NAME CHAR PROMPT 'Enter the index tablespace name : '
|
||||
|
||||
PROMPT
|
||||
PROMPT Thanks... Creating rebuild index script for tablespace: &TS_NAME
|
||||
|
||||
SET ECHO OFF
|
||||
SET FEEDBACK OFF
|
||||
SET HEADING OFF
|
||||
SET LINESIZE 180
|
||||
SET PAGESIZE 0
|
||||
SET TERMOUT ON
|
||||
SET TIMING OFF
|
||||
SET TRIMOUT ON
|
||||
SET TRIMSPOOL ON
|
||||
SET VERIFY OFF
|
||||
|
||||
CLEAR COLUMNS
|
||||
CLEAR BREAKS
|
||||
CLEAR COMPUTES
|
||||
|
||||
SET TERMOUT OFF
|
||||
|
||||
spool rebuild_&TS_NAME._indexes.sql
|
||||
|
||||
SELECT 'REM FILE : rebuild_&TS_NAME._indexes.sql' FROM dual;
|
||||
SELECT ' ' FROM dual;
|
||||
SELECT 'REM' FROM dual;
|
||||
SELECT 'REM ***** ALTER INDEX REBUILD commands for tablespace: &TS_NAME' FROM dual;
|
||||
SELECT 'REM' FROM dual;
|
||||
SELECT ' ' FROM dual;
|
||||
|
||||
SELECT
|
||||
'REM +------------------------------------------------------------------------+' || chr(10) ||
|
||||
'REM | INDEX NAME : ' || owner || '.' || segment_name
|
||||
|| lpad('|', 58 - (length(owner) + length(segment_name)) )
|
||||
|| chr(10) ||
|
||||
'REM | BYTES : ' || bytes
|
||||
|| lpad ('|', 59-(length(bytes)) ) || chr(10) ||
|
||||
'REM | EXTENTS : ' || extents
|
||||
|| lpad ('|', 59-(length(extents)) ) || chr(10) ||
|
||||
'REM +------------------------------------------------------------------------+' || chr(10) ||
|
||||
'ALTER INDEX ' || owner || '.' || segment_name || chr(10) ||
|
||||
' REBUILD ONLINE' || chr(10) ||
|
||||
' TABLESPACE ' || tablespace_name || chr(10) ||
|
||||
' STORAGE ( ' || chr(10) ||
|
||||
' INITIAL ' || initial_extent || chr(10) ||
|
||||
' NEXT ' || next_extent || chr(10) ||
|
||||
' MINEXTENTS ' || min_extents || chr(10) ||
|
||||
' MAXEXTENTS ' || max_extents || chr(10) ||
|
||||
' PCTINCREASE ' || pct_increase || chr(10) ||
|
||||
');' || chr(10) || chr(10)
|
||||
FROM dba_segments
|
||||
WHERE segment_type = 'INDEX'
|
||||
AND owner NOT IN ('SYS')
|
||||
AND tablespace_name = UPPER('&TS_NAME')
|
||||
ORDER BY owner, bytes DESC
|
||||
/
|
||||
|
||||
SPOOL OFF
|
||||
|
||||
SET TERMOUT ON
|
||||
|
||||
PROMPT
|
||||
PROMPT Done... Built the script rebuild_&TS_NAME._indexes.sql
|
||||
PROMPT
|
||||
Reference in New Issue
Block a user