¿Esto es posible? O al menos estoy buscando tener una lista del tamaño de todas las filas en una tabla.Oracle - ¿Cómo obtengo el tamaño real de un ROW específico?
Respuesta
select vsize(col1) + vsize(col2) + vsize(col3) +
long_raw_length_function(long_col) + DBMS_LOB.GETLENGTH(blob_col)
from table
where id_col = id_val;
para la long_raw_length_function, vea este Get the LENGTH of a LONG RAW
si usted está interesado en la longitud media de registro, se puede analizar la mesa (con el paquete DBMS_STATS), a continuación, consulta ALL_TABLES.avg_row_len
.
Puede devolver un valor inferior a la suma de las longitudes de columna en bytes. ¿Refleja el espacio de almacenamiento en disco real tomado por una fila promedio? – Olexa
@olexa: Parece que la columna 'avg_row_len' tiene en cuenta el [espacio real ocupado por los datos] (https: //asktom.oracle.com/pls/asktom/f? P = 100: 11: 0 :::: P11_QUESTION_ID: 1041629603947). En la mayoría de los casos, debe ser mayor que el promedio de la suma del tamaño de las columnas individuales, ya que hay una pequeña sobrecarga en el nivel de la columna (por ejemplo: los valores NULL ocupan espacio cuando no están al final de una fila). Por supuesto, si usa compresión, podría ser menor. –
A continuación se muestra la consulta que he modificado para obtener la longitud de la fila de la tabla cuando no hay datos. Esto puede ayudarlo con la planificación de capacidad para la configuración del entorno:
SET serveroutput ON linesize 300
DECLARE
v_max_size NUMBER := 0;
v_owner VARCHAR2(30);
v_table_name VARCHAR2(30);
v_data_type VARCHAR2(30);
v_data_length NUMBER := 0;
v_data_precision NUMBER := 0;
CURSOR CUR_TABLE
IS
SELECT DISTINCT table_name
FROM all_tab_columns
WHERE owner='TMS_OWNER'
AND table_name NOT LIKE 'VIEW%'
ORDER BY table_name;
BEGIN
FOR Tab IN CUR_TABLE
LOOP
v_table_name := Tab.table_name;
v_max_size := 0;
FOR i IN
(SELECT owner,
table_name,
data_type,
data_length,
data_precision
FROM all_tab_columns
WHERE owner ='TMS_OWNER'
AND table_name = v_table_name
)
LOOP
IF i.data_type = 'NUMBER' THEN
v_max_size := (v_max_size + i.data_precision);
ELSE
v_max_size := (v_max_size + i.data_length);
END IF;
END LOOP;
dbms_output.put_line(chr(10));
dbms_output.put_line('Table ='||v_table_name||', Max Record Size = '||v_max_size||' bytes');
END LOOP;
END;
/
- 1. En GTK, ¿cómo obtengo el tamaño real de un widget en la pantalla?
- 2. ¿Cómo obtengo el tamaño de pantalla general?
- 3. ¿Cómo obtener el tamaño real de JPanel?
- 4. ¿Cómo obtengo un juego de potencia en un orden específico?
- 5. ¿Cómo puedo calcular el tamaño de un índice de Oracle?
- 6. ¿Cómo obtengo el valor de configuración real en Git?
- 7. Cómo obtengo contenido textual de BLOB en Oracle SQL
- 8. ¿Cómo obtengo el valor en tiempo real del comando 'tiempo'?
- 9. Obtener tamaño de imagen real, después de cambiar el tamaño
- 10. Verificar el tamaño total del archivo de un directorio específico para un usuario específico
- 11. ¿Cómo cambiar el tamaño de una imagen a un tamaño de archivo específico?
- 12. Calcule el tamaño real necesario para un uicontrol de MATLAB
- 13. ¿Cómo obtener el tamaño de fotograma real [UIScreen mainScreen]?
- 14. ¿Cómo obtengo el valor de un nodo específico en un archivo XML?
- 15. ¿Cómo obtengo el año actual utilizando SQL en Oracle?
- 16. CarrierWave y cambiar el tamaño a un ancho específico
- 17. ¿Cómo obtener el tamaño real de CALayer transformado?
- 18. Cómo obtengo el tamaño de clave del certificado
- 19. ¿Cómo obtengo el tiempo de creación real de un archivo en PHP en una Mac?
- 20. Oracle: configuración de la secuencia a un valor específico
- 21. ¿cómo obtengo el tamaño del archivo temporal en Android?
- 22. tamaño de NSImagemage no tamaño real con algunas imágenes?
- 23. Oracle: determinar el tamaño máximo admitido para la expresión regular
- 24. Buscar varchar específico en Oracle Tabla anidada
- 25. Puntero C++ de tamaño de bit específico
- 26. Obteniendo el tamaño real de UserControl antes de renderizar
- 27. ¿Cómo obtener el tamaño real en disco de un archivo de PowerShell?
- 28. row datagridview click
- 29. ¿Cómo obtengo el recuento de elementos (tamaño) de un datastore de dojo?
- 30. Cómo obtengo el tamaño de la pantalla sin incluir el panel lateral de Unity en GDK
es 'herp/derp' reemplazando' foo/bar' por ejemplos arbitrarios en el código? – xdumaine
'herp/derp' es significativamente más despectivo, así que creo que no. –
Gracias, pero ¿y si una de las columnas es un Raw largo? – danboh