none
Plan Mantenimiento SQL Server 2008 RRS feed

  • Pregunta

  • Saludos a todos,

    Me puede orientar en como realizar un plan periodico de mantenimiento de la BD.

    Cuales de las tareas de mantenimiento son realizadas online y offline.

    He leido que el Rebuild es offline en la edición estandar la cual es la que tengo, cuando la ejecuto el automaticamente la coloca  offline?.

    Por otra, cual es la secuencia de este plan:

    Check Integridad

    Rebuild Index

    Reindex 

    Update statics

    De antemano gracias por su ayuda.

    lunes, 2 de abril de 2018 22:59

Respuestas

  • Hola.

    En cuanto a lo de INDEX REBUILD en la edición Standard, esto es correcto. El reconstruye OFFLINE, lo que significa que SQL Server hace un LOCK sobre toda la tabla para lectura y escritura, reconstruye el nuevo índice a partir del viejo y luego cuando se termina la operación, se permite de nuevo lectura y escritura. Para la edición Enterprise, se permite INDEX REBUILD WITH ONLINE = ON, lo que en esencia SQL Server hace es que reconstruye un nuevo índice mientras el viejo puede accederse para lectura y escritura; cuando termina la reconstrucción, hay un LOCK por un breve período para cambiar el índice.

    Lo que significa lo anterior en términos de mantenimiento es que si tu edición es Standard, deberías hacer una reconstrucción de índices en una ventana de mantenimiento, es decir, sin que haya usuarios consultando la base de datos. Si tu edición es Enterprise, no requieres de ventana de mantenimiento.

    Ahora bien, esta es una operación que consume espacio del LOG de transacciones e incluso de la TEMPDB, así que debes tener en cuenta como crecen dichos archivos y planear para que no te quedes sin espacio en el disco duro que los contiene.

    En cuanto a la secuencia, pues depende del escenario. Es decir, yo sugiero al menos que el check de integridad se haga de manera semanal, pero que lo de los índices se haga de acuerdo con que tan fragmentados están. SQL Server tiene una entrada en su documentación en línea que habla de esto Reorganize and Rebuild Indexes y ahí se especifica que si el índice está fragmentado entre 5% y 30%, inclusive, se haga una reorganización; si el índice está fragmentado más del 30%, hacer una reconstrucción.

    Por último, para las estadísticas, no es buena idea actualizarlas diariamente. Y cuando reconstruyes el índice, las estadísticas se actualizan, así que lo mejor es para esto es ver que tanto se actualizan los datos y los índices asociados y proceder. Muchos consideran que esto es medio tedioso así que semanalmente están actualizandolas; otros simplemente creen que la opción AUTO UPDATE STATISTICS es suficiente.

    Lo importante es conocer muy bien como se comporta la base de datos en el tiempo y proceder acorde. Es decir, para lo de los índices, por ejemplo, entender muy bien cuáles reorganizar y cuáles reconstruir, lo cual ahorra tiempo y evita actividad innecesaria sobre el motor relacional.

    Hay un buen libro sobre planes de mantenimientos y puedes conseguir de manera gratuita el PDF: Brad’s Sure Guide to SQL Server Maintenance Plans. También hay herramientas muy buenas como las de Ola Hallengren, SQL Server Backup, Integrity Check, and Index and Statistics Maintenance y las de Brent Ozar, tanto para complementar los planes de mantenimiento, como para usar de mejor manera lo relacionado con mantenimiento de índices, estadísticas y verificación de integridad, además de respaldos.

    Saludos,


    Guillermo Taylor F.
    MVP Data Platform & IT Pro
    Mi Blog

    • Marcado como respuesta jhon rosas martes, 3 de abril de 2018 14:41
    martes, 3 de abril de 2018 9:28

Todas las respuestas

  • Hola.

    En cuanto a lo de INDEX REBUILD en la edición Standard, esto es correcto. El reconstruye OFFLINE, lo que significa que SQL Server hace un LOCK sobre toda la tabla para lectura y escritura, reconstruye el nuevo índice a partir del viejo y luego cuando se termina la operación, se permite de nuevo lectura y escritura. Para la edición Enterprise, se permite INDEX REBUILD WITH ONLINE = ON, lo que en esencia SQL Server hace es que reconstruye un nuevo índice mientras el viejo puede accederse para lectura y escritura; cuando termina la reconstrucción, hay un LOCK por un breve período para cambiar el índice.

    Lo que significa lo anterior en términos de mantenimiento es que si tu edición es Standard, deberías hacer una reconstrucción de índices en una ventana de mantenimiento, es decir, sin que haya usuarios consultando la base de datos. Si tu edición es Enterprise, no requieres de ventana de mantenimiento.

    Ahora bien, esta es una operación que consume espacio del LOG de transacciones e incluso de la TEMPDB, así que debes tener en cuenta como crecen dichos archivos y planear para que no te quedes sin espacio en el disco duro que los contiene.

    En cuanto a la secuencia, pues depende del escenario. Es decir, yo sugiero al menos que el check de integridad se haga de manera semanal, pero que lo de los índices se haga de acuerdo con que tan fragmentados están. SQL Server tiene una entrada en su documentación en línea que habla de esto Reorganize and Rebuild Indexes y ahí se especifica que si el índice está fragmentado entre 5% y 30%, inclusive, se haga una reorganización; si el índice está fragmentado más del 30%, hacer una reconstrucción.

    Por último, para las estadísticas, no es buena idea actualizarlas diariamente. Y cuando reconstruyes el índice, las estadísticas se actualizan, así que lo mejor es para esto es ver que tanto se actualizan los datos y los índices asociados y proceder. Muchos consideran que esto es medio tedioso así que semanalmente están actualizandolas; otros simplemente creen que la opción AUTO UPDATE STATISTICS es suficiente.

    Lo importante es conocer muy bien como se comporta la base de datos en el tiempo y proceder acorde. Es decir, para lo de los índices, por ejemplo, entender muy bien cuáles reorganizar y cuáles reconstruir, lo cual ahorra tiempo y evita actividad innecesaria sobre el motor relacional.

    Hay un buen libro sobre planes de mantenimientos y puedes conseguir de manera gratuita el PDF: Brad’s Sure Guide to SQL Server Maintenance Plans. También hay herramientas muy buenas como las de Ola Hallengren, SQL Server Backup, Integrity Check, and Index and Statistics Maintenance y las de Brent Ozar, tanto para complementar los planes de mantenimiento, como para usar de mejor manera lo relacionado con mantenimiento de índices, estadísticas y verificación de integridad, además de respaldos.

    Saludos,


    Guillermo Taylor F.
    MVP Data Platform & IT Pro
    Mi Blog

    • Marcado como respuesta jhon rosas martes, 3 de abril de 2018 14:41
    martes, 3 de abril de 2018 9:28
  • Excelentes comentarios Guillermo, es un placer leerte

    Saludos

    Isaías Islas G.

    MCP MCTS SQL Server

    CDMX

    martes, 3 de abril de 2018 16:18