Forum Discussion

Saulius's avatar
Saulius
Copper Contributor
Mar 04, 2018

ALTER INDEX

Hello everyone,

on SQL 2012 I run ALTER INDEX [AllUserData_ParentId] ON [dbo].[AllUserData] REBUILD WITH (ONLINE = OFF) (~6mio records) and it takes ages (already runs for 6 hours). Fragmentation of this index is ~90%. For sure there is no blocking. With this query below I see that PERCENT COMPLETE still =0 after 6 hours run. I have concern that thsi query simply doesn't return completion, but how can I estimate completion time? How can I speed up that ALTER INDEX? 

 

SELECT r.session_id,r.command,CONVERT(NUMERIC(6,2),r.percent_complete)
AS [Percent Complete],CONVERT(VARCHAR(20),DATEADD(ms,r.estimated_completion_time,GetDate()),20) AS [ETA Completion Time],
CONVERT(NUMERIC(10,2),r.total_elapsed_time/1000.0/60.0) AS [Elapsed Min],
CONVERT(NUMERIC(10,2),r.estimated_completion_time/1000.0/60.0) AS [ETA Min],
CONVERT(NUMERIC(10,2),r.estimated_completion_time/1000.0/60.0/60.0) AS [ETA Hours],
CONVERT(VARCHAR(1000),(SELECT SUBSTRING(text,r.statement_start_offset/2,
CASE WHEN r.statement_end_offset = -1 THEN 1000 ELSE (r.statement_end_offset-r.statement_start_offset)/2 END)
FROM sys.dm_exec_sql_text(sql_handle)))
FROM sys.dm_exec_requests r WHERE command IN ('Alter Index')

No RepliesBe the first to reply

Resources