viernes, 24 de junio de 2011
Cómo determinar si solo son números?
martes, 21 de junio de 2011
Borrar filas duplicadas
jueves, 16 de junio de 2011
START WITH .... CONNECT BY
miércoles, 15 de junio de 2011
Filas Encadenadas
Qué son????
Cuando el tamaño de una fila supere el tamaño de un bloque de la base de datos, puede generarse una migración o un encadenamiento de la fila.
Cuando hablamos de filas migradas nos referimos a una fila que se mueve completa de un bloque a otro dejando en el bloque original un puntero.
Cuando hablamos de filas encadenadas nos referimos a filas que requieren más de un bloque para su almacenamiento.
Si nos encontramos en presencia de una tabla con gran cantidad de filas encadenadas o migradas quiere decir que la base de datos va a tener que realizar varias lecturas físicas para poder procesar los datos de una misma fila lógica.
Como evitamos entonces el encadenamientos? Seteando un valor adecuado de pctfree en nuestra tabla.
Otra solución es un expdp/impdp de las tablas en cuestion
Si quisiéramos solucionar el problema de filas encadenadas debemos seguir los siguientes pasos:
Paso 1:
Correr el script utlchain.sql el cual crea la tabla CHAINED_ROWS.
Paso 2:
Revisamos la/s tabla para ver si poseen filas encadenadas. De poseerlas se insertaran en la tabla CHAINED_ROWS.
SQL> ANALYZE TABLE
Paso 3:
Creamos una tabla auxiliar la cual llenaremos con las “filas duplicadas” de nuestra tabla
SQL> CREATE TABLE aux AS
2 SELECT * from
4 (SELECT head_rowid
5 FROM chained_rows
6 WHERE table_name = ‘nuestra tabla’);
Paso 4:
Borramos las filas encadenadas de nuestra tabla
SQL> DELETE FROM
3 (SELECT head_rowid
4 FROM chained_rows
5 WHERE table_name = ‘nuestra tabla’);
Paso 5:
Volvemos a insertar las tablas antes encadenadas en nuestra tabla
SQL> INSERT INTO
Paso 6:
Realizar nuevamente la verificación para cerciorarse de que no queden filas encadenadas
SQL> DELETE CHAINED_ROWS WHERE table_name = 'nuestra tabla';
SQL> ANALYZE TABLE nombre_de_la_tabla
2 LIST CHAINED ROWS INTO chained_rows;
SQL> SELECT * FROM chained_rows WHERE table_name = 'nuestra tabla';
Espero les haya servido
Saludos!
Gondalf
miércoles, 1 de junio de 2011
Diferentes seteos del parametro AUDIT_TRAIL
Los diferentes valores que le podemos setear son:
- none: Desactiva la auditoria en la base de datos.
- os: Activa la auditoria, dejando los registros de auditoría en un archivo en nuestro sistema operativo.
- db: Activa la auditoria, los registros de auditoría son escritos en nuestra base de datos. Mas precisamente en la tabla SYS.AUD$.
- db,extended: Activa la auditoria, dejando los registros de auditoría en nuestra base de datos. Mas precisamente en la tabla SYS.AUD$.
Ademas, completa los campos SQLBIND and SQLTEXT de la tabla SYS.AUD$, cabe aclarar que dichos campos son del tipo CLOB.
- xml: Activa la auditoria, en donde los registros de auditoría son escritos en formato XML en un archivo en el sistema operativo
- xml,extended: Igual a la opción anterior pero agregando los valores SQLBIND and SQLTEXT al archivo.
Espero les haya servido.
Saludos!
Gondalf