インデックスフィルファクターをサーバーのデフォルトに戻すにはどうすればよいですか?

dba.stackexchange https://dba.stackexchange.com/questions/16024

質問

開発サーバーでプレイしていたインデックスがいくつかあります。次のコマンドを使用して、これらのインデックスの充填係数を設定します。

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

これは、DBO.Tableのすべてのインデックスを設定および再構築します。今、私が望んでいるのは、FillFactorを設定することです サーバーのデフォルトに戻ります. 。つまり、サーバーレベルでは、すべてのインデックスが95のfillFactorを持つように設定されています。インデックスは、95に設定されたfill係数を設定するだけでなく、サーバーのデフォルトを再度使用します。

これを行いたい理由は、このインデックスをスクリプト化して新しいサーバーに移動すると、指定された95ではなくそのサーバーのデフォルトの塗りつぶし要因を使用するようにするためです。

役に立ちましたか?

解決

テストを通じて、インデックスでデフォルトのfillFactorに戻るには、ドロップして再作成する必要があるようです。あなたがするとき ALTER INDEX ... REBUILD, 、不特定のパラメーターは、特に明示的に変更されない限り、インデックスのメタデータでは同じままです。 ALTER INDEX 指図。

drop index IX_YourIndex
on YourTable
go

create index IX_YourIndex
on YourTable(YourKeyColumn)
go

これを確認するには:

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

fill_factor に設定する必要があります 0 インスタンスのデフォルト値を使用していることを示します。 (注:インスタンス構成された充填係数が95に設定されている場合でも、0はデフォルト値です)

ライセンス: CC-BY-SA帰属
所属していません dba.stackexchange
scroll top