sql >> Database teknologi >  >> RDS >> Sqlserver

Hvor ofte skal indekserne genopbygges i vores SQL Server-database?

Der er en generel konsensus om, at du bør reorganisere ("defragmentere") dine indekser, så snart indeksfragmenteringen når mere end 5 (nogle gange 10%), og du bør genopbygge dem fuldstændigt, når det går ud over 30% (det er i hvert fald de tal, jeg' har hørt fortalere mange steder).

Michelle Ufford (a.k.a. "SQL Fool") har et automatiseret indeksdefrag-script , som bruger de nøjagtige grænser til at beslutte, hvornår et indeks skal omorganiseres eller genopbygges.

Se også Brad McGehees tips om genopbygning af indekser med nogle gode tanker og tips til, hvordan man håndterer indeksgenopbygning.

Jeg bruger dette script her (kan ikke huske hvornår jeg fik det fra - hvem det end var:mange tak! Virkelig nyttige ting) til at vise indeksfragmenteringen på alle dine indekser i en given database:

SELECT 
    t.NAME 'Table name',
    i.NAME 'Index name',
    ips.index_type_desc,
    ips.alloc_unit_type_desc,
    ips.index_depth,
    ips.index_level,
    ips.avg_fragmentation_in_percent,
    ips.fragment_count,
    ips.avg_fragment_size_in_pages,
    ips.page_count,
    ips.avg_page_space_used_in_percent,
    ips.record_count,
    ips.ghost_record_count,
    ips.Version_ghost_record_count,
    ips.min_record_size_in_bytes,
    ips.max_record_size_in_bytes,
    ips.avg_record_size_in_bytes,
    ips.forwarded_record_count
FROM 
    sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'DETAILED') ips
INNER JOIN  
    sys.tables t ON ips.OBJECT_ID = t.Object_ID
INNER JOIN  
    sys.indexes i ON ips.index_id = i.index_id AND ips.OBJECT_ID = i.object_id
WHERE
    AVG_FRAGMENTATION_IN_PERCENT > 0.0
ORDER BY
    AVG_FRAGMENTATION_IN_PERCENT, fragment_count
    


  1. Lær databasedesign med SQL Server Management Studio (SSMS) – Del 2

  2. Guide til design af database til meddelelser i MySQL

  3. tilslut google cloud sql postgres-instans fra beam pipeline

  4. Opdater poster, der opfylder en betingelse med stigende antal