Encadenamiento de Filas

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 2

ENCADENAMIENTO DE FILAS TALLERES ORACLE

ENCADENAMIENTO EN FILAS

El encadenamiento se origina cuando los datos de una fila se almacenan en más de un bloque de
datos en disco. Por lo general, se genera cuando el tamaño de la fila excede al tamaño del bloque
de datos o al modificar la estructura de una tabla .

Si nos encontramos en presencia de una tabla con gran cantidad de filas encadenadas 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.

-- 1. CREANDO TABLA DE EJEMPLO


CREATE TABLE ARTICULOS (
id number NOT NULL,
field1 char(2000) DEFAULT 'A' NOT NULL,
field2 char(2000) DEFAULT 'B' NOT NULL,
field3 char(2000) DEFAULT 'C' NOT NULL,
field4 char(2000) DEFAULT 'D' NOT NULL,
field5 char(2000) DEFAULT 'E' NOT NULL,
constraint PK_ID primary key (ID))
TABLESPACE USERS;

-- 2. INSERTANDO REGISTROS
INSERT INTO ARTICULOS (id)
select rownum from all_objects where rownum < 101;

-- 3. EXAMINANDO NÚMERO DE BLOQUES


SELECT DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) "NÚMERO DE BLOQUE", COUNT(*)
FROM ARTICULOS
GROUP BY DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)
ORDER BY DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) ASC;

-- 4. ANALIZANDO ESTADISTICAS DE LA TABLA

ANALYZE TABLE ARTICULOS COMPUTE STATISTICS;

-- 5. EXAMINANDO FILAS ENCADENADAS


SELECT CHAIN_CNT FROM ALL_TABLES
WHERE OWNER = 'SYSTEM' AND TABLE_NAME = 'ARTICULOS';

Se puede verificar la existencia de 100 filas encadenadas

-- 6. CONFIGURANDO AREA DE MEMORIA COMPATIBLE CON BLOQUE DE DATOS


Necesitamos establecer este parámetro para asignar un búfer de memoria dedicado al
almacenamiento de bloques de bases de datos de un tamaño diferente.

ALTER SYSTEM SET db_16k_cache_size = 16m scope=both;

INSTRUCTOR: ALAIN MEJIA AVALOS alain_mejia@talleresoracle.com


ENCADENAMIENTO DE FILAS TALLERES ORACLE

--7. CREANDO UN TABLESPACE CON UN TAMAÑO DE BLOQUE DE 16K


CREATE TABLESPACE TBS_16K BLOCKSIZE 16K DATAFILE 'C:\TEMP\DF_16K.DBF'
SIZE 10M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

-- 8. MOVIENDO LA TABLA AL NUEVO TABLESPACE


ALTER TABLE ARTICULOS MOVE TABLESPACE TBS_16K;

-- 9. RECONSTRUYA LOS INDICES


ALTER INDEX PK_ID REBUILD;

-- 10. ANALIZANDO ESTADISTICAS DE LA TABLA

ANALYZE TABLE ARTICULOS COMPUTE STATISTICS;

-- 11. EXAMINANDO FILAS ENCADENADAS


SELECT CHAIN_CNT FROM ALL_TABLES
WHERE OWNER = 'SYSTEM' AND TABLE_NAME = 'ARTICULOS';

INSTRUCTOR: ALAIN MEJIA AVALOS alain_mejia@talleresoracle.com

También podría gustarte