Supus que, após cada operação de índice executada pelo formulário "ALL" do comando, os dados do log de transações fossem liberados antes da próxima reconstrução do índice. É assim que realmente funciona ou as recriações do índice são registradas como se fizessem parte de uma única transação?
1) Liberação de log: o modelo de recuperação SIMPLE não limpa o log após cada transação, mas nos pontos de verificação. ( link para mais informações)
2a) RECONSTRUIR TUDO: sim, RECONSTRUIR TUDO funciona como uma única transação. As recriações de índice dentro têm suas próprias transações, mas a operação geral não é totalmente confirmada até o final. Portanto, sim, você pode limitar o crescimento do arquivo de log reconstruindo índices individuais (e possivelmente emitindo comandos CHECKPOINT).
2b) Prova! Aqui, tenha um script de demonstração. (Desenvolvido no desenvolvimento de 2016) Primeiro, configure um banco de dados de teste, com tabela e índices:
USE master
GO
CREATE DATABASE Test_RebuildLog
GO
ALTER DATABASE Test_RebuildLog
SET RECOVERY SIMPLE
GO
USE Test_RebuildLog
GO
CREATE TABLE IndexTest
(ID int identity(1,1),
a char(1),
b char(1))
CREATE CLUSTERED INDEX CIX_IndexTest_ID ON IndexTest(ID)
CREATE INDEX IX_IndexTest_a ON IndexTest(a)
CREATE INDEX IX_IndexTest_b ON IndexTest(b)
INSERT IndexTest
(a,b)
VALUES ('a','b'),('z','y'),('s','r')
Agora você pode comparar a atividade de log entre REBUILD ALL e reconstruir individualmente
CHECKPOINT
GO
ALTER INDEX ALL ON IndexTest REBUILD
SELECT *
FROM sys.fn_dblog(NULL,NULL)
WHERE Operation = 'LOP_COMMIT_XACT'
OR Operation = 'LOP_BEGIN_XACT'
GO
CHECKPOINT
GO
ALTER INDEX CIX_IndexTest_ID ON IndexTest REBUILD
ALTER INDEX IX_IndexTest_a ON IndexTest REBUILD
ALTER INDEX IX_IndexTest_b ON IndexTest REBUILD
SELECT *
FROM sys.fn_dblog(NULL,NULL)
WHERE Operation = 'LOP_COMMIT_XACT'
OR Operation = 'LOP_BEGIN_XACT'
GO
Observe como a primeira transação aberta (ID de transação 0000: 000002fa para mim) não é confirmada até o final de REBUILD ALL, mas, para as recriações de índice por índice, elas são confirmadas sucessivamente.