TN288WAS - Mantenimiento BBDD de GR
Proceso de mantenimiento de la BBDD de GR usando el SQL Server Management Studio (SSMS).
- Asegurarse de que toda comunicación con la BBDD de GR está parada como IDEs, SMC o ObjectViewer abiertos.
- Entrar al SSMS, ejecutar primero el script , 1. Rebuildindexes para la reindiexación de todos los índices de cada tabla en la SQL que se haya generado a medida que se va desarrollando y modificando la galaxia desde el IDE.
- Importante seleccionar la línea 7 o línea 8 del script anterior (por defecto la línea 8 está comentada), ya que es importante para apuntar bien al nombre de la BBDD de la galaxia.
- Una vez finalizado, que tardará unos 5-10min, ejecutar el script 2. Updatestats para actualizar las estadísticas de las tablas y los índices de la BBDD.
1. Rebuildindexes;
- DECLARE @Database NVARCHAR(255)
- DECLARE @Table NVARCHAR(255)
- DECLARE @cmd NVARCHAR(1000)
- DECLARE DatabaseCursor CURSOR READ_ONLY FOR
- SELECT name FROM master.sys.databases
- WHERE name NOT IN ('master','msdb','tempdb','model','distribution') -- Aquí se indicaría que BBDD queremos excluir, que las incluidas son las del sistema SQL.
- --WHERE name IN ('DB1', 'DB2') -- Aquí se indicaría a que BBDD queremos apuntar directamente
- AND state = 0 -- database is online
- AND is_in_standby = 0 -- database is not read only for log shipping
- ORDER BY 1
- OPEN DatabaseCursor
- FETCH NEXT FROM DatabaseCursor INTO @Database
- WHILE @@FETCH_STATUS = 0
- BEGIN
- SET @cmd = 'DECLARE TableCursor CURSOR READ_ONLY FOR SELECT ''['' + table_catalog + ''].['' + table_schema + ''].['' +
- table_name + '']'' as tableName FROM [' + @Database + '].INFORMATION_SCHEMA.TABLES WHERE table_type = ''BASE TABLE'''
- -- create table cursor
- EXEC (@cmd)
- OPEN TableCursor
- FETCH NEXT FROM TableCursor INTO @Table
- WHILE @@FETCH_STATUS = 0
- BEGIN
- BEGIN TRY
- SET @cmd = 'ALTER INDEX ALL ON ' + @Table + ' REBUILD'
- --PRINT @cmd -- uncomment if you want to see commands
- EXEC (@cmd)
- END TRY
- BEGIN CATCH
- PRINT '---'
- PRINT @cmd
- PRINT ERROR_MESSAGE()
- PRINT '---'
- END CATCH
- FETCH NEXT FROM TableCursor INTO @Table
- END
- CLOSE TableCursor
- DEALLOCATE TableCursor
- FETCH NEXT FROM DatabaseCursor INTO @Database
- END
- CLOSE DatabaseCursor
- DEALLOCATE DatabaseCursor
2. Updatestats;
Este proceso sería recomendable siempre que se estén realizando modificaciones e importaciones en GR constantemente debido a un desarrollo de la galaxia por un usuario o distintos. Su frecuencia será proporcional a la cantidad de éstas modificaciones. Una vez en producción/runtime sin modificaciones, la BBDD de GR sería totalmente estática, por lo que su mantenimiento será mínimo.
Nota Importante: Esta nota técnica se entrega “as is”, es decir, como complemento a la documentación del producto, pero no incluido dentro del ámbito del Soporte Técnico. Por tanto, cualquier mal funcionamiento derivado del contenido de esta nota técnica no es responsabilidad de Becolve Digital.