Skip to main content

Reorg Script for Oracle Tables Within the Same Tablespace

 -- Ensure you're logged in as the appropriate user


-- 1. Define variables for schema and table names

DEFINE schema_name = 'YOUR_SCHEMA_NAME';

DEFINE table_name = 'YOUR_TABLE_NAME';


-- 2. Check the status and size of the table before reorganization

SELECT table_name, num_rows, blocks, empty_blocks, avg_row_len

FROM dba_tables

WHERE owner = '&schema_name'

AND table_name = '&table_name';


-- 3. Move the table within the same tablespace to reorganize it

-- No tablespace specified, it will remain in the same tablespace

ALTER TABLE &schema_name..&table_name MOVE;


-- 4. Rebuild indexes associated with the table

-- Get all indexes associated with the table

SELECT 'ALTER INDEX ' || index_name || ' REBUILD;' 

FROM dba_indexes 

WHERE owner = '&schema_name'

AND table_name = '&table_name';


-- 5. Gather statistics for the table after reorganization

EXEC DBMS_STATS.GATHER_TABLE_STATS('&schema_name', '&table_name');


-- 6. Check the table status and size after reorganization

SELECT table_name, num_rows, blocks, empty_blocks, avg_row_len

FROM dba_tables

WHERE owner = '&schema_name'

AND table_name = '&table_name';


-- 7. Optionally, shrink the table space after reorganization (use with caution)

ALTER TABLE &schema_name..&table_name SHRINK SPACE CASCADE;


-- 8. If partitioned, handle partitions separately

-- ALTER TABLE &schema_name..&table_name MOVE PARTITION partition_name;


Comments

Popular posts from this blog

ORA-28007: THE PASSWORD CANNOT NE REUSED

             - Here will see how to deal with  => ORA-28007: the password cannot be reused -  I got a request from client user, stating his account has been locked. When I check the status of the account I found the below. connect to SYS user & execute the below query of that database. SQL> select password,username,account_status,profile from dba_users where username='TEST'; PASSWORD               USERNAME   ACCOUNT_STATUS                 PROFILE ------------------             ----------------  -------------------------------           -------------------- AB2Aa8AC9971521e3     TEST       EXPIRED(GRACE)&LOCKED    NONAPP_USERS So, then I have unlocked the account and checked the same again & I found the below results. ...

CHANGING DBID FOR ORACLE DATABASE 11G

C:\Users\computer>sqlplus SQL*Plus: Release 11.1.0.7.0 - Production on Thu Sep 10 21:03:33 2013 Copyright (c) 1982, 2008, Oracle.  All rights reserved. Enter user-name: sys as sysdba Enter password: Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select dbid from v$database;       DBID ---------- 2188161033 SQL> exit Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options C:\Users\computer>nid DBNEWID: Release 11.1.0.7.0 - Production on Thu Sep 10 21:04:44 2013 Copyright (c) 1982, 2007, Oracle.  All rights reserved. Keyword     Description                    (Default) ---------------------------------------------------- TARGET ...