Ver Mensaje Individual
  #5 (permalink)  
Antiguo 05/05/2010, 13:13
Avatar de 8vio
8vio
 
Fecha de Ingreso: marzo-2008
Ubicación: Detras del monitor
Mensajes: 168
Antigüedad: 16 años, 8 meses
Puntos: 6
Respuesta: asignar PCTFREE y PCTUSED a una tabla

Ok,

El storage es esa serie de parametros de almacenamiento que sirven para controlar como la extensiones se asignan a un segmento, no es un solo parametro en si sino mas bien una clausula. De hecho cuando tu cambias los parametros aplica solo a los extents que no estan asignados (allocate). igualmente si para la tabla no especificas el storage toma el del tablespace , se que hay unos parametros que no cumplen esta reglas pero ahorita no recuerdo cual es.


storage (
initial xxx
next xxx
minextents x
maxextents xxxx
pctincrease xxx
freelists xxx
freelist groups xxxx
optimal xxxk
buffer_pool default
)

Ahora la parametrizacion de los extents depende de cada negocio

aqui hay un enlace donde lo explican muy bien los parametros que antes te mencione:

http://www.programacion.com/articulo...de_oracle_89/5

El asunto del storage es de como crece la tabla a medida que se vaya copando, a parte de ser un asunto de almacenamiento, tambien es un asunto con encadenamientos, aqui entra: "el pctfree" y "el pctused" ya que se podria decir que son parametros de storage, aqui lo que sucede es que justamente cuando tienes por ejemplo una fila o un conjunto de valores que ocupan el porcentanje exacto de uso de la tabla y por casualidad esa fila tenia un campo null que fue actualizado, pues ese update no se va a guardar en el mismo bloque sino que lo va a meter en otro bloque y va a realizar como una especie de puntero que dice: "el resto de la info esta en el bloque tal y tal" por asi decirlo, cuando sucede esto trae costos a la hora de consultas, y sobre todo en estos parametros dependiendo de la tabla y del negocio es cuando debes pensar como administrar estas variables.

En los cursos de oracle hay un ejemplo grafico muy bueno de como es el funcionamiento de estos parametros, si puedo monto la imagen para que lo entiendas mejor.

Pero en fin, este tema tiene mucha tela que cortar y no tengo todo fresco, solo que como configures los parametros depende mucho del tipo de uso que se le de a la tabla. Si es una tabla con pocos inserts por ejem y que tiende a tener muchos updates, seria muy bueno colocarle un PTCFREE alto para que no genere encadenamientos. Pero esto es un analisis muy dedicado que deberian realizar los arquitectos al momento de crear una tabla.

Por ejem hay muchas empresas que tienen tablespaces segun el tamaño de las tablas que van a almacenar en el, ejem tablesspacelarge con extents, bloques grandes, para tablas grandes, si la tabla tiene mucha info a medida que crece la idea es crear extents grandes, de ser tablas pequeñas le vas creando extents segun lo que requiera la tabla y asi no se exagera (tamaño me refiero a la cantidad de columnas y la cantidad de data que llevan los campos), por ende al crear la tabla alli agarra el storage default del tablespace, etc.... pero cada negocio es un mundo.

Aqui hay algo de burleson acerca de optimizar estos parametros pero esta en ingles:

http://www.praetoriate.com/t_%20tuning_storage_parameters.htm

Espero haberte dado una idea y disculpa lo enredado solo que escribia las ideas al momento.

Saludos,

Última edición por 8vio; 05/05/2010 a las 13:23