Como administrador de bases de datos que trabaja con SharePoint 2010, es importante comprender las tareas de mantenimiento de la base de datos que se realizan automáticamente por el sistema. En este artículo, exploraremos la función de Health Analyzer en SharePoint Foundation 2010 y cómo maneja la fragmentación de la base de datos y las estadísticas obsoletas.
Health Analyzer es una herramienta poderosa que permite a los administradores programar trabajos integrados que identifican y potencialmente solucionan problemas dentro de SharePoint. Para acceder a Health Analyzer, inicie SharePoint Central Administration desde el grupo de programas Microsoft SharePoint 2010 Products y seleccione Monitoring. Aquí encontrará una página que muestra los problemas identificados y las definiciones de reglas.
Dentro de las definiciones de reglas, notará dos reglas específicas que abordan la fragmentación de índices y las estadísticas obsoletas. Estas reglas se ejecutan diariamente y realizan reparaciones automáticas. Para comprender cómo funcionan estos procesos, podemos analizar los procedimientos almacenados subyacentes.
Utilizando SQL Server Profiler, podemos observar los nombres de los procedimientos almacenados que se ejecutan al ejecutar las reglas de Health Analyzer a pedido. En este caso, los procedimientos almacenados son [dbo].[proc_DefragmentIndices] y [dbo].[proc_UpdateStatistics]. Estos procedimientos también estaban presentes en SharePoint 2007.
Echemos un vistazo más de cerca a lo que hacen estos procedimientos almacenados:
- [dbo].[proc_DefragmentIndices]: Este procedimiento utiliza el DMV sys.dm_db_index_physical_stats con el modo de escaneo LIMITADO para recopilar rápidamente información sobre los índices, como el porcentaje promedio de fragmentación. Reconstruye los índices donde el porcentaje promedio de fragmentación es mayor al 30% y el recuento de filas es mayor a 10,000. Si la edición de SQL Server es Enterprise, los índices se reconstruyen en línea; de lo contrario, se realiza una reconstrucción sin conexión, lo que bloquea la tabla.
- [dbo].[proc_UpdateStatistics]: Este procedimiento elimina las estadísticas donde auto_create = 1 y el tipo de objeto no es ‘S’ (tabla base del sistema). Es importante tener en cuenta que la opción de base de datos AUTO_CREATE_STATISTICS debe estar configurada en OFF, lo cual se considera una mejor práctica en SharePoint. Además, este procedimiento actualiza las estadísticas en los índices donde la relación de modificaciones de filas a recuento de filas es mayor a 1.
Aunque las reglas de Health Analyzer se ejecutan mediante trabajos de temporizador, es esencial identificar qué trabajo(s) específico(s) manejan las tareas de mantenimiento de la base de datos. La página de monitoreo mencionada anteriormente proporciona un enlace para revisar las definiciones de los trabajos de temporizador. Uno de los trabajos de temporizador responsables de ejecutar las reglas de mantenimiento de la base de datos de Health Analyzer se llama “Health Analysis Job (Daily, Microsoft SharePoint Foundation Timer, Any Server)”. Al revisar las propiedades del trabajo, también puede modificar el horario si es necesario.
El propósito de las reglas de Health Analyzer es automatizar la identificación y resolución de problemas, especialmente en escenarios donde no hay un DBA dedicado disponible para administrar las bases de datos de SharePoint. Al aprovechar estas tareas de mantenimiento integradas, los administradores de SharePoint pueden garantizar el rendimiento y la salud óptimos de su entorno de base de datos.