SQL Server Performance

Rebuild Index SQL2005 Std Ed.

Discussion in 'Preguntas sobre SQL Server en Español.' started by Ronkoso, Nov 28, 2008.

  1. Ronkoso New Member

    A ver si alguien tiene una idea...
    Tengo un JOB que me reindexa / reconstruye los indices, pero "no lo hace..." a las pruebas me remito.
    Ejecuto este select:DECLARE
    @DATABASE AS CHAR(255);SET
    @DATABASE = DB_ID('DYNAMICS')SELECT
    object_id AS objectid,index_id
    AS indexid,partition_number
    AS partitionnum,avg_fragmentation_in_percent
    AS fragFROM
    sys.dm_db_index_physical_stats (@DATABASE, 1301579675, NULL , NULL, 'LIMITED')WHERE
    avg_fragmentation_in_percent > 10.0 AND index_id > 0order
    by avg_fragmentation_in_percent desc
    EL RESULTADO ES EL SIGUIENTE:
    objectid indexid partitionnum frag
    1301579675 2 1 87.5
    1301579675 3 1 83.3333333333333
    1301579675 4 1 83.3333333333333
    LUEGO EJECUTO EL REBUILD:
    ALTER INDEX ALL ON SY40501 REBUILD
    y si vuelvo a ejecuta el Select del ppio, me vuelve a dar exactamente el mismo resultado; es decir que no me rehizo ningun indice.
    Pruebas que descarte:
    - Tener la base en single mode user
    - Actualizar estadísticas
    esta tabla, es una tomada al azar... pero son más de 300 tablas que tienen indices con fragmentación mayor al 30%... y la verdad que la performance esta decayendo dia a dia.
    Cualquier ayuda va a ser de utilidad.
    Gracias.
  2. Luis Martin Moderator

    Revisa este artículo:http://www.sql-server-performance.com/articles/per/detect_fragmentation_sql2000_sql2005_p1.aspxtambién:http://sql-server-performance.com/Community/forums/p/27772/149694.aspx#149694
  3. Ronkoso New Member

    Gracias por responder, de hecho si te fijas el código que pongo de ejemplo es el mismo de esos artículos.
    Estoy utilizando el Store de ejemplo del primer link que me pasaste. El problema es que no defragmentan y por eso estaba mi consulta. Yo simplemente resumi el ejemplo con una tabla para que se pueda ver claro cual es el problema.
    Igualmente, gracias por tu respuesta.
  4. Luis Martin Moderator

    Yo también tengo mis dudas sobre estos scripts.Te sugiero que pruebes lo siguiente, y luego verifiques la fragmentación:exec sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?', ' ', 90)"
  5. Ronkoso New Member

    Probé y me dio el mismo resultado...
    por otro lado, el REINDEX no defragmenta, es el REBUILD el que defragmenta.
    lo que me resulta muy extraño, es que probé elimiar el indice de una de las tablas, verifique que se haya eliminado, lo volvi a crear y me sigue dando la misma fragmentación...
    hay alguna estadística que hay que actualizar?
    a esa tabla (con la que hice la prueba) tambien le hice un update statistics... y nada de nada...
    Aclaro, que yo hablo de 1 tabla, pero las pruebas las hago con lotes de tablas, a veces tomo alguna en particular para hacer las pruebas mucho más acotadas, pero nada más...
    Sigo aceptando sugerencias....
  6. Luis Martin Moderator

    En realidad estas haciendo lo que todos hacen para reorganizar índices.A veces puede ocurrir eso cuando la tabla tiene pocas filas.Si no es tu caso, entonces no se entiende.

Share This Page