Copiando estadísticas en Teradata.

A partir de la versión 13 Teradata ofrece la posibilidad de copiar estadísticas de una tabla a otra. Esta funcionalidad se revela muy útil -por ejemplo- en las ocasiones en las que queremos analizar e investigar planes de ejecución mediante EXPLAIN sobre tablas pequeñas (p. ej. en un entorno de desarrollo) y queremos que el optimizador las considere como si fueran grandes (p. ej. de un entorno de producción).

Mediante la sentencia COLLECT STATISTICS … FROM … Teradata copiará los datos de estadísticas de una tabla sobre las de otra sin efectuar cálculo alguno:

COLLECT STATISTICS ON <db_name>.<table_name> 
FROM <db_name>.<table_name> COLUMN(<column_name>);

Tras ejecutar esta sentencia, el optimizador calculará los planes de ejecución basándose en los valores de las estadísticas copiadas y por tanto considerará los valores de la demografía de los datos como si los de la tabla origen se tratase.

Hay otras situaciones para las que también puede ser de utilidad: si creamos una tabla a partir de otra para efectuar algún tipo de modificación de estructura mediante el método de ejecutar un INSERT … SELECT y RENAME posterior (y evitarnos un ALTER TABLE) no tenemos por qué volver a generar las estadísticas para la nueva tabla al final del proceso, sino que podemos copiarlas directamente de la tabla origen mediante esta técnica y ahorrarnos bastante tiempo.

Saludos.

Carlos.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: