Quiero encontrar el espacio real que consumen los índices en una tabla en Oracle 10g. No tengo la intención de incluir el espacio reservado por Oracle para uso futuro. (No se debe considerar la sobrecarga por Oracle). Quiero los bytes usados, no los bytes asignados.
¿Me pueden ayudar a seguir adelante?
Además, ¿hay alguna manera de encontrar el tamaño real de un campo largo en una tabla?
PD: vsize () y dbms_lob.getlength () no funcionan.
oracle
oracle-10g
Igualitario
fuente
fuente
Respuestas:
le mostrará la cantidad de espacio realmente consumido por cada índice. No estoy claro si eso es exactamente qué tipo de sobrecarga está tratando de explicar y cómo distingue "usado" y "asignado" en el contexto de un índice. Si desea tener en cuenta el espacio libre en el índice, puede usar el procedimiento DBMS_SPACE.SPACE_USAGE para determinar cuántos bloques parcialmente vacíos hay en el índice.
fuente
delete <<name of table>>
) en comparación con el tamaño utilizado que variaría con el número de entradas en el índice.SELECT idx.index_name, SUM(bytes) FROM user_segments seg, user_indexes idx WHERE idx.table_name = 'EMERGE_REPORTING_DETAIL' AND idx.index_name = seg.segment_name GROUP BY idx.index_name
Para medir el tamaño del índice (lo que creo que es su comprensión del) asignado y usado, probablemente usaría
dbms_space
Este procedimiento mide el tamaño asignado y utilizado de un índice llamado * TQ84_SIZE_IX *. Para completar, también he agregado el recuento de bytes según lo informado por
user_segments
.Ahora, este procedimiento se puede ver en acción:
Con una entrada en el índice, se devuelven las siguientes cifras:
Llenar el índice ...
... y obteniendo las cifras otra vez ...
...informes:
Entonces, si el índice está "vacío":
muestra:
lo que demuestra que el tamaño asignado no se reduce mientras que el tamaño utilizado sí.
fuente
En caso de que alguien venga buscando una forma de encontrar el tamaño de un campo largo, a continuación hay una forma de hacerlo. Eliminaré esta respuesta si la pregunta está separada.
Data de muestra...
Función para hacer el trabajo ... (Para producción, esto debería estar en un paquete)
Probar la función ...
fuente
Tuve que modificar la respuesta de René Nyffenegger para que sea más genérico y más fácil ver el uso del espacio para todos los índices en un esquema.
Pensé que compartiría el código modificado aquí, en caso de que alguien más lo encuentre útil:
fuente