Содержание
- 1. Что такое sqlservr.exe?
- 2. Sqlservr.exe безопасно, или это вирус или вредоносная программа?
- 3. Могу ли я удалить или удалить sqlservr.exe?
- 4. Распространенные сообщения об ошибках в sqlservr.exe
- 5. Как исправить sqlservr.exe
- 6. Январь 2023 Обновление
- 7. Загрузите или переустановите sqlservr.exe
Обновлено 2023 января: Вот три шага к использованию инструмента восстановления для устранения проблем с exe на вашем компьютере: Получите его по адресу эту ссылку
- Скачайте и установите это программное обеспечение.
- Просканируйте свой компьютер на наличие проблем с exe.
- Исправьте ошибки exe с помощью программного инструмента
sqlservr.exe это исполняемый файл, который является частью Microsoft SQL Server 2005 Express Edition БУМАГА Программа, разработанная Корпорация Microsoft, Программное обеспечение обычно о по размеру.
Расширение .exe имени файла отображает исполняемый файл. В некоторых случаях исполняемые файлы могут повредить ваш компьютер. Пожалуйста, прочитайте следующее, чтобы решить для себя, является ли sqlservr.exe Файл на вашем компьютере — это вирус или троянский конь, который вы должны удалить, или это действительный файл операционной системы Windows или надежное приложение.
Рекомендуется: Выявление ошибок, связанных с sqlservr.exe
(опциональное предложение для Reimage — Cайт | Лицензионное соглашение | Персональные данные | Удалить)
Sqlservr.exe безопасно, или это вирус или вредоносная программа?
Первое, что поможет вам определить, является ли тот или иной файл законным процессом Windows или вирусом, это местоположение самого исполняемого файла. Например, такой процесс, как sqlservr.exe, должен запускаться из C: Program Files Microsoft SQL Server MSSQL.1 MSSQL Binn sqlservr.exe и нигде в другом месте.
Для подтверждения откройте диспетчер задач, выберите «Просмотр» -> «Выбрать столбцы» и выберите «Имя пути к изображению», чтобы добавить столбец местоположения в диспетчер задач. Если вы обнаружите здесь подозрительный каталог, возможно, стоит дополнительно изучить этот процесс.
Еще один инструмент, который иногда может помочь вам обнаружить плохие процессы, — это Microsoft Process Explorer. Запустите программу (не требует установки) и активируйте «Проверить легенды» в разделе «Параметры». Теперь перейдите в View -> Select Columns и добавьте «Verified Signer» в качестве одного из столбцов.
Если статус процесса «Проверенная подписывающая сторона» указан как «Невозможно проверить», вам следует взглянуть на процесс. Не все хорошие процессы Windows имеют метку проверенной подписи, но ни один из плохих.
Самые важные факты о sqlservr.exe:
- Находится в C: Program Files Microsoft SQL Server вложенная;
- Издатель: Корпорация Microsoft
- Полный путь: C: Program Files Microsoft SQL Server MSSQL.1 MSSQL Binn sqlservr.exe
- Файл справки:
- URL издателя: www.microsoft.com/sqlserver
- Известно, что до по размеру на большинстве окон;
Если у вас возникли какие-либо трудности с этим исполняемым файлом, вы должны определить, заслуживает ли он доверия, прежде чем удалять sqlservr.exe. Для этого найдите этот процесс в диспетчере задач.
Найдите его местоположение (оно должно быть в C: Program Files Microsoft SQL Server ) и сравните его размер с приведенными выше фактами.
Если вы подозреваете, что можете быть заражены вирусом, вы должны немедленно попытаться это исправить. Чтобы удалить вирус sqlservr.exe, необходимо Загрузите и установите приложение полной безопасности, например Malwarebytes., Обратите внимание, что не все инструменты могут обнаружить все типы вредоносных программ, поэтому вам может потребоваться попробовать несколько вариантов, прежде чем вы добьетесь успеха.
Кроме того, функциональность вируса может сама влиять на удаление sqlservr.exe. В этом случае вы должны включить Безопасный режим с загрузкой сетевых драйверов — безопасная среда, которая отключает большинство процессов и загружает только самые необходимые службы и драйверы. Когда вы можете запустить программу безопасности и полный анализ системы.
Могу ли я удалить или удалить sqlservr.exe?
Не следует удалять безопасный исполняемый файл без уважительной причины, так как это может повлиять на производительность любых связанных программ, использующих этот файл. Не забывайте регулярно обновлять программное обеспечение и программы, чтобы избежать будущих проблем, вызванных поврежденными файлами. Что касается проблем с функциональностью программного обеспечения, проверяйте обновления драйверов и программного обеспечения чаще, чтобы избежать или вообще не возникало таких проблем.
Согласно различным источникам онлайн,
6% людей удаляют этот файл, поэтому он может быть безвредным, но рекомендуется проверить надежность этого исполняемого файла самостоятельно, чтобы определить, является ли он безопасным или вирусом. Лучшая диагностика для этих подозрительных файлов — полный системный анализ с Reimage, Если файл классифицирован как вредоносный, эти приложения также удалят sqlservr.exe и избавляются от связанных вредоносных программ.
Однако, если это не вирус, и вам нужно удалить sqlservr.exe, вы можете удалить Microsoft SQL Server 2005 Express Edition PAPERSAVE со своего компьютера, используя программу удаления, которая должна находиться по адресу: MsiExec.exe / I {2AFFFDD7-ED85 -4A90-8C52-5DA9EBDC9B8F}. Если вы не можете найти его деинсталлятор, вам может понадобиться удалить Microsoft SQL Server 2005 Express Edition PAPERSAVE, чтобы полностью удалить sqlservr.exe. Вы можете использовать функцию «Установка и удаление программ» на панели управления Windows.
- 1. в Меню Пуск (для Windows 8 щелкните правой кнопкой мыши в нижнем левом углу экрана), нажмите Панель управления, а затем под Программы:
o Windows Vista / 7 / 8.1 / 10: нажмите Удаление программы.
o Windows XP: нажмите Установка и удаление программ.
- 2. Когда вы найдете программу Microsoft SQL Server 2005 Express Edition БУМАГАщелкните по нему, а затем:
o Windows Vista / 7 / 8.1 / 10: нажмите Удалить.
o Windows XP: нажмите Удалить or Изменить / Удалить вкладка (справа от программы).
- 3. Следуйте инструкциям по удалению Microsoft SQL Server 2005 Express Edition БУМАГА.
Распространенные сообщения об ошибках в sqlservr.exe
Наиболее распространенные ошибки sqlservr.exe, которые могут возникнуть:
• «Ошибка приложения sqlservr.exe».
• «Ошибка sqlservr.exe».
• «sqlservr.exe столкнулся с проблемой и должен быть закрыт. Приносим извинения за неудобства.»
• «sqlservr.exe не является допустимым приложением Win32».
• «sqlservr.exe не запущен».
• «sqlservr.exe не найден».
• «Не удается найти sqlservr.exe.»
• «Ошибка запуска программы: sqlservr.exe.»
• «Неверный путь к приложению: sqlservr.exe.»
Эти сообщения об ошибках .exe могут появляться во время установки программы, во время выполнения ее ассоциированной программы, Microsoft SQL Server 2005 Express Edition PAPERSAVE, во время запуска или завершения работы Windows, или даже во время установки операционной системы Windows. Отслеживание момента появления ошибки sqlservr.exe является важной информацией, когда дело доходит до устранения неполадок.
Как исправить sqlservr.exe
Аккуратный и опрятный компьютер — это один из лучших способов избежать проблем с Microsoft SQL Server 2005 Express Edition PAPERSAVE. Это означает выполнение сканирования на наличие вредоносных программ, очистку жесткого диска cleanmgr и ПФС / SCANNOWудаление ненужных программ, мониторинг любых автозапускаемых программ (с помощью msconfig) и включение автоматических обновлений Windows. Не забывайте всегда делать регулярные резервные копии или хотя бы определять точки восстановления.
Если у вас возникла более серьезная проблема, постарайтесь запомнить последнее, что вы сделали, или последнее, что вы установили перед проблемой. Использовать resmon Команда для определения процессов, вызывающих вашу проблему. Даже в случае серьезных проблем вместо переустановки Windows вы должны попытаться восстановить вашу установку или, в случае Windows 8, выполнив команду DISM.exe / Online / Очистка-изображение / Восстановить здоровье, Это позволяет восстановить операционную систему без потери данных.
Чтобы помочь вам проанализировать процесс sqlservr.exe на вашем компьютере, вам могут пригодиться следующие программы: Менеджер задач безопасности отображает все запущенные задачи Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записи автозапуска. Единый рейтинг риска безопасности указывает на вероятность того, что это шпионское ПО, вредоносное ПО или потенциальный троянский конь. Это антивирус обнаруживает и удаляет со своего жесткого диска шпионское и рекламное ПО, трояны, кейлоггеры, вредоносное ПО и трекеры.
Обновлено в январе 2023 г .:
Мы рекомендуем вам попробовать это новое программное обеспечение, которое исправляет компьютерные ошибки, защищает их от вредоносных программ и оптимизирует производительность вашего ПК. Этот новый инструмент исправляет широкий спектр компьютерных ошибок, защищает от таких вещей, как потеря файлов, вредоносное ПО и сбои оборудования.
- Шаг 1: Скачать PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista — Microsoft Gold Certified).
- Шаг 2: Нажмите «Начать сканирование”, Чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
- Шаг 3: Нажмите «Починить все», Чтобы исправить все проблемы.
(опциональное предложение для Reimage — Cайт | Лицензионное соглашение | Персональные данные | Удалить)
Загрузите или переустановите sqlservr.exe
Вход в музей Мадам Тюссо не рекомендуется загружать заменяемые exe-файлы с любых сайтов загрузки, так как они могут содержать вирусы и т. д. Если вам нужно скачать или переустановить sqlservr.exe, то мы рекомендуем переустановить основное приложение, связанное с ним Microsoft SQL Server 2005 Express Edition БУМАГА.
Информация об операционной системе
Ошибки sqlservr.exe могут появляться в любых из нижеперечисленных операционных систем Microsoft Windows:
- Windows 10
- Windows 8.1
- Windows 7
- Windows Vista
- Windows XP
- Windows ME
- Windows 2000
- Remove From My Forums
-
Question
-
Hi,
I’m using SQL Server Express 2012. I have database with 200 Mb actually.
So, I want to know If is it normal
if the process (app) ‘SQL Server Windows NT — 64 Bit’ use 400 MB from Ram (at all) and CPU up to 46% some times ?If my Server receive DDOS Attak on the TCP port of database ? How can I detect ? How can I solve it.
Thanks
-
Edited by
Wednesday, February 11, 2015 2:25 PM
-
Edited by
Answers
-
Hi nadjibnet,
SQL Server Windows NT -64 Bit is known as sqlservr.exe process, it is normal that SQL Server consumes as much memory as possible since SQL Server likes to cache data in memory to speed up access. You might have long running queries on SQL Server. Do you
find any performance issues?If SQL Server is not installed on a dedicate production machine and you have other applications on the machine, you could limit the memory usage by
configuring Max Server Memory according to your situation.In addition, about how to detect DDOS attack and block it, you could refer to the following article:
https://sulich.wordpress.com/2012/06/27/detecting-ddos-attack-in-windows/. I suggest you to post the questions in the
Windows Server forums. It is appropriate and more experts will assist you.
Regards,
Michelle Li-
Edited by
Michelle Li
Thursday, February 12, 2015 7:25 AM -
Marked as answer by
nadjibnet
Thursday, February 12, 2015 10:00 AM
-
Edited by
- Remove From My Forums
-
Question
-
Hi,
I’m using SQL Server Express 2012. I have database with 200 Mb actually.
So, I want to know If is it normal
if the process (app) ‘SQL Server Windows NT — 64 Bit’ use 400 MB from Ram (at all) and CPU up to 46% some times ?If my Server receive DDOS Attak on the TCP port of database ? How can I detect ? How can I solve it.
Thanks
-
Edited by
Wednesday, February 11, 2015 2:25 PM
-
Edited by
Answers
-
Hi nadjibnet,
SQL Server Windows NT -64 Bit is known as sqlservr.exe process, it is normal that SQL Server consumes as much memory as possible since SQL Server likes to cache data in memory to speed up access. You might have long running queries on SQL Server. Do you
find any performance issues?If SQL Server is not installed on a dedicate production machine and you have other applications on the machine, you could limit the memory usage by
configuring Max Server Memory according to your situation.In addition, about how to detect DDOS attack and block it, you could refer to the following article:
https://sulich.wordpress.com/2012/06/27/detecting-ddos-attack-in-windows/. I suggest you to post the questions in the
Windows Server forums. It is appropriate and more experts will assist you.
Regards,
Michelle Li-
Edited by
Michelle Li
Thursday, February 12, 2015 7:25 AM -
Marked as answer by
nadjibnet
Thursday, February 12, 2015 10:00 AM
-
Edited by
|
|||
razerw
20.06.17 — 10:17 |
Добрый день, win ser 2012, mssql 2012 |
||
Господин ПЖ
1 — 20.06.17 — 10:20 |
в managent studio смотреть по duration |
||
rphosts
2 — 20.06.17 — 10:35 |
(1) +1 |
||
vicof
3 — 20.06.17 — 10:37 |
(0) http://tsya.ru/ |
||
razerw
4 — 20.06.17 — 10:38 |
(2) подскажите как туда зайти |
||
Господин ПЖ
5 — 20.06.17 — 10:39 |
мля… |
||
razerw
6 — 20.06.17 — 10:40 |
я в актив мониторе смотрю |
||
pessimist
7 — 20.06.17 — 10:51 |
(0) Это вам повезло. |
||
razerw
8 — 20.06.17 — 10:53 |
Так дело в том что все было хорошо, и тут на тебе висяки пошли. |
||
razerw
9 — 20.06.17 — 10:58 |
Что в трассировках я должен увидеть? как мне понять что именно грузит проц? |
||
H A D G E H O G s
10 — 20.06.17 — 11:29 |
(9) Это эвристический, а не имперический процесс. |
||
H A D G E H O G s
11 — 20.06.17 — 11:30 |
» | ||
Господин ПЖ
12 — 20.06.17 — 11:42 |
(10) послал так послал |
||
Fragster
13 — 20.06.17 — 11:45 |
в активити мониторе можно увидеть текущий запрос, который долго выполняется, если его породила 1ска, то по именам метаданных прикинуть, что же это такое, поискать в коде и т.п. |
||
Fragster
14 — 20.06.17 — 11:47 |
если это 1с, то, опять же, можно посмотреть в консоли 1с у кого из юзеров сейчас большое «время вызова СУББ текущее», подойти и ненавязчиво поинтересоваться, что же он такое запустил… |
||
Господин ПЖ
15 — 20.06.17 — 11:48 |
>какой запрос съедает ресурсы ЦП? как это в одной голове уживается. полушария живут отдельно друг от друга? |
||
ansh15
16 — 20.06.17 — 11:53 |
(0) Что за процессор и сколько пользователей? |
||
Bigbro
17 — 20.06.17 — 11:57 |
я бы предложил ребилд индексов или хотя бы обновление статистики сделать. |
||
Одинесю
18 — 20.06.17 — 11:58 |
Да просто стоит регламентное задание какое-то. |
||
Bigbro
19 — 20.06.17 — 12:00 |
когда скуль нормально настроен регламентные его так не насилуют обычно. скорее всего что то в конфигурации сервера/бд напутано. |
||
Господин ПЖ
20 — 20.06.17 — 12:14 |
>может какой то гений full поставил и теперь там лог в 10 раз больше базы ну и что >я бы предложил ребилд индексов или хотя бы обновление статистики сделать. есть повод выбрасывать скомпилированные планы выполнения? |
||
rphosts
21 — 20.06.17 — 12:45 |
(7) с такими вопросами овер 90% что не в проце дело а базу давно пора обслужить |
||
Cyberhawk 22 — 22.06.17 — 13:07 |
Что-то не ясно, почему в (10) противопоставление: эмпирический — основанный на опыте. Эвристический — наверное, имелось в виду, что нужно чутье. Одно другому не противоречит же — нужно применять чутье во время опыта. |
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Как понять что проблема именно в SQL Server — Заходим в Диспетчер задач, на вкладке Подробности находим sqlserver и смотрим колонку ЦП.
Если это значение постонно высокое, то значит где-то идет утечка CPU.
В этом руководстве мы собрали различные советы как решать подобную проблему
Поиск проблемных мест в SQL Server по CPU
1. Cмотрим счетчики perfmon
Определяем проблема в Kernel или User запросах.
В perfmon смотрим следующие параметры:
- Processor: % Privileged Time – Percentage of time processor spends on execution of Microsoft Windows kernel commands such as OS activity. (If more than 30% involve Windows Admins)
- Process (sqlservr): % Privileged Time – the sum of processor time on each processor for all threads of the process (SQL Kernel)
- Processor: % User Time – percentage of time the processor spends on executing user processes such as SQL Server. This includes I/O requests from SQL Server
Если это значение % Privileged Time / No of logical cpus больше 30%, то скорее всего дело в системных настройках, возможно антивирус.
Используя данную инструкцию вы можете найти проблемные spID, которые в данный момент загружают процессор — https://www.mssqltips.com/sqlservertip/2454/how-to-find-out-how-much-cpu-a-sql-server-process-is-really-using/
2. Ищем проблемные процессы
SELECT * FROM sys.sysprocesses
WHERE cmd like 'LAZY WRITER' or cmd like '%Ghost%' or cmd like 'RESOURCE MONITOR'
альтернативный вариант:
SELECT top 20 spid, kpid, dbid, cpu, memusage FROM sysprocesses
order by cpu desc
spID с 1 до 50 — это системные. Мы можем отключать (kill spID) или смотреть запрос только для пользовательских (spID>50).
Также пробуем использовать хранимки exec sp_who, sp_who1, sp_who2, sp_who3 — они позволяют посмотреть все процессы и их текущее состояние.
По spid можно найти этот запрос:
DECLARE @sqltext VARBINARY(128)
SELECT @sqltext = sql_handle
FROM sys.sysprocesses
WHERE spid = 78
SELECT TEXT
FROM sys.dm_exec_sql_text(@sqltext)
GO
Альтернативно вы можете посмотреть последний запрос, выполняющийся в рамках этого spID:
DBCC INPUTBUFFER(60)
GO
SELECT @@SPID -- получить SPID текущего процесса
GO
А также можно убить процесс через kill spID. Убили процесс — и посмотрели как это сказалось на загрузке.
3. Выявление проблем через спец запросы SQL
Также попробуйте выполнить следующие запросы для поиска проблемных мест по CPU
SELECT GETDATE() AS "RunTime", st.text AS batch, SUBSTRING(st.text,statement_start_offset / 2+1
,((CASE WHEN a.statement_end_offset = -1
THEN (LEN(CONVERT(nvarchar(max),st.text)) * 2)
ELSE a.statement_end_offset END) - a.statement_start_offset) / 2+1) AS current_statement
, qp.query_plan, a.*
FROM sys.dm_exec_requests a CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) AS st
CROSS APPLY sys.dm_exec_query_plan(a.plan_handle) AS qp
ORDER BY CPU_time DESC
Еще один скрипт для поиска проблемных запросов по CPU:
/*
Disclaimer: I am not sure for the origin of this script/query.
This query is used in our team to identify and resolve high CPU issue
*/
--define the temptables that will hold intermediary results
IF OBJECT_ID('tempdb..#dbcc') IS NOT NULL
DROP TABLE #dbcc
create table #dbcc(c1 varchar(15), c2 int, c3 varchar(255),spid int default 0)
IF OBJECT_ID('tempdb..#cpugroups') IS NOT NULL
DROP TABLE #cpugroups
create table #cpugroups (sql_handle binary(20), sql_text nvarchar(50),total_cpu bigint,total_io bigint,total_sessions int, total_threads int)
--take the SPID groups that are running same code (NOT statement)
insert into #cpugroups
select top 10 sql_handle,substring((select text from fn_get_sql(sql_handle)),1,50), SUM(CPU) TotalCPUForGroup, SUM(physical_io) TotalIOForGroup, COUNT(distinct spid) TotalNoOfSessions,COUNT(*) TotalNoOfThreads
from master..sysprocesses (nolock)
where spid>50 and status<>'sleeping'
and sql_handle<>0x0 and spid<>@@spid
group by sql_handle
order by TotalCPUForGroup desc
declare @sql nvarchar(max)
declare @t table (spid int)
INSERT INTO @t
SELECT DISTINCT spid FROM master..sysprocesses WHERE spid>50 and sql_handle in (select sql_handle from #cpugroups)
declare @spid int
WHILE EXISTS(select * from @t)
BEGIN
select top 1 @spid=spid from @t
set @sql='dbcc inputbuffer('+LTRIM(STR(@spid))+')'
--try to retrieve the original command for all SPIDs
BEGIN TRY
INSERT INTO #dbcc(c1, c2, c3)
EXEC (@sql)
update #dbcc
set spid=@spid
where spid=0
END TRY
BEGIN CATCH
END CATCH
delete from @t where spid=@spid
END
select * from #cpugroups
select c3 [sql_text], count(*) NoOfSessionsRunning from #dbcc group by c3 order by 2 desc
select * from #dbcc
Для найденных элементов можно удалить план в кеше (подставив sql_handle):
DBCC FREEPROCCACHE (plan_handle_id_goes_here)
Еще 1 запрос на поиск проблем по CPU:
SELECT
r.session_id
,st.TEXT AS batch_text
,SUBSTRING(st.TEXT, statement_start_offset / 2 + 1, (
(
CASE
WHEN r.statement_end_offset = - 1
THEN (LEN(CONVERT(NVARCHAR(max), st.TEXT)) * 2)
ELSE r.statement_end_offset
END
) - r.statement_start_offset
) / 2 + 1) AS statement_text
,qp.query_plan AS 'XML Plan'
,r.*
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS st
CROSS APPLY sys.dm_exec_query_plan(r.plan_handle) AS qp
ORDER BY cpu_time DESC
И еще один:
SELECT s.session_id,
r.status,
r.blocking_session_id 'Blk by',
r.wait_type,
wait_resource,
r.wait_time / (1000 * 60) 'Wait M',
r.cpu_time,
r.logical_reads,
r.reads,
r.writes,
r.total_elapsed_time / (1000 * 60) 'Elaps M',
Substring(st.TEXT,(r.statement_start_offset / 2) + 1,
((CASE r.statement_end_offset
WHEN -1
THEN Datalength(st.TEXT)
ELSE r.statement_end_offset
END - r.statement_start_offset) / 2) + 1) AS statement_text,
Coalesce(Quotename(Db_name(st.dbid)) + N'.' + Quotename(Object_schema_name(st.objectid, st.dbid)) + N'.' +
Quotename(Object_name(st.objectid, st.dbid)), '') AS command_text,
r.command,
s.login_name,
s.host_name,
s.program_name,
s.last_request_end_time,
s.login_time,
r.open_transaction_count
FROM sys.dm_exec_sessions AS s JOIN sys.dm_exec_requests AS r
ON r.session_id = s.session_id CROSS APPLY sys.Dm_exec_sql_text(r.sql_handle) AS st
WHERE r.session_id != @@SPID
ORDER BY r.cpu_time desc
Также посмотрите правой кнопкой на Сервере > reports> Standard reports > Top CPU queries.
4. Анализ найденных проблемных запросов
В найденных запросах посмотрите execution plan и посмотрите где наибольший cost.
Дополнительные рекомендации:
- проверьте что стоят все необходимые индексы на таблицах, которые участвуют в проблемных запросах.
- постарайтесь как можно «быстрее» в where обрезать данные для уменьшения выборки для последующей обработки. Т.е. старайтесь не допускать сканирования по очень большой таблице без использования какой либо фильтрации (либо эта фильтрация содержит затратную логику проверки условий)
- проверьте, что у вас нет затратных конвертаций типов
- если используете множественно функции, проверьте что они используют минимум извлечений внутри.
- Вариант — поставить обновление https://support.microsoft.com/ru-ru/help/3195888/fix-high-cpu-usage-causes-performance-issues-in-sql-server-2016-and-20
select * from sys. dm_os_spinlock_stats -- провериить что нет больших чисел у SECURITY_CACHE и CMED_HASH_SET - если есть то установить обновления
- https://docs.microsoft.com/ru-ru/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-query-plan-transact-sql?view=sql-server-ver15 находить тяжелые процессы и смотреть их планы запросов
- Как посмотреть запрос по sql handle или plan handle — https://docs.microsoft.com/ru-ru/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-sql-text-transact-sql?view=sql-server-ver15
Источники и что почитать по теме утечек CPU
- http://dba-datascience.com/high-cpu-usage-sql-server/
- https://support.microsoft.com/ru-ru/help/2009160/high-cpu-use-occurs-in-your-queries-on-sql-server
- https://blog.sqlauthority.com/2018/03/23/sql-server-how-to-fix-high-cpu-consumption-on-sql-server-2017-and-2016/
- https://logicalread.com/2014/12/04/troubleshoot-high-cpu-sql-server-pd01/#.XqLoTmYzaM8
- https://www.sql.ru/forum/96127/sp-who3
- https://www.c-sharpcorner.com/blogs/difference-between-spwho-spwho2
- https://docs.microsoft.com/ru-ru/archive/blogs/docast/sql-high-cpu-troubleshooting-checklist очень подробная статья.
- https://www.mssqltips.com/sqlservertip/2454/how-to-find-out-how-much-cpu-a-sql-server-process-is-really-using/
- https://www.youtube.com/watch?v=98c8spD5k5s
Альтернативная документация по поиску CPU проблем SQL Server
Что проверить в первую очередь:
- Конфигурация железа сервера.
- Дисковая подсистема.
- Свободное место.
- Антивирус на сервере стоит?
- БД (операции) не выполняются / выполняются, как часто.
- Проверка целостности
- Индексы перестройка
- Обновление статистики
- Сжатие (шринк)
Общие рекомендации
http://sqlcom.ru/optimization_query/sql-server-performance-problems-after-moved-to-new-server/
Электропитания — использовать «Высокая производительность»
настройка кэширования записи на диск
антивирус, — добавить папку SQL Server и файлов БД в исключения
настройка настроены параметры параллелизма (cost threshold for parallelism, max degree of parallelism)
настройка Hyper-Threading.
Мониторинг SSMS — «Стандартные отчеты»
«Стандартные отчеты» в пользовательском интерфейсе Management Studio
SQL Server Management Studio предоставляет минимальный необходимый набор стандартных отчетов для получения информации в режиме пользовательского интерфейса.
Доступ к этим отчетам может быть выполнен через «Обозреватель объектов» (Object explorer) → Правый клик мыши по базе данных → «Отчеты» (Reports) → «Стандартный отчет» (Standard reports)
Перечень «Стандартные отчеты»:
Перечень «Стандартные отчеты»:
- Занято место на диске
- Использование дисковой памяти верхними таблицами
- Использование дисковой памяти таблицей
- Использование дисковой памяти секцией
- События резервного копирования и восстановления
- Все транзакции
- Все блокирующие транзакции
- Самые продолжительные транзакции
- Транзакции, блокирующие наибольшее кол-во транзакций при выполнении
- Транзакции с наибольшим кол-вом блокировок
- Статистика блокировки ресурсов по объектам
- Статистика выполнения объектов
- Журнал согласованности баз данных
- Статистика использования индекса
- Физическая статистика индекса
- Журнал изменений схемы
- Статистика пользователей
- Перечень «Пользовательские отчеты»
Мониторинг Activity Monitor — Монитор активности
Открыть монитор активности CTRL+ALT+A или SSMS стандарт. панель инструментов значок.
Монитор активности SQL Server 2008 объединяет данные о процессах, предоставляя наглядную информацию по выполняющимся и недавно выполнявшимся процессам.
Монитор активности предлагает администратору раздел обзора, внешне похожий на Диспетчер задач Windows, а также компоненты детального просмотра отдельных процессов, ожидания ресурсов, ввода-вывода в файлы данных и последних ресурсоемких запросов.
Мониторинг Reporting Services — Performance Dashboard Reports
Для наблюдения за SQL Server есть интересный пакет отчетов Reporting Services, называется он SQL Server Performance Dashboard Reports.
Можноскачать
The SQL Server 2012 Performance Dashboard Reports are Reporting Services report files designed to be used with the Custom Reports feature of SQL Server Management Studio.
Вопрос – используется ли Reporting Services?
Мониторинг (платный)
(платный) от разных компаний:
Idera — SQL Diagnostic Manager
Red-Gate — SQL Monitor
ApexSQL — ApexSQL Monitor
Quest — Spotlight on SQL Server Enterprise
SentryOne — SQL centry
Так же — вариант мониторинга SQL Server на Zabbix.
СКРИПТЫ — системные
sp_who и sp_who2
найти блокирующие и ожидающие запросы
1 — 100_1_sys.dm_exec_query_stats — most time cpu
— 100_1_sys.dm_exec_query_stats_Which Queries are taking the most time cpu to execute
sys.dm_exec_query_stats OUTER APPLY sys.dm_exec_query_pl
3 — 100_3_sys.dm_exec_query_stats cpu-utilization
100_3_sys.dm_exec_query_stats_sql-server-cpu-utilization-io-usage-and-memory-usage.sql
sys.dm_exec_query_stats CROSS APPLY sys.dm_exec_plan_attributes
Результат имеет вид.
row_num |
DatabaseName |
CPU_Time(Ms) |
CPUPercent |
1 |
master |
6355553 |
88.11 |
2 |
АutoParts_shop_v2 |
357018 |
4.95 |
3 |
testDB_1 |
255776 |
3.55 |
4 |
tempdb |
244863 |
3.39 |
5 |
msdb |
142 |
0 |
4 — 100_4_sys.dm_exec_query_stats_Тяжелые запросы
— 100_4_sys.dm_exec_query_stats_Тяжелые запросы
— Скрипт основан на представлении sys.dm_exec_query_stats:
5 — 100_5_sys.dm_tran_locks_заблокированные запросы
Быстрый способ найти заблокированные запросы
— 100_5_sys.dm_tran_locks_заблокированные запросы
— мы должны убить blocking_session_id.
— Изучите столбец BlockingText
— Мы можем убить сессию с помощью KILL 52
6 — 100_6_Какой процессор чем загружен
— 100_6_Какой процессор чем загружен
7 — 100_7_Информация о пользователях и подключения.sql
— 100_7_Информация о пользователях и подключения.sql
— представлениям: sys.dm_exec_connections, master.sys.sysprocesses, sys.dm_exec_sessions
СКРИПТЫ — sp_WhoIsActive
Вызов:
200_2_sp_WhoIsActive_Параметры.sql
Источник:
http://whoisactive.com/
sp_whoisactive is a comprehensive activity monitoring stored procedure that works for all versions of SQL Server from 2005 through 2017.
«Who Is Active» показывает только текущую активность сервера ( кто и что вызывает нагрузку в данный момент времени.). Можно использовать для сбора и последующего анализа данных.
Внутри используется 15 DMV.
Много параметров.
@show_sleeping_spids = 2, -- Показать спящие сессии
@show_system_spids = 1, -- Показать системные сессии
@show_own_spid = 1 -- Показать вашу собственную сессию
, @get_full_inner_text = 1 -- видеть всю активность,
, @get_outer_command = 1 -- что вызвало этот [sql_text]
, @get_task_info = 1 -- Вывести в столбец [wait_info] не только самое важное ожидание, но и все остальные:
, @get_transaction_info = 1 --9. Можно так же убрать агрегацию транзакций одной сессии и вывести их по отдельности:
, @get_additional_info = 1 --10. Вывести более детальную информацию. Будет добавлен столбец [additional_info] с информацией в формате XML
-- , @find_block_leaders = 1 -- количество заблокированных процессов каждой сессией:
, @sort_order = '[CPU] DESC' -- сортировку вывода
СКРИПТЫ — sp_Blitz
Нужно ставить внешнюю процедуру. Можно ставить в любую БД.
Источник:
https://www.brentozar.com/askbrent/
https://www.brentozar.com/first-aid/
Быстрая проверка вашего SQL Server (sp_Blitz)
Как работает:
- Вы устанавливаете процедуру
- Запускаете когда вам удобно
Обычно процедура выполняется от 5 до 15 секунд. Скрипт максимально проработан чтобы не препятствовать работе других пользователей, но вам всё равно лучше проверить его работу на тестовом сервере
--dbo.sp_Blitz -- общие параметры
--sp_BlitzFirst - "Why is my SQL Server slow right now?"
--sp_BlitzCache - "What are the most resource-intensive queries on this server?"
--sp_BlitzIndex - "How could I tune indexes to make this database faster?"
--sp_BlitzQueryStore - "How has this query performed over time?"
--Sorry, sp_BlitzQueryStore doesn't work on versions of SQL prior to 2016, or Azure Database compatibility < 130.
--sp_BlitzWho --Who’s running what queries right now?
SQL Profiler
SQL Profiler — используйте, где нужно быстро посмотреть, что там за запрос.
SQL Profiler — остается одним из самых используемых инструментов для диагностики работы SQL Server, несмотря на то, что считается устаревшим. Может быть удален в будущих версиях СУБД, является графической надстройкой для SQL Trace . Как и SQL Profiler, SQL Trace считается устаревшим инструментом и может быть удален в будущем. SQL Trace находится в режиме поддержки и не дополняется новым функционалом.
Кол-во счетчиков (событий) = 180.
Extended Events
В SSMS в разделе «Управление -> Расширенные события -> Сеансы» Вы можете найти список всех сеансов расширенных событий.
#sql-server-2019
Вопрос:
Вчера я просматривал некоторые сценарии и заметки из класса и заметил, что запросы были намного медленнее. Запросы, которые раньше занимали 0 мс процессорного времени и 10 мс истекшего времени, занимали более 10 секунд. Диспетчер задач показал, что SQL Server Windows NT — 64 разрядной версии работает и использует 5 ГБ из 8 ГБ моей памяти. Я перестал запускать запросы, но это продолжалось в течение нескольких часов, пока не сократилось до 2 ГБ, и продолжалось до тех пор, пока я не выключил его около 10 вечера. Этим утром SQL Server Windows NT — 64 разрядной версии использовал несколько сотен МБ памяти, пока я не запустил хранимую процедуру. Как вы можете видеть на картинке, он увеличил объем памяти более чем на 4 ГБ и остался на нем. Я точно знаю, что такое часто случается, но никогда не думал, что это может быть вызвано чем-то, что я запустил. Если я завершу задание, я потеряю соединение. Если я перезагрузлю компьютер, он тоже перезагрузится, я проверял пару раз. Что происходит на самом деле и что мне следует делать? Снимок экрана диспетчера задач
Комментарии:
1. SQL Server использует всю доступную память, которую он может получить по дизайну . Вы можете изменить это в разделе SSMS > Свойства сервера >> Память.
2. Какова реальная проблема, которую вы пытаетесь решить? Похоже, это рабочий стол/рабочая станция, а не выделенный SQL-сервер? Рекомендуется всегда устанавливать максимальный объем памяти для SQL Server — эмпирическое правило на 8-10% меньше общего объема оперативной памяти на выделенном сервере и больше на рабочем столе или сервере общих ресурсов.
3. На первый взгляд, плохой план запроса приводит к тому, что таблица заполняет память буферного пула, которая по умолчанию составляет столько памяти, сколько она может получить.
4. Это делало все остальные запросы такими медленными. А еще я хотел понять, что на самом деле происходит и почему. Похоже, вы все предлагаете мне изменить максимальную память сервера, которую я никогда не менял, так что по умолчанию она намного больше, чем у меня есть. Поэтому я изменил его на 3 ГБ, запустил ту же хранимую процедуру и выполнил. SQL Server использовал около 700 МБ памяти и увеличил ее до 2,85 ГБ. Так что это хорошо. Теперь он остается на этом уровне в течение длительного времени. Как мне снизить его до нормального уровня? Не все, но некоторые другие запросы выполняются дольше.
5. @gsong Установите разумный максимум использования памяти в свойствах сервера, а затем перезапустите службу SQL Server. Существуют способы вернуть память SQL Server обратно в ОС без перезагрузки, но они ненадежны и предназначены для производственного использования, в то время как перезапуск службы на вашей рабочей станции является наиболее простым решением.