Tsql теория > Дефрагментация всех индексов в БД
27.03.2019 13:00:44
Наиболее часто встречающиеся слова в статье:
Статья:
SET NOCOUNT ON;
SET ANSI_PADDING ON;
SET ANSI_WARNINGS ON;
use [MDM_Light]
DECLARE @VAL VARCHAR(MAX);
DECLARE @CURSOR CURSOR;
CREATE TABLE #metadata_TMP
(TShema VARCHAR(25),
Tables_name VARCHAR(255) DEFAULT NULL,
Tables_count_records BIGINT DEFAULT 0,
Tabl_new_records BIGINT DEFAULT 0
);
-- получим список таблиц
INSERT INTO #metadata_TMP
(Tables_name,
TShema
)
SELECT TABLE_NAME,
TABLE_SCHEMA
FROM [MDM_Light].INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE';
SET @CURSOR = CURSOR SCROLL
FOR SELECT 'DBCC DBREINDEX ('''+Tables_name+''' ,'' '',70)'
FROM #metadata_TMP;
OPEN @CURSOR;
FETCH NEXT FROM @CURSOR INTO @VAL;
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN TRY
EXEC (@VAL);
--print @VAL
END TRY
BEGIN CATCH
PRINT 'ошибка перестроения индекса';
PRINT ERROR_MESSAGE();
END CATCH;
FETCH NEXT FROM @CURSOR INTO @VAL;
END;
CLOSE @CURSOR;