Stiamo risolvendo un problema di vecchia data con un fornitore. Il loro software ha la tendenza a bloccarsi e smettere di funzionare una o due volte alla settimana causando gravi interruzioni del nostro funzionamento. Non sono stati in grado di determinare la causa nonostante abbiamo inviato loro molti GB di registri e backup del DB. Ultimamente hanno iniziato a suggerire che i problemi sono dovuti alla nostra manutenzione e forse non al loro software (nonostante non ci siano query a lungo in esecuzione, pressione della CPU / RAM / IO o persino deadlock quando si verificano i problemi). In particolare stanno dicendo che i nostri indici sono un problema.
Il loro strumento preferito da usare è DBCC showcontig nonostante io sostenga che la cosa sia deprecata da MS. Ossessionano soprattutto la densità di scansione e l'estensione della frammentazione. Per togliere la scusa ho istituito una manutenzione notturna aggressiva che ricostruisce gli indici con una densità di scansione <90% o una frammentazione> 10%. Ciò li ha in qualche modo allontanati dal treno della densità di scansione, ma rimangono fissi sulla frammentazione dell'estensione. DBCC showcontig mostra un'elevata frammentazione anche su un indice ricostruito ore prima. Di seguito sono riportati i risultati di dbcc_showcontig e sys.dm_db_index_physical_stats per una tabella che hanno indicato come "possibile problema".
DBCC SHOWCONTIG
- Pagine scansionate ................................: 1222108
- Estensioni scansionate ..............................: 152964
- Interruttori di estensione ..............................: 180904
- Avg. Pagine per estensione ........................: 8.0
- Densità di scansione [Migliore conteggio: conteggio effettivo] .......: 84,44% [152764: 180905]
- Frammentazione della scansione logica ..................: 3,24%
- Estesa frammentazione della scansione ...................: 35,97%
- Avg. Byte gratuiti per pagina .....................: 692.5
- Avg. Densità pagina (pieno) .....................: 91,44%
sys.dm_db_index_physical_stats
index_type_desc alloc_unit_type_desc Avg_fragmentation_in_percent page_count
CLUSTERED INDEX IN_ROW_DATA 3.236803129 1222070
NONCLUSTERED INDEX IN_ROW_DATA 0.680074642 48230
NONCLUSTERED INDEX IN_ROW_DATA 0.093237195 48264
NONCLUSTERED INDEX IN_ROW_DATA 0.03315856 48253
NONCLUSTERED INDEX IN_ROW_DATA 0.194653248 48291
NONCLUSTERED INDEX IN_ROW_DATA 0.393480436 58961
NONCLUSTERED INDEX IN_ROW_DATA 0.23622292 64346
NONCLUSTERED INDEX IN_ROW_DATA 0.041445623 48256
NONCLUSTERED INDEX IN_ROW_DATA 0.701172007 59044
NONCLUSTERED INDEX IN_ROW_DATA 0.216397724 53605
Dovrei preoccuparmi dei miei indici? Quello sopra non è atipico. Il DMV MS preferito sembra mostrare che va bene, ma il fornitore è bloccato su quella frammentazione del 35,97%. Sospetto che siano solo loro a cercare disperatamente qualcosa su cui incolpare i loro problemi di software, ma se ho un problema reale, voglio provare a risolverlo.