Domanda

ho alcuni indici che stavo giocando con il mio server dev. Ho impostato il fattore di riempimento di questi indici utilizzando il seguente comando:

alter index all on dbo.Table
rebuild with (fillfactor=80)

che imposta e ricostruisce tutti i indice su dbo.Table. Ora quello che voglio è quello di impostare il fattore di riempimento torna al default del server . IE, a livello di server tutti gli indici sono impostati per avere un fattore di riempimento del 95. Voglio che gli indici di utilizzare di nuovo il default del server, non solo hanno il fattore di riempimento impostato su 95.

Il motivo che voglio fare questo è così che, se ho scritto questo indice e spostarlo su un nuovo server, si userà il fattore di riempimento predefinito di server piuttosto che il 95 specificato.

È stato utile?

Soluzione

Attraverso test, sembra che per tornare al fattore di riempimento di default su un indice è necessario eliminare e ricrearlo. Quando si esegue un ALTER INDEX ... REBUILD, qualsiasi parametro non specificato rimarrà lo stesso nei metadati dell'indice se non diversamente esplicitamente cambiato nel comando ALTER INDEX.

drop index IX_YourIndex
on YourTable
go

create index IX_YourIndex
on YourTable(YourKeyColumn)
go

Per verificare questo:

select
    name,
    fill_factor
from testdb.sys.indexes
where name = 'IX_YourIndex'

fill_factor deve essere impostato su 0 per indicare che sta utilizzando il valore predefinito dell'istanza. (Nota: 0 è per il valore di default, anche se il fattore di riempimento istanza configurata è impostata su 95)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top