Добавил:
support-vk-server-knmcadiknmcadibav.ru Сайт моих друзей из VKT NDA : https://support-vk-server-knmcadiknmcadibav.ru/about/ ila_iv_id566844132@dnevnik.ru VK Testers NDA (тестировщик) QA. Студент 4 курса. +79009627198 https://vk.cc/help #HLKLesNarod# Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
05.07.2025
Размер:
2.48 Кб
Скачать
USE NameDataB;
GO

-- 🔧 1. Самые тяжёлые таблицы
DECLARE @HeavyTables XML = (
SELECT TOP 10
s.name AS [@Схема],
t.name AS [@Таблица],
SUM(p.rows) AS [@Строки],
CAST(SUM(a.total_pages) * 8 / 1024.0 AS DECIMAL(10,2)) AS [@РазмерМБ]
FROM sys.tables t
JOIN sys.schemas s ON t.schema_id = s.schema_id
JOIN sys.indexes i ON t.object_id = i.object_id
JOIN sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id
JOIN sys.allocation_units a ON p.partition_id = a.container_id
WHERE i.type IN (0,1)
GROUP BY s.name, t.name
ORDER BY SUM(p.rows) DESC
FOR XML PATH('Таблица'), ROOT('СамыеТяжёлые')
);

-- 🛑 2. Последние ошибки
DECLARE @LogTable TABLE (
LogDate DATETIME,
ProcessInfo NVARCHAR(100),
Text NVARCHAR(MAX)
);
INSERT INTO @LogTable
EXEC xp_readerrorlog;

DECLARE @Errors XML = (
SELECT TOP 10
LogDate AS [@Дата],
ProcessInfo AS [@Источник],
Text AS [@Сообщение]
FROM @LogTable
WHERE Text LIKE '%error%' OR ProcessInfo LIKE 'spid%'
ORDER BY LogDate DESC
FOR XML PATH('Ошибка'), ROOT('ПоследниеОшибки')
);

-- 📊 3. Состояние базы
DECLARE @DatabaseState XML = (
SELECT
d.name AS [@База],
CONVERT(DECIMAL(10,2), SUM(mf.size) * 8.0 / 1024) AS [@РазмерМБ],
CONVERT(DECIMAL(10,2),
SUM(mf.size) * 8.0 / 1024.0 -
ISNULL(SUM(FILEPROPERTY(mf.name, 'SpaceUsed')) * 8.0 / 1024.0, 0)
) AS [@СвободноМБ],
ISNULL(CONVERT(VARCHAR(30), MAX(b.backup_finish_date), 120), 'Нет копий') AS [@ПоследнийБэкап]
FROM sys.master_files mf
JOIN sys.databases d ON d.database_id = mf.database_id
LEFT JOIN msdb.dbo.backupset b ON b.database_name = d.name AND b.type = 'D'
WHERE d.name = DB_NAME()
GROUP BY d.name
FOR XML PATH('База'), ROOT('СостояниеБазы')
);

-- 🧩 4. Итоговый отчёт
DECLARE @FullReport XML = (
SELECT
@HeavyTables AS [Таблицы],
@Errors AS [Ошибки],
@DatabaseState AS [Состояние]
FOR XML PATH('Отчёт'), ROOT('Мониторинг')
);

-- 📤 Вывод в SSMS
SELECT @FullReport AS [XML-отчёт];
Соседние файлы в папке dnevnik ru