
Добавил:
stud641pr2833455
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#
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:ila_iv_id566844132dnevnikru / Разработки для умных студентов на 5 / 665005-1 vrn / ila_iv_id566844132 dnevnik ru ростелеком / dnevnik ru / SQLQuery14ус
.sql 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-отчёт];
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