Objetos | ExpoDBA

Objetos

Oracle Scripts de verificación de Objetos, constraints, DDL, DML, Comparaciones, Replicacion, entre otras

Compilar objetos inválidos UTLRP.SQL

Este script que viene con la instalación de oracle desde 8.1.7.4 y recompila todos los objectos invalidos y puede ser ejecutado en cualquier momento.
Hace uso de UTL_RECOMP para compilar los objetos.

Compila todos los objetos inválidos:

@$ORACLE_HOME/rdbms/admin/utlrp.sql;

Para verificar el avance podemos ver la cantidad de objetos que quedan por compilar:

Indices inválidos (INVALID INDEXES)

Muestra una lista de indices inválidos tanto indices globales, locales, noparticionados, particionados, y subparticionados.

select owner, index_name, 'NONE' partition, 'NONE' subpartition 
from dba_indexes 
where status = 'INVALID' 
union all 
select index_owner owner, index_name index_name, partition_name partition, 'NONE' subpartition 

Compressed Blocks en Compressed Segments

Muestra para el semento indicado, si está en modo compress o si tiene bloques comprimidos dentro del segmento.
Debe ejecutarse como SYS.

set linesize 200
select u.name, o.name, o.subname,s.spare1, decode (BITAND(s.spare1, 4096), 4096, 'COMPRESSED', 'UNCOMPRESSED') Block, 
decode (BITAND(s.spare1, 2048), 2048, 'COMPRESSED', 'UNCOMPRESSED') Segment

Filas por bloque de una tabla

Muestra cantidad promedio, máximo y mínimo de filas por bloque que tiene una determinada tabla.

select    avg(row_count) avg, max(row_count) max , min(row_count) min
from      (  
	select  count(9) row_count
	from    &table_name
	group   by substr(rowid, 1, 15)
  )
/

Borrar todos los objetos de un usuario

Arma y ejecuta un script que borra todos los objetos que se encuentran dentro del esquema indicado.

set pagesize 0
set verify off
set feedback off

select '&&esquema' from dual;

spool borrar_&&esquema..sql

select 'drop table ' ||owner||'.'|| object_name|| ' CASCADE CONSTRAINTS;' 
from dba_objects 

DDL de un objeto existente

Este script devuelve el script de creación del objeto solicitado.
Sirve para cuando necesitamos sacar el script de creación de un objeto que ya existe en la base de datos.

set pagesize 0
set long 100000
SET LONGCHUNKSIZE 10000
SET LINESIZE 1000

select dbms_metadata.get_ddl('&object_type','&object_name','&Owner') from dual;