Prettylib-tuoteratkaisut - Wiki

Indeksien uudelleenrakentaminen SQL scriptillä


Huom: Tämä artikkeli käsittelee edistyneempiä optimointeja SQL Server tietokannassa, joita ei normaaliolosuhteissa ole tarpeen tehdä.

Tätä ei suositella käytettäväksi normaalin käytön aikana, koska kuormittaa palvelinta ja heikentää tietokannan suorituskykyä ajon aikana.

Oheinen SQL scripti rakentaa sillä hetkellä valittuna olevan tietokannan kaikki indeksit (tietokantatason indeksit, ei PrettyLibin "taustaindeksejä") uudelleen. Suorittaa myös ns. statistiikan päivityksen, joka on tärkeää sql serverin optimoijan kannalta.


DECLARE @TableName varchar(255)
DECLARE @SQLS NVARCHAR(255)

DECLARE TableCursor CURSOR FOR

SELECT table_name FROM information_schema.tables
WHERE table_type = 'base table'
OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQLS = 'alter index all on ' + @TableName + ' rebuild'
EXEC sp_executesql @SQLS

SET @SQLS = 'UPDATE STATISTICS [dbo].['+ @TableName+']'
EXEC sp_executesql @SQLS

FETCH NEXT FROM TableCursor INTO @TableName
END
CLOSE TableCursor
DEALLOCATE TableCursor