Answers:
是的,您应该阅读有关此主题的出色白皮书,尽管它指的是在线索引重建,但它仍然有很多不错的信息
http://technet.microsoft.com/zh-CN/library/cc966402.aspx
如果日志文件是自动增长的,则在完成操作后,您可以使用默认跟踪找到该信息。
DECLARE @filename VARCHAR(255)
SELECT @FileName = SUBSTRING(path, 0, LEN(path)-CHARINDEX('\', REVERSE(path))+1) + '\Log.trc'
FROM sys.traces
WHERE is_default = 1;
--Check if the data and log files auto-growed. Look for tempdb, log files etc.
SELECT
gt.ServerName
, gt.DatabaseName
, gt.TextData
, gt.StartTime
, gt.Success
, gt.HostName
, gt.NTUserName
, gt.NTDomainName
, gt.ApplicationName
, gt.LoginName
FROM [fn_trace_gettable](@filename, DEFAULT) gt
JOIN sys.trace_events te ON gt.EventClass = te.trace_event_id
WHERE EventClass in ( 92, 93 ) --'Data File Auto Grow', 'Log File Auto Grow'
ORDER BY StartTime;
--
不仅可以检测索引DDL操作是否增加了日志文件,而且是默认操作行。所有索引操作都记录在使用完整恢复模型的数据库中。
我建议您阅读有关MSDN的以下文章:确定索引磁盘空间要求。
从该文章的第3章- 用于索引操作的事务日志磁盘空间,我将引用:
“ 大型索引操作可能会产生大量数据负载,从而导致事务日志快速填充。为确保可以回滚索引操作,在索引操作完成之前,不能截断事务日志;但是,该日志因此,在日志操作期间,事务日志必须具有足够的空间来存储索引操作事务和任何并发用户事务。对于离线和在线索引操作都是如此。因为在脱机索引操作期间无法访问基础表,所以用户事务可能很少,并且日志的增长速度可能不会很快。联机索引操作不会阻止并发用户活动,因此,大规模联机索引操作与大量并发用户事务相结合会导致事务日志持续增长,而无法选择截断日志。”