WSUS-сервер
Увеличение количества памяти
По умолчанию в пуле IIS стоит довольно маленькое максимальное значение используемой памяти (~1.2 GB). Лучше поменять значение, которое используется по умолчанию. Это делается в дополнительных свойствах пула IIS, как показано на скриншоте.
Скрипт, показывающий фрагментацию индексов в процентах
SELECT S.name as 'Schema', T.name as 'Table', I.name as 'Index', DDIPS.avg_fragmentation_in_percent, DDIPS.page_count FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL) AS DDIPS INNER JOIN sys.tables T on T.object_id = DDIPS.object_id INNER JOIN sys.schemas S on T.schema_id = S.schema_id INNER JOIN sys.indexes I ON I.object_id = DDIPS.object_id AND DDIPS.index_id = I.index_id WHERE DDIPS.database_id = DB_ID() and I.name is not null AND DDIPS.avg_fragmentation_in_percent > 0 ORDER BY DDIPS.avg_fragmentation_in_percent desc
Скрипт для дефрагментации индексов
DECLARE fragmented CURSOR For SELECT T.Name as 'table' FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL) AS DDIPS INNER JOIN sys.tables T on T.object_id = DDIPS.object_id INNER JOIN sys.schemas S on T.schema_id = S.schema_id INNER JOIN sys.indexes I ON I.object_id = DDIPS.object_id AND DDIPS.index_id = I.index_id WHERE DDIPS.database_id = DB_ID() and I.name is not null AND DDIPS.avg_fragmentation_in_percent > 10 and DDIPS.page_count > 100 group by T.Name OPEN fragmented; declare @tableName nvarchar(1000) FETCH NEXT FROM fragmented INTO @tableName; declare @SQL nvarchar(max) WHILE @@FETCH_STATUS = 0 BEGIN set @SQL='ALTER INDEX ALL ON [' + @tableName + '] REBUILD;' print @SQL; --print @SQL EXEC SP_EXECUTESQL @SQL FETCH NEXT FROM fragmented INTO @tableName; END;
Мастер очистки WSUS через powershell
Иногда мастер очистки, запущенный через графическую консоль отваливается по таймауту и не выполняется до конца. Можно в таком случае запускать очистку через powershell:
Invoke-WsusServerCleanup -DeclineSupersededUpdates -DeclineExpiredUpdates -CleanupObsoleteUpdates -CleanupUnneed
Синхронизация одобренных обновлений в базе с реально существующими файлами на диске
Если файлы обновлений были удалены, повреждены или существующая база данных была использована на сервере с отсутствующими файлами обновлений, то можно запустить команду, которая выполнит проверку соответствия и загрузит заново нужные файлы. Команда выполняется сразу, но загрузка обновлений может идти долго, а консоль управления mmc какое-то время может выдавать ошибки.
cd "C:\Program Files\Update Services\Tools\" WsusUtil.exe reset