La semana pasada durante TechEd-Dev en Barcelona, un delegado se acercó a stand de Ask The Experts, con una duda a la que no era capaz de encontrar respuesta:

  • Tengo una tabla T1 en la que nadie realiza modificaciones (los usuarios sólo leen de la tabla).
  • La tabla T1 que se reindexa por la noche dejando su fragmentación por debajo del 1%.
  • Sin razones aparentes, a lo largo del día, la tabla aparece muy fragmentada (valores superiores al 90%).

Comprobando la configuración de su base de datos, notamos que tenía habilitada la opción auto-shrink ON; le pedimos al delegado que deshabilitara la opción, y al día siguiente la tabla ya no estaba fragmentada.

¿Qué le estaba pasando? La reducción automática de la base de datos, le estaba pasando una mala jugada al cliente.

Fíjate que aunque pienses que tu estas libre del problema porque no tienes habilitada la opción auto-shrink, si utilizas el comando DBCC SHRINKDATABASE puedes ser víctima del mismo problema.

Reproducirlo es muy sencillo; lo único que tienes que conseguir es que poner a funcionar el comando DBCC SHRINKDATABASE con espacio para liberar; por ejemplo, create dos tablas muy grandes, borra la primera, comprueba la fragmentación (DMV sys.dm_db_index_physical_stats), lanza el DBCC, y vuelve a comprobar la fragmentación. Te asombrarás con los resultados!

 

Corolarios:

  • Deshabilita la opción auto-shrink en tus bases de datos
  • Revisa tus planes de mantenimiento dando especial atención a los comandos DBCC de reducción de ficheros/base de datos.

 

0 Shares:
1 comment
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like
Leer más

Introducción a Timeline Storyteller

Introducción a Timeline Storyteller. Cuando tratamos de transmitir información ya sea en una charla, reunión o ya en ámbitos de la vida personal, el modo en el que transmitimos la información es esencial para que los oyentes muestren interés y entiendan la finalidad de lo que estamos contando.

Nuevas funciones para el lenguaje de expresiones de SSIS en SQL 2012

El lenguaje de expresiones de Integration Services podemos utilizarlo en columnas derivadas, expresiones en propiedades de componentes, tareas, administradores de conexión, variables, en la nueva Expression Task, etc…  Tiene su propia sintaxis, operadores, conjuntos de funciones, etc.. (se observan similitudes con las expresiones de C++). En la versión de SQL 2012 se han agregado tres nuevas funciones que se engloban en el conjunto de funciones para el tratamiento de cadenas: Left, Token y TokenCount.