インデックスのオンライン再構築を許可しないタイプのデータベースのインデックスがいくつか存在するため、メンテナンス作業が失敗します。私の業界ではオフラインは選択肢ではないので、特定のインデックスでインデックスを再構築する独自のT-SQLタスクを作成する必要があります。データベースは多数の表と索引があるため、システムにすべての索引とそのデータ型を問い合せる方法はありますか?SQL Server 2005でデータベース内のすべてのインデックスとそのデータ型を取得する方法は?
がselect o.name as [object_name],
ix.name as [index_name],
coalesce(c.name,cc.name) as [column_name],
t.name as [type_name],
coalesce(c.max_length, cc.max_length) as max_length
from sys.indexes ix
join sys.objects o
on ix.object_id = o.object_id
left join sys.index_columns ic
on ix.object_id = ic.object_id
and ix.index_id = ix.index_id
and ix.index_id > 1
left join sys.columns c
on ic.object_id = c.object_id
and ic.column_id = c.column_id
left join sys.columns cc
on ix.object_id = cc.object_id
and ix.index_id in (1,0)
join sys.types t
on t.system_type_id = coalesce(c.system_type_id,cc.system_type_id)
where o.type = 'U'
order by object_name, index_name, column_name;
あなたは、その後のために危険なものを識別することができます
かなり確信してhttp://dba.stackexchange.com/questions/11389/is-staggeringための "HasBlobs" フラグを持っています-reindexing-jobs-a-good-strategy-mssql/11390#comment16991_11390)はこれを考慮に入れています。 –