Eliminar Tabla de la BD
sql>DROP TABLE ESQUEMA.NOM_TABLA CASCADE CONSTRAINTS PURGUE;
Table dropped
Renombrar Tabla de la BD
SQL> alter table ESQUEMA.nom_tabla1 rename to nombre_tabla_copia;
Tabla modificada
Crear table auditoria
CREATE TABLE AUDIT_26022015
TABLESPACE TS_AUDITORIA
AS
SELECT *
FROM SYS.AUD$;
Es una buena practica mover la tabla de TABLESPACES y regresarlo al TABLESPACE original con el fin de que se reorganicen los bloques
y finalmente recontruir los indices
Mover una tabla de tablespaces
ALTER TABLE ESQUEMA.NOM_TABLA MOVE TABLESPACE NOM_TALESPACE;
RECONSTRUIR INDICES
ALTER INDEX ESQUEMA.NOM_INDICE REBUILD;
CREAR INDICES
DROP INDEX NOM_ESQUEMA.INDEX_NOM_TABLE1;
CREATE UNIQUE INDEX NOM_ESQUEMA.INDEX_NOM_TABLE1 ON NOM_ESQUEMA.NOM_TABLE1
(ID_CAMPO_TABLE)
LOGGING
TABLESPACE INDICES
PCTFREE 10
INITRANS 2....................................................................numero minimo de conexiones simultaneas
MAXTRANS 255..............................................................numero maximo de conexiones simultaneas
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;
CAMBIAR EL INITRANS EN UNA TABLA
Consultamos la tabla inicialmente
SELECT TABLE_NAME, OWNER, INI_TRANS, MAX_TRANS FROM ALL_TABLES WHERE OWNER='NOM_USER' AND TABLE_NAME LIKE 'NOM_TABLE';
ALTER TABLE ESQUEMA.OBJETO INITRANS 10 MAXTRANS 255 ;
Es una buena practica mover la tabla de TABLESPACES y regresarlo al TABLESPACE original con el fin de que se reorganicen los bloques
y finalmente recontruir los indices
Consultar las tablas de un esquema Especifico
SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = 'NOM_ESQUEMA';
Asignar permisos select a tablas de otro esquema
SELECT 'GRANT SELECT ON nombre_esquema1.'||TABLE_NAME ||' TO nombre_esquema2;'FROM ALL_TABLES WHERE OWNER = 'nombre_esquema1'
BEGIN
FOR CUR IN (SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = 'nombre_esquema1') LOOP
EXECUTE IMMEDIATE 'GRANT SELECT ON nombre_esquema1.'||CUR.TABLE_NAME||' TO nombre_esquema2';
END LOOP;
END;
Recuperar espacio tablas eliminadas en la BD
SQL> ALTER TABLE ESQUEMA.TABLA ENABLE ROW MOVEMENT;
Tabla modificada.
SQL> ALTER TABLE ESQUEMA.TABLA SHRINK SPACE;
Tabla modificada.
SQL> ALTER TABLE ESQUEMA.TABLA SHRINK SPACE CASCADE;
Tabla modificada.
SQL> ALTER TABLE ESQUEMA.TABLA SHRINK SPACE COMPACT
Tabla modificada.
SQL> ALTER TABLE ESQUEMA.TABLA DISABLE ROW MOVEMENT;
Tabla modificada.
SQL>
Revisar todas las tablas de un esquema para correr estadisticas y reindexar
spool /directorio/indexa.sql
set pages 5000;
set lines 100;
SELECT 'ALTER INDEX'||' '||I.OWNER||'.'||I.INDEX_NAME||' '||'REBUILD;' FROM ALL_INDEXES I WHERE OWNER = 'NOM_ESQUEMA';
SELECT 'ANALYZE TABLE'||' '||T.OWNER||'.'||T.TABLE_NAME||' '||'COMPUTE STATISTICS;' FROM DBA_TABLES T WHERE OWNER = 'NOM_ESQUEMA';
spool off;
set lines 100;
UPDATE
https://www.oracle.com/technetwork/es/articles/sql/optimizacion-operaciones-ddl-2294499-esa.html
Si van a agregarun campo en una tabla con muchos registros con un valor por defecto se debe agregar "not nul"
con el fin de activar la funcion NVL implicita.
SQL> ALTER TABLE NOMBRE_TABLE ADD CAMPO_NUEVO DEFAULT 42 NOT NULL;
LOCK
https://cajondesastreoracle.wordpress.com/tag/lock-table/