Sei sulla pagina 1di 20

Mantenimiento

recomendado para las


bases de datos Microsoft
SQL Server

EL mantenimiento para una base de datos siempre es muy


importante ya que nos permite mantener nuestra Base de Datos en
un nivel optimo, estas operaciones de mantenimiento las podemos
ejecutar semanalmente Sin embargo, podemos variar esta frecuencia
de acuerdo con el entorno y con la actividad que recibe cada base de
datos.

Vamos a ver principalmente algunos comandos que estan orientados a:


Comprobacin de coherencia de la base de datos.
Actualizacion de estadsticas.

Recuerden que siempre antes de ejecutar los comando hay que


asegurarnos de que tenemos una copia de seguridad actualizada de
nuestra base de datos para poder restaurarla si se produce algn
problema.

Comprobacin de coherencia de la
base de datos.
Inicializamos el Analizador de consultas de SQL o en SQL Server
Management Studio dependiendo de la Versin del SQLServer
que estn utilizando, para estos casos vamos a llevarlos a cabo los
procedimientos en un SQLServer 2012.

Cuando inicia el Management Studio Generamos una nueva consulta


y escribimos el siguiente comando: DBCC CHECKDB (TU_BD), este
comando examina la asignacin y la integridad estructural de todos
los objetos que se encuentra en la base de datos especificada, cuando
acabe de ejecutarse nos mostrara un mensaje similar
al siguiente cuando se ejecuta correctamente.

Otro comando a utilizar es el DBCC DBREINDEX (TU_TABLA),


para recompilar todos los ndices. Este comando ayudar a reducir la
divisin de pginas y mejorar el rendimiento en la modificacin de
datos.
No olvidemos que estos comando tambin se pueden
programar desde SQL Server Management Studio, para que el
proceso de mantenimiento se ejecute automticamente.

Actualizar estadsticas
La actualizacin de las estadisticas actualiza el optimizador de
consultas con informacin sobre distribucin de los valores clave de
los ndices. Esto habilita al optimizador de consultas para tomar
decisiones eficientes al ejecutar las Consutas que se realizan sobre la
Base de Datos.

Podemos configurar SQL Server para ejecutar automticamente el


proceso de actualizacin de estadsticas desde SQL Server
Management Studio. Para hacer esto , hacemos clic con el botn
derecho sobre la base de datos a la cual vamos a actualizar
las estadsticas, clic en Propiedades, luego clic en Opciones y, a
continuacin clic para seleccionar Crear estadsticas
automticamente y Actualizar estadsticas automticamente; vemos
que las opciones estn activadas(True en la lista desplegable)

Podemos programar este proceso de actualizacin de estadsticas de


manera recurrente desde Planes de mantenimiento de la base de
datos (clic derecho, crear nuevo plan de mantenimiento).

Qu es la fragmentacin de ndices?
Nos encontramos con 2 tipos de fragmentacin de ndices
Fragmentacin interna
Fragmentacin externa

Fragmentacin interna
es el espacio disponible que hay entre los registros dentro de una
misma pgina (recordad que en SQL Server el tamao es 8Kb). Se
mide en % de bytes de la pgina llenos, el promedio de llenado de
todas las pginas del ndice se conoce como densidad del ndice. Este
espacio (que se va generando a medida que se producen operaciones
de INSERT/DELETE/UPDATE) que no es utilizado afecta al correcto
aprovechamiento de la cach y requiere ms operaciones de E/S lo
que genera un peor rendimiento en las consultas. Otros efectos que
genera este tipo de fragmentacin podran ser que el escaneo
del ndice es ms lento, aumenta el tamao de la base de datos, se ve
afectado el rendimiento de backups y restores,...

Fragmentacin externa
(tambin denominada fragmentacin de extensin) se produce
cuando el orden lgico de las pginas no coincide con el orden en el
que se almacenan en disco (orden fsico). Se mide en % de pginas
fuera de orden (aquellas cuya siguiente pgina lgica no coincide con
la pgina fsica). Este tipo de fragmentacin penaliza el escaneo
ordenado del ndice, requiere de mayores operaciones de E/S,...

El siguiente grfico nos muestra los 2 tipos posibles


de fragmentacin que podemos encontrar en un ndice.

Y cmo detectamos la fragmentacin de ndices en SQL Server?


Muy sencillo, mediante la funcin
sys.dm_db_index_physical_stats podemos obtener informacin tanto
de la fragmentacin interna como de lafragmentacin externa de
nuestros ndices.

Potrebbero piacerti anche