Espacio oracle 9i
C´ lculo del tamano segun los tipos de datos a ˜ ´
Cuando se crea una tabla y otras estructuras de datos, debe conocerse cu´ nto espacio van a a necesitar. Algunos ejemplos son: 1. El CHAR almacena strings de longitud fija. ˜ Tamano = Longitud * NroBytes por caracter 2. El VARCHAR2 almacena strings de longitud variable. ˜ Tamano = Longitud promedio * NroBytes por caracter 3. El tipo dedatos NUMBER almacena nmeros punto fijo y punto flotante. Se puede especificar ´ ´ la precision (numero total de d´gitos) y la escala (numero total de dgitos a la derecha del ı ´ punto decimal). La precision mxima es 38, y la escala puede variar entre -84 y 127. ˜ Tamano variable, puede ser hasta 21 bytes por fila. ˜ Tamano= 1 + techo((precision/2) +1) 4. El tipo de datos DATE almacena fechas y horas. ˜Tamano = 7 bytes 5. El tipo de datos LONG almacena datos alfanumricos de longitud variable. ˜ Tamano variable, hasta 2 GB por fila ´ ı 6. El tipo de datos ROWID representa la direccion f´sica para una fila. ˜ Tamano: 16 bytes por fila
2.
Espacio requerido para almacenar tablas no agrupadas
La cantidad de espacio requerido para almacenar las non-clustered tables depende de: 1. La cantidadtotal de espacio para el encabezado (header) del bloque. ˜ TamanoHeader = KCBH +UB4 + KTBBH + (INITRANS -1) * KTBIT + KDBH donde, ˜ KCBH, UB4, KTBBH, KTBIT, KDBH son constantes cuyo tamano puede ser obtenido seleccionando las entradas de la vista V$TYPE SIZE. 1
KCBH: espacio de encabezado que Oracle coloca por defecto a cualquier bloque. ( Valor 20) UB4: espacio reservado para marcar el tipo dedatos contenido en el bloque de datos. (Valor 4) KTBBH: espacio requerido para controlar las posibles transacciones concurrentes. (Valor 48) ´ KTBIT: espacio requerido para el control de una transaccion concurrente sobre el bloque de datos. (Valor 24) KDBH: espacio de encabezado que Oracle coloca a cualquier bloque de datos. (Valor 14) ´ INITRANS: numero inicial de entradas de transaccionesasignadas a la tabla. Puede verificar el valor de estos par´ metros en su instancia de Oracle. a 2. La cantidad de espacio disponible por bloque de datos. espacioDisponible = (hsize ∗ (1 − P CT F REE/100)) − KDBT donde ˜ hsize = BD BLOCK SIZE TamanoHeader; ˜ BD BLOCK SIZE: tamano del bloque de Oracle KDBT: espacio reservado para el directorio de tablas. (Valor 4) 3. La cantidad de espacio usado por cadafila. ˜ Tamano de una columna = columnSize + N If columnSize < 250, N=1 ; else N=3 columnSize se puede determinar con avg(vsize(colname)) de cada columna de la tabla. ˜ rowSize = rowHeader + suma de los tamanos de las columnas, donde rowHeader = (3*UB1) SpaceUsedPerRow = MAX(UB1*3 +UB4 +SB2, rowSize) + SB2, donde UB1= 1, UB4 = 4 y SB2 = 2 ´ 4. El numero de filas que pueden ser almacenadas en un bloquede datos. (espacioDisponible/SpaceU sedP erRow) ˜ ´ Este procedimiento solamente estima el tamano de una tabla, no da un valor exacto del numero de bloques. El valor obtenido en estos c´ lculos se puede utilizar para definir el par´ metro INITIAL a a de la tabla en el CREATE TABLE. Una vez que se crea y se usa la tabla, el espacio requerido puede ser mayor que el estimado. Generalmente se requieremas espacio durante el uso por la forma en como Oracle administra el espacio libre o el que se va liberando.
2
3.
Espacio estimado para los ´ndices ı
La cantidad de bloques requeridos para almacenar un archivo de ´ndice depende de: ı ˜ El tamano total del header del bloque de ´ndice. ı Block header size = fixed header + variable transaction header donde, fixed header= 113 variabletransaction header= 24* INITRANS, donde el valor por defecto de INITRANS es 2. ´ El espacio disponible para datos en cada bloque. Se utiliza la misma formula que para las tablas no agrupadas. ´ La longitud promedio de la combinacion de las columnas ´ndice. Antes de poder calcular el ı espacio ocupado por una fila del ´ndice, es necesario calcular la longitud promedio de las ı columnas que conforman el...
Regístrate para leer el documento completo.