Por el momento
Hola, por el momento he averiguado lo siguiente:
db_block_buffers indica el número de bloques en la base de datos almacenados en la caché del SGA (dabase block buffer). Cada database block buffer es igual a un bloque de la base de datos. Los datos leídos de los ficheros de datos (tablas, índices, etc.) son temporalmente almacenados en los database block buffers.
db_block_size (= 2048 = 2K, 8K...) --> Oracle escribe en bloques y su tamaño depende del tipo de filesystem. Debe ser igual al filesystem block size o un múltiplo de él para un rendimiento óptimo. Con df -g podemos averiguar el tamaño del bloque que soporta el tipo de filesystem. Un tamaño grande de bloque mejora la eficiencia del cache de E/S, pero el tamaño de la SGA aumentará para contener los mismos DB_BLOCK_BUFFERS, lo que significa un problema de memoria. Si elegimos un db_block_size menor optimizaremos el uso del espacio pero se realizarán más accesos al disco. Si utilizamos un tamaño mayor, se consume más memoria y puede que ésta esté desaprovechada, ya que a lo mejor sólo queremos escribir un dato en una columna pero consumimos el espacio de lo que ocuparía escrbir datos en cinco columnas, así pués, para columnas con un tamaño grande, es mejor utilizar un db_block_size más grande y a la inversa. Este tamaño no puede ser modificado tras la creación de la base de datos.
Por otro lado, ¿sería correcto decir que para CPUs y APIs de 32 bits = 2^31 = 2GB --> El tamaño máximo de un fichero es de 2GB para que el rendimiento sea óptimo en operaciones con signo y 4GB en operaciones sin signo?
Todo esto viene porque me dijeron que un datafile no lo puedo ampliar tanto como quisiera, sino que es mejor crear nuevos datafiles dentro del mismo tablespace con un tamaño máximo para no afectar el rendimiento de la BD.
Gracias.
|