none
Script para reparar indices SQL SERVER 2008 RRS feed

  • Pregunta

  • Tengo un Script para detectar la desfragmentacion de SQL en todas las demás instancias que tengo en el servidor funciona perfectamente, pero al querer correrlo en la instancia de produccion me manda el siguiente error

    Msg 102, Level 15, State 1, Line 7
    Incorrect syntax near '('.

    Este es el código..

    SELECT dbschemas.[name] AS 'Schema',dbtables.[name] AS 'Table',dbindexes.[name] AS 'Index',indexstats.avg_fragmentation_in_percent AS 'Frag (%)',indexstats.page_count AS 'Page count'FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL) AS indexstatsINNER JOIN sys.tables dbtables ON dbtables.[object_id] = indexstats.[object_id]INNER JOIN sys.schemas dbschemas ON dbtables.[schema_id] = dbschemas.[schema_id]INNER JOIN sys.indexes AS dbindexes ON dbindexes.[object_id] = indexstats.[object_id]AND indexstats.index_id = dbindexes.index_idWHERE indexstats.database_id = DB_ID()ORDER BY indexstats.avg_fragmentation_in_percent DESC

    Necesito revisar desgragmentacion para seguir la reparacion.

    lunes, 21 de octubre de 2019 19:50

Respuestas

Todas las respuestas

  • Hola ChistianGtz:

    Creo que estas confundiendo el orden de cosas. 

    Necesito revisar desgragmentacion para seguir la reparacion.

    Necesitas reparar la base de datos para poder ejecutar los scripts que simplemente te muestran información de las vistas dinámicas del sistema sobre el estado de los índices.

    SELECT dbschemas.[name] AS 'Schema',dbtables.[name] AS 'Table',dbindexes.[name] AS 'Index',
    indexstats.avg_fragmentation_in_percent AS 'Frag (%)',indexstats.page_count AS 'Page count'
    FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL) AS indexstats 
    INNER JOIN sys.tables dbtables ON dbtables.[object_id] = indexstats.[object_id]
    INNER JOIN sys.schemas dbschemas ON dbtables.[schema_id] = dbschemas.[schema_id]
    INNER JOIN sys.indexes AS dbindexes ON dbindexes.[object_id] = indexstats.[object_id]
        AND indexstats.index_id = dbindexes.index_id
      --
       ORDER BY indexstats.avg_fragmentation_in_percent DESC

    Si la ejecutas en una ventana del Management, te devuelve información de la base de datos de la conexión.

    Para reparar la base de datos, lo primero siempre un backup completo.

    Restaura la copia en un server de test, y aplica una reparación.

    https://docs.microsoft.com/es-es/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

    Cuando tengas bien claro como funciona, y si resuelve tu problema, lo aplicas en producción.

    lunes, 21 de octubre de 2019 20:13
  • El error reportado está en la línea 7. Sin embargo, la forma en que copió el script hizo que ocupara una sola línea, lo que le impidió averiguar qué contiene la línea 7.

    Le sugiero que conozca los scripts de Ola Hallengren: SQL Server Backup, Integrity Check, and Index and Statistics Maintenance.

    También hay una colección de scripts powershell en la página de dbaTools.


    José Diz     Belo Horizonte, MG - Brasil     [query performance tuning: Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    • Editado José Diz martes, 22 de octubre de 2019 5:49
    • Propuesto como respuesta Pablo RubioModerator martes, 22 de octubre de 2019 18:14
    • Marcado como respuesta ChristianGtz miércoles, 23 de octubre de 2019 18:27
    martes, 22 de octubre de 2019 5:42
  • El error reportado está en la línea 7. Sin embargo, la forma en que copió el script hizo que ocupara una sola línea, lo que le impidió averiguar qué contiene la línea 7.

    Le sugiero que conozca los scripts de Ola Hallengren: SQL Server Backup, Integrity Check, and Index and Statistics Maintenance.

    También hay una colección de scripts powershell en la página de dbaTools.


    José Diz     Belo Horizonte, MG - Brasil     [query performance tuning: Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    Si, ya los encontre los utilice y los corri en la instancia ... esperemos que con esto quede resuelto el problema.
    • Propuesto como respuesta Pablo RubioModerator miércoles, 23 de octubre de 2019 17:00
    • Marcado como respuesta ChristianGtz miércoles, 23 de octubre de 2019 18:27
    martes, 22 de octubre de 2019 15:25