我对索引维护还很陌生。我发现我们大多数的索引都是使用create index
命令进行修改的,而且还加上了drop_existing = on
选项。例如:
create nonclustered index ixn_SomeTable__SomeIndexName_ic1
on dbo.SomeTable ( Column1 )
include ( Column2, IncludeThisNewColumn3 )
with ( sort_in_tempdb = on, drop_existing = on, online = on, fillfactor = 95 ) on [SomeFileGroup]
go
但我也看到TSQL有alter index
语句。
问题 -
drop_existing=on
是什么意思?它只是删除现有的索引并重新创建它,还是在不需要重建索引的情况下(例如将列包含在非聚集索引中)可以节省重建索引(重新索引数据等)的时间?create index with drop_existing = on
和alter index
之间有什么区别?我什么时候必须使用其中一个?- 修改索引时,索引是否变为不可用状态?是否有办法将不可用时间最小化?