Wednesday, September 25, 2013

My Queue is stuck – Project Server 2010

Cause: Indices ou estatíticas desatualizadas nas bases

How to solve:

1) Parar os serviços de fila em todos os servidores;

2) script para atualizar indices e estatísticas dos bancos (rodar em cada db do project, Archive, Reporting, Draft, Published):

DECLARE @TableName VARCHAR(255) DECLARE @sql NVARCHAR(500) DECLARE @fillfactor INT SET @fillfactor = 90 DECLARE TableCursor CURSOR FOR SELECT OBJECT_SCHEMA_NAME([object_id])+’.’+name AS TableName FROM sys.tables OPEN TableCursor FETCH NEXT FROM TableCursor INTO @TableName WHILE @@FETCH_STATUS = 0 BEGIN SET @sql = ‘ALTER INDEX ALL ON ‘ + @TableName + ‘ REBUILD WITH (FILLFACTOR = ‘ + CONVERT(VARCHAR(3),@fillfactor) + ‘)’ EXEC (@sql) FETCH NEXT FROM TableCursor INTO @TableName END CLOSE TableCursor DEALLOCATE TableCursor GO

sp_updatestats  EXEC sp_MSforeachtable ‘UPDATE STATISTICS ? WITH FULLSCAN’

3) iniciar os serviços de fila novamente;

4) Testar se a fila voltou a processor suas tarefas;