ver update que manejo longitud insertar como campo oracle blob

update - que es un clob en oracle



¿Comprende los segmentos de Lob(SYS_LOB) en Oracle? (1)

La mayoría de las tablas (si no todas) tienen un campo "blob". Una de las tablas que almacena los registros de la acción del usuario ahora ha crecido a 8 GB (aproximadamente 5 millones de registros).

Y nuestro DBA ha visto que este esquema ahora está comiendo espacio exponencialmente. Investigamos un poco y descubrimos que hay una de las tablas con (SYS_LOB) que toma alrededor de 116GB de base de datos de 140GB.

Nuestro DBA nos ha dicho que esta tabla está relacionada con la tabla que guarda los registros de las acciones de los usuarios (que son 8GB)

¿Alguien sabe lo que hace esta tabla SYS_LOB? ¿Se guarda el blob real en la tabla que creamos? O Oracle almacena estos blob en una tabla diferente (si es así, entonces SYS_LOB sería esa tabla)?


No hay tabla SYS_LOB en la base de datos Oracle (al menos, no existe una tabla que sea parte de una instalación básica de base de datos. Hay una tabla DBA_LOBS que muestra información sobre todas las columnas LOB en la base de datos, pero en realidad no almacene cualquier información LOB, solo metadatos. Los segmentos reales LOB en la base de datos tienen nombres generados por el sistema que toman el formato SYS_LOB identifier $$.

Supongo que su DBA ha identificado un segmento llamado identificador SYS_LOB $$ que consume 116 GB de espacio. Suponiendo que es correcto, puede averiguar qué columna de qué tabla asigna la columna LOB utilizando la tabla DBA_LOBS , es decir,

SELECT owner, table_name, column_name FROM dba_lobs WHERE segment_name = ''SYS_LOB<<identifier>>$$''