Я хочу дефрагментировать таблицы в SQL Server, я использовал этот код, чтобы узнать, фрагментированные индексы:Как исправить фрагментированные индексы в sql-сервере?
sELECT dbschemas.[name] as 'Schema',
dbtables.[name] as 'Table',
dbindexes.[name] as 'Index',
indexstats.avg_fragmentation_in_percent as Fragmentation,
indexstats.page_count
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL)
AS indexstats INNER JOIN sys.tables dbtables on dbtables.[object_id] = indexstats.[object_id]
INNER JOIN sys.schemas dbschemas on dbtables.[schema_id] = dbschemas.[schema_id]
INNER JOIN sys.indexes AS dbindexes ON dbindexes.[object_id] = indexstats.[object_id]
AND indexstats.index_id = dbindexes.index_id
WHERE indexstats.database_id = DB_ID() ORDER BY indexstats.avg_fragmentation_in_percent
desc
после того, как у меня есть результаты, которые я использовал
DBCC INDEXDEFRAG([MAIL SYSTEMS],EmpMail)
к дефрагментированному индексу, а затем повторно использовать первый код, чтобы показать результаты, которые он показывает до дефрагментации, и ни одна страница не была удалена? Что случилось с этим и как я могу исправить индексы?
[ 'REBUILD/REORGANIZE'] (https://technet.microsoft.com/en-us/library/ms188388%28v=sql.105%29.aspx)? – lad2025
'DBCC INDEXFRAG' устарел. Лучше использовать 'ALTER INDEX' с' REBUILD' или 'REORGANIZE' –