Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL Server 2012 SP 3, VMware и SecretNet Studio - анализ  [new]
Igor Abzalov
Member

Откуда: Барнаул
Сообщений: 182
Приветствую. Имеем виртуальный сервер SecretNet Studio 8.4 с MS SQL Server 2012 SP3, под VMware Hypervisor 5.5. После некоторых настроек SNS наблюдаем большую загрузку сервера по всем 6 vCPU, процессом sqlsrvr.exe. Как можно понять, что происходит внутри SQL Server и так нагружает CPU?
10 июл 19, 09:26    [21923954]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2012 SP 3, VMware и SecretNet Studio - анализ  [new]
архивариус
Member

Откуда:
Сообщений: 133
Igor Abzalov,

скачиваете TSQL скрипт для вашей версии SQL, в нем ищете по комментариям CPU

например для sql2016:
запрос 35
-- Get CPU utilization by database (Query 35) (CPU Usage by Database)
WITH DB_CPU_Stats
AS
(SELECT pa.DatabaseID, DB_Name(pa.DatabaseID) AS [Database Name], SUM(qs.total_worker_time/1000) AS [CPU_Time_Ms]
 FROM sys.dm_exec_query_stats AS qs WITH (NOLOCK)
 CROSS APPLY (SELECT CONVERT(int, value) AS [DatabaseID] 
              FROM sys.dm_exec_plan_attributes(qs.plan_handle)
              WHERE attribute = N'dbid') AS pa
 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
-- Note: This only reflects CPU usage from the currently cached query plans


43
-- Get top total worker time queries for entire instance (Query 43) (Top Worker Time Queries)
SELECT TOP(50) DB_NAME(t.[dbid]) AS [Database Name], 
REPLACE(REPLACE(LEFT(t.[text], 255), CHAR(10),''), CHAR(13),'') AS [Short Query Text],  
qs.total_worker_time AS [Total Worker Time], qs.min_worker_time AS [Min Worker Time],
qs.total_worker_time/qs.execution_count AS [Avg Worker Time], 
qs.max_worker_time AS [Max Worker Time], 
qs.min_elapsed_time AS [Min Elapsed Time], 
qs.total_elapsed_time/qs.execution_count AS [Avg Elapsed Time], 
qs.max_elapsed_time AS [Max Elapsed Time],
qs.min_logical_reads AS [Min Logical Reads],
qs.total_logical_reads/qs.execution_count AS [Avg Logical Reads],
qs.max_logical_reads AS [Max Logical Reads], 
qs.execution_count AS [Execution Count],
CASE WHEN CONVERT(nvarchar(max), qp.query_plan) LIKE N'%<MissingIndexes>%' THEN 1 ELSE 0 END AS [Has Missing Index], 
qs.creation_time AS [Creation Time]
--,t.[text] AS [Query Text], qp.query_plan AS [Query Plan] -- uncomment out these columns if not copying results to Excel
FROM sys.dm_exec_query_stats AS qs WITH (NOLOCK)
CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS t 
CROSS APPLY sys.dm_exec_query_plan(plan_handle) AS qp 
ORDER BY qs.total_worker_time DESC OPTION (RECOMPILE);
------


-- Helps you find the most expensive queries from a CPU perspective across the entire instance
-- Can also help track down parameter sniffing issues


58
-- Top Cached SPs By Total Worker time. Worker time relates to CPU cost  (Query 58) (SP Worker Time)
SELECT TOP(25) p.name AS [SP Name], qs.total_worker_time AS [TotalWorkerTime], 
qs.total_worker_time/qs.execution_count AS [AvgWorkerTime], qs.execution_count, 
ISNULL(qs.execution_count/DATEDIFF(Minute, qs.cached_time, GETDATE()), 0) AS [Calls/Minute],
qs.total_elapsed_time, qs.total_elapsed_time/qs.execution_count AS [avg_elapsed_time],
CASE WHEN CONVERT(nvarchar(max), qp.query_plan) LIKE N'%<MissingIndexes>%' THEN 1 ELSE 0 END AS [Has Missing Index],
FORMAT(qs.last_execution_time, 'yyyy-MM-dd HH:mm:ss', 'en-US') AS [Last Execution Time], 
FORMAT(qs.cached_time, 'yyyy-MM-dd HH:mm:ss', 'en-US') AS [Plan Cached Time]
-- ,qp.query_plan AS [Query Plan] -- Uncomment if you want the Query Plan
FROM sys.procedures AS p WITH (NOLOCK)
INNER JOIN sys.dm_exec_procedure_stats AS qs WITH (NOLOCK)
ON p.[object_id] = qs.[object_id]
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) AS qp
WHERE qs.database_id = DB_ID()
AND DATEDIFF(Minute, qs.cached_time, GETDATE()) > 0
ORDER BY qs.total_worker_time DESC OPTION (RECOMPILE);
------

-- This helps you find the most expensive cached stored procedures from a CPU perspective
-- You should look at this if you see signs of CPU pressure
10 июл 19, 10:08    [21923977]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2012 SP 3, VMware и SecretNet Studio - анализ  [new]
Igor Abzalov
Member

Откуда: Барнаул
Сообщений: 182
архивариус, выполнил. И что?
10 июл 19, 11:02    [21924030]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2012 SP 3, VMware и SecretNet Studio - анализ  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6516
Igor Abzalov
архивариус, выполнил. И что?

и чего там?
10 июл 19, 11:05    [21924034]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2012 SP 3, VMware и SecretNet Studio - анализ  [new]
aleks222
Member

Откуда:
Сообщений: 733
TaPaK
Igor Abzalov
архивариус, выполнил. И что?

и чего там?

А разве не должно было все починиться?
10 июл 19, 11:56    [21924076]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2012 SP 3, VMware и SecretNet Studio - анализ  [new]
Igor Abzalov
Member

Откуда: Барнаул
Сообщений: 182
aleks222, очень смешно. Нет, не дОлжно, кэп!
11 июл 19, 08:45    [21924515]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2012 SP 3, VMware и SecretNet Studio - анализ  [new]
Danion
Member

Откуда: Москва
Сообщений: 154
Igor Abzalov
aleks222, очень смешно. Нет, не дОлжно, кэп!

Но при этом никаких результатов выполнения скриптов, по которым можно что-то советовать, тоже не появилось.
11 июл 19, 09:33    [21924543]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2012 SP 3, VMware и SecretNet Studio - анализ  [new]
Igor Abzalov
Member

Откуда: Барнаул
Сообщений: 182
Danion, потому что Код безопасности молчит как рыба об лед. А без них понять их продукт сложно. База то небольшая по сути, всего 36 ГБ. Что там так можно делать, что грузятся все 6 vCPU - только разработчику известно.
11 июл 19, 10:24    [21924604]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2012 SP 3, VMware и SecretNet Studio - анализ  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6516
Igor Abzalov
Danion, потому что Код безопасности молчит как рыба об лед. А без них понять их продукт сложно. База то небольшая по сути, всего 36 ГБ. Что там так можно делать, что грузятся все 6 vCPU - только разработчику известно.

т.е. скрипты которые показывает что же выполняется вы смотреть не собираетесь. Больше афоризмов и метафор, авось само рассосётся!
11 июл 19, 10:26    [21924608]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2012 SP 3, VMware и SecretNet Studio - анализ  [new]
Igor Abzalov
Member

Откуда: Барнаул
Сообщений: 182
TaPaK, все внимательно посмотрел, ничего особенно на первый взгляд не вижу.
Есть такие факты, например, по запросу Get VLF Counts - рекомендуется по БД иметь <200, у меня - 291 сейчас.
11 июл 19, 10:47    [21924628]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2012 SP 3, VMware и SecretNet Studio - анализ  [new]
Igor Abzalov
Member

Откуда: Барнаул
Сообщений: 182
#35

I/O Rank Database Name Total I/O (MB) Total I/O % Read I/O (MB) Read I/O % Write I/O (MB) Write I/O %

1 SN7_SERVER_SCHEMA 297916.00 99.21 42045.00 99.67 255871.00 99.13

2 tempdb 2370.00 0.79 125.00 0.30 2244.00 0.87

3 msdb 8.00 0.00 8.00 0.02 0.00 0.00

4 model 4.00 0.00 4.00 0.01 0.00 0.00

5 master 3.00 0.00 2.00 0.00 0.00 0.00



#43

Server Name Object Name instance_name Page Life Expectancy

xxxSNS SQLServer:Buffer Node 000 10884



#58 - пусто
11 июл 19, 10:51    [21924633]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2012 SP 3, VMware и SecretNet Studio - анализ  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6516
Igor Abzalov
TaPaK, все внимательно посмотрел, ничего особенно на первый взгляд не вижу.
Есть такие факты, например, по запросу Get VLF Counts - рекомендуется по БД иметь <200, у меня - 291 сейчас.

а если бы вы были столяром то вы тоже бы сказали что серевер вполне нормальный и ничего особенного с него не выступает.
VLF это тут причём?
11 июл 19, 10:52    [21924635]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2012 SP 3, VMware и SecretNet Studio - анализ  [new]
архивариус
Member

Откуда:
Сообщений: 133
архивариус
Igor Abzalov,

скачиваете TSQL скрипт для вашей версии SQL, в нем ищете по комментариям CPU

например для sql2016:
запрос 35, 43, 58

для 2012 номера запросов могут быть другие, не надо бездумно запускать
11 июл 19, 12:18    [21924756]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить