Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как определить, работа сервера с какой БД занимает сколько ресурсов?  [new]
seg856
Member

Откуда:
Сообщений: 264
На сервере sql srever 2012 se есть две базы, с которыми работают соответственно две разные программы.
Как узнать, сколько ресурсов (ОЗУ, процессорного времени) занимает работа сервера с каждой из этих БД?
1 окт 14, 10:10    [16642364]     Ответить | Цитировать Сообщить модератору
 Re: Как определить, работа сервера с какой БД занимает сколько ресурсов?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
in General - никак
Только если будете настраивать свой аудит и все такое самописный..и то "чистого" времени вы все равно не получите..будет вроемя на обработкеу запросов и все такое... не более
1 окт 14, 10:22    [16642441]     Ответить | Цитировать Сообщить модератору
 Re: Как определить, работа сервера с какой БД занимает сколько ресурсов?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Такое знание ничего не даст, надо рассматривать конкретные претензии, а не "доктор, у меня болит".
1 окт 14, 11:16    [16642945]     Ответить | Цитировать Сообщить модератору
 Re: Как определить, работа сервера с какой БД занимает сколько ресурсов?  [new]
Uridian
Member

Откуда: Lobnya
Сообщений: 219
не моё
-- Get CPU utilization by database (Query 19) (CPU Usage by Database)
WITH DB_CPU_Stats
AS
(SELECT DatabaseID, DB_Name(DatabaseID) AS [Database Name], SUM(total_worker_time) AS [CPU_Time_Ms]
 FROM sys.dm_exec_query_stats AS qs
 CROSS APPLY (SELECT CONVERT(int, value) AS [DatabaseID] 
              FROM sys.dm_exec_plan_attributes(qs.plan_handle)
              WHERE attribute = N'dbid') AS F_DB
 GROUP BY DatabaseID)
SELECT ROW_NUMBER() OVER(ORDER BY [CPU_Time_Ms] DESC) AS [CPU Rank],
       [Database Name], [CPU_Time_Ms] AS [CPU Time (ms)], 
       CAST([CPU_Time_Ms] * 1.0 / SUM([CPU_Time_Ms]) OVER() * 100.0 AS DECIMAL(5, 2)) AS [CPU Percent]
FROM DB_CPU_Stats
WHERE DatabaseID <> 32767 -- ResourceDB
ORDER BY [CPU Rank] OPTION (RECOMPILE);

-- Helps determine which database is using the most CPU resources on the instance


-- Get I/O utilization by database (Query 20) (IO Usage By Database)
WITH Aggregate_IO_Statistics
AS
(SELECT DB_NAME(database_id) AS [Database Name],
CAST(SUM(num_of_bytes_read + num_of_bytes_written)/1048576 AS DECIMAL(12, 2)) AS io_in_mb
FROM sys.dm_io_virtual_file_stats(NULL, NULL) AS [DM_IO_STATS]
GROUP BY database_id)
SELECT ROW_NUMBER() OVER(ORDER BY io_in_mb DESC) AS [I/O Rank], [Database Name], io_in_mb AS [Total I/O (MB)],
       CAST(io_in_mb/ SUM(io_in_mb) OVER() * 100.0 AS DECIMAL(5,2)) AS [I/O Percent]
FROM Aggregate_IO_Statistics
ORDER BY [I/O Rank] OPTION (RECOMPILE);

-- Helps determine which database is using the most I/O resources on the instance
1 окт 14, 14:45    [16644696]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить