Diferencia entre revisiones de «Manual del estudiante de Ingeniería en Sistemas de UTN/Bases de datos avanzadas/Objetos de schema»

Contenido eliminado Contenido añadido
Sin resumen de edición
Rgfernan (discusión | contribs.)
Línea 60:
 
Un null solo almacena el tamaño (0).
 
=== Comparación entre LONGs y LOBs ===
<table border="1">
<tr>
<td>'''LOB'''</td><td>'''LONG'''</td>
</tr>
<tr>
<td>Varias columnas</td><td>Una columna</td>
</tr>
<tr>
<td>Hasta 2 gigabytes</td><td>Hasta 4 gigabytes</td>
</tr>
<tr>
<td>Retornan la ubicación</td><td>Retornan los datos</td>
</tr>
<tr>
<td>Almacenan la ubicación (los segmentos están separados de los tablespaces, el acceso es aleatorio por pedazos por medio de interfaces del tipo de archivos)</td><td>Se almacenan como una tabla vinculada (se almacenan como una lista vinculada, de manera que el acceso es secuencial)</td>
</tr>
</table>
 
=== Rowid ===
* Identificador único para cada fila en la Base de Datos.
* No se almacena como una columna con valor.
* Se puede emplear para localizar una fila.
* Medio más rápido para acceder a una fila de la tabla.
* Se almacenan en los índices (asociado con un valor de clave).
 
=== Creación de tablas ===
CREATE TABLE [schema.] table
(column datatype[, column datatype] . . .)
[ TABLESPACE tablespace ]
[ PCTFREE integer ]
[ PCTUSED integer ]
[ INITRANS integer ]
[ MAXTRANS integer ]
[ STORAGE storage-clause]
[ LOGGING | NOLOGGING ]
[ CACHE | NOCACHE ]
Guía para creación de las tablas:
* Asigne las tablas a tablespace separados de aquellos que contienen segmentos de rollback, temporarios y de índices
* Use pocas medidas de extensiones estándar, múltiplo de 5 veces el valor de DB_BLOCK_SIZE para minimizar la fragmentación
* Para la visita de la tabla completa use el parámetro DB_FILE_MULTIBLOCK_READ_COUNT ==> cuantos bloques se leen en conjunto por el servidor
* Use la cláusula CACHE para tablas pequeñas que se acceden frecuentemente.
 
Copia de una tabla existente:
CREATE TABLE new_emp
STORAGE ( INITIAL 200K NEXT 200K
PCTINCREASE 0 MAXEXTENTS 50 )
NOLOGGING
TABLESPACE data02
AS
SELECT * FROM scott.employees;
 
No se copian las restricciones, triggers y los privilegios sobre la tabla. Se copian las definiciones de columnas NOT NULL. El uso de NOLOGGING acelera la creación de la nueva tabla.
 
Efectos de los cambios en los parámetros de almacenamiento:
* NEXT: tamaño que tendrán las próximas extensiones de la tabla (PCTINCREASE).
* PCTINCREASE: para recalcular el valor de NEXT cuando se asigna una nueva.
* MINEXTENTS: debe ser menor o igual al valor actual de MINEXTENTS. No tiene efecto inmediato, se empleará cuando la tabla sea truncada.
* MAXEXTENTS: debe ser mayor o igual que el valor actual de extensiones de la tabla.
* El valor INITIAL no puede ser modificado.
* El valor de NEXT se redondea a un valor múltiplo de la medida del bloque más grande o igual al valor modificado.
 
Efectos de los cambios en PCTFREE y PCTUSED:
PCTFREE: afecta las futuras inserciones. Los bloques llenos no se afectan hasta que no estén de nuevo en la lista de bloque libres.
PCTUSED: afectan a todos los bloques de la tabla. En las actualizaciones o eliminaciones se verifica el espacio respecto del nuevo valor de PCTUSED.
INITRANS: sólo afecta a los nuevos bloques.
MAXTRANS: afecta a todos los bloques de la tabla.
 
=== Truncado de tablas ===
 
TRUNCATE TABLE [schema.] table
[ ( DROP | REUSE) STORAGE]
 
* Se borran todas las filas de la tabla.
* No se generan datos de rollback (se comete implícitamente).
* Los índice correspondientes también son truncados.
* Una tabla que está siendo referenciada por una clave foránea no puede ser truncada.
* No se disparan los triggers de eliminación cuando se emplea este comando.
* Si se emplea la cláusula DROP (valor por omisión):
** Todas las extensiones excepto MINEXTENTS se desasignan.
** High water mark se ubica en el primer bloque de la tabla.
** NEXT_EXTENT se actualiza al valor de MINEXTENTS.
* Si se especifica la cláusula REUSE se retiene todo el espacio usado por las tablas.
* Los índices se eliminan independientemente del uso de REUSE ó DROP.
 
== Vistas ==