Я Java-разработчик. Поскольку я новичок в SQL-сервере, у меня ограниченные знания о нем. Я пытаюсь выяснить основную причину, почему наш SQL-сервер внезапно завис, и после перезапуска он стал нормальным.
Симптомы:
~ Потоки Java начали зависать, выяснилось, что соединения Java JDBC начали зависать без какого-либо ответа от БД, что приводило к зависанию потоков
~ Все соединения (около 100 ) были активны до тех пор, пока SQL сервер был перезапущен. Наконец, соединения с БД были закрыты БД после перезапуска. Получено соединение Java JDBC «Соединение сброшено одноранговым узлом» ПОСЛЕ перезапуска БД.
Продолжительность воздействия: 5 часов (до перезапуска)
Технический стек :
Загрузка Java Spring на Weblogic. ORM: спящий режим
SQL-сервер 2016
Ограничение:
Команда перезапустила SQL-сервер прежде, чем мы смогли это сделать экспортировать любую статистику из БД и даже сомневаться, что мы смогли выполнить статистические SQL-запросы до перезапуска SQL-сервера, поскольку БД уже зависла.
Выводы/действия:После перезапуска БД я попытался извлечь статистику из dm_exec_query_stats, однако она отслеживает запросы только на основе времени последнего выполнения. За пораженный период результата не было. Тот же сценарий и для dm_os_waiting_tasks.
Команда сервера сообщает, что загрузка ЦП и памяти была нормальной (мне еще предстоит получить полный отчет).
Можно посмотреть никаких ошибок/проблем в журнале событий Windows и журналах кластера нет. Они выглядят нормально
Некоторые источники Google сообщают, что некоторые запросы могут полностью загружать процессор, что может привести к зависанию SQL-сервера, другие говорят, что некоторые запросы могли блокироваться.
Это может показаться простым или обычным для экспертов по SQL-серверу/администраторов баз данных, однако я погуглил, чтобы найти соответствующую проблему и решение, однако, похоже, они не помогли
Было бы здорово просто помочь мне сослаться на какой-либо документ или совет эксперта. Дайте мне знать, если потребуется дополнительная информация. Заранее спасибо!
Пробывал эти запросы, но безрезультатно
SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query], dbid, deqs.*
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
where deqs.last_execution_time between '2020-09-29 13:16:52.710' and '2020-09-29 23:16:52.710'
ORDER BY deqs.last_execution_time DESC ;
SELECT
qs.sql_handle,
qs.execution_count,
qs.total_worker_time AS Total_CPU,
total_CPU_inSeconds = --Converted from microseconds
qs.total_worker_time/1000000,
average_CPU_inSeconds = --Converted from microseconds
(qs.total_worker_time/1000000) / qs.execution_count,
qs.total_elapsed_time,
total_elapsed_time_inSeconds = --Converted from microseconds
qs.total_elapsed_time/1000000,
st.text,qs.query_hash,
qp.query_plan
FROM
sys.dm_exec_query_stats AS qs
CROSS APPLY
sys.dm_exec_sql_text(qs.sql_handle) AS st
CROSS APPLY
sys.dm_exec_query_plan (qs.plan_handle) AS qp
where qs.last_execution_time between '2020-09-29 13:16:52.710' and '2020-09-29 23:16:52.710'
ORDER BY
qs.total_worker_time DESC;
--View waiting tasks per connection
SELECT st.text AS [SQL Text], c.connection_id, w.session_id,
w.wait_duration_ms, w.wait_type, w.resource_address,
w.blocking_session_id, w.resource_description, c.client_net_address, c.connect_time
FROM sys.dm_os_waiting_tasks AS w
INNER JOIN sys.dm_exec_connections AS c ON w.session_id = c.session_id
CROSS APPLY (SELECT * FROM sys.dm_exec_sql_text(c.most_recent_sql_handle)) AS st
WHERE w.session_id > 50 AND w.wait_duration_ms > 0
ORDER BY c.connection_id, w.session_id
GO
-- View waiting tasks for all user processes with additional information
SELECT 'Waiting_tasks' AS [Information], owt.session_id,
owt.wait_duration_ms, owt.wait_type, owt.blocking_session_id,
owt.resource_description, es.program_name, est.text,
est.dbid, eqp.query_plan, er.database_id, es.cpu_time,
es.memory_usage*8 AS memory_usage_KB
FROM sys.dm_os_waiting_tasks owt
INNER JOIN sys.dm_exec_sessions es ON owt.session_id = es.session_id
INNER JOIN sys.dm_exec_requests er ON es.session_id = er.session_id
OUTER APPLY sys.dm_exec_sql_text (er.sql_handle) est
OUTER APPLY sys.dm_exec_query_plan (er.plan_handle) eqp
WHERE es.is_user_process = 1
ORDER BY owt.session_id;
GO;
Подробнее здесь: https://stackoverflow.com/questions/642 ... sponse-sql
SQL-сервер внезапно завис - все соединения с БД активны, но нет ответа - SQL-сервер 2016 ⇐ JAVA
Программисты JAVA общаются здесь
1728558298
Anonymous
Я Java-разработчик. Поскольку я новичок в SQL-сервере, у меня ограниченные знания о нем. Я пытаюсь выяснить основную причину, почему наш SQL-сервер внезапно завис, и после перезапуска он стал нормальным.
[b]Симптомы:[/b]
~ Потоки Java начали зависать, выяснилось, что соединения Java JDBC начали зависать без какого-либо ответа от БД, что приводило к зависанию потоков
~ Все соединения (около 100 ) были активны до тех пор, пока SQL сервер был перезапущен. Наконец, соединения с БД были закрыты БД после перезапуска. Получено соединение Java JDBC «Соединение сброшено одноранговым узлом» ПОСЛЕ перезапуска БД.
Продолжительность воздействия: 5 часов (до перезапуска)
[b]Технический стек :[/b]
Загрузка Java Spring на Weblogic. ORM: спящий режим
SQL-сервер 2016
[b]Ограничение[/b]:
Команда перезапустила SQL-сервер прежде, чем мы смогли это сделать экспортировать любую статистику из БД и даже сомневаться, что мы смогли выполнить статистические SQL-запросы до перезапуска SQL-сервера, поскольку БД уже зависла.
[b]Выводы/действия:[/b]После перезапуска БД я попытался извлечь статистику из [b]dm_exec_query_stats[/b], однако она отслеживает запросы только на основе времени последнего выполнения. За пораженный период результата не было. Тот же сценарий и для [b]dm_os_waiting_tasks[/b].
Команда сервера сообщает, что загрузка ЦП и памяти была нормальной (мне еще предстоит получить полный отчет).
Можно посмотреть никаких ошибок/проблем в журнале событий Windows и журналах кластера нет. Они выглядят нормально
Некоторые источники Google сообщают, что некоторые запросы могут полностью загружать процессор, что может привести к зависанию SQL-сервера, другие говорят, что некоторые запросы могли блокироваться.
Это может показаться простым или обычным для экспертов по SQL-серверу/администраторов баз данных, однако я погуглил, чтобы найти соответствующую проблему и решение, однако, похоже, они не помогли
Было бы здорово просто помочь мне сослаться на какой-либо документ или совет эксперта. Дайте мне знать, если потребуется дополнительная информация. Заранее спасибо!
Пробывал эти запросы, но безрезультатно
SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query], dbid, deqs.*
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
where deqs.last_execution_time between '2020-09-29 13:16:52.710' and '2020-09-29 23:16:52.710'
ORDER BY deqs.last_execution_time DESC ;
SELECT
qs.sql_handle,
qs.execution_count,
qs.total_worker_time AS Total_CPU,
total_CPU_inSeconds = --Converted from microseconds
qs.total_worker_time/1000000,
average_CPU_inSeconds = --Converted from microseconds
(qs.total_worker_time/1000000) / qs.execution_count,
qs.total_elapsed_time,
total_elapsed_time_inSeconds = --Converted from microseconds
qs.total_elapsed_time/1000000,
st.text,qs.query_hash,
qp.query_plan
FROM
sys.dm_exec_query_stats AS qs
CROSS APPLY
sys.dm_exec_sql_text(qs.sql_handle) AS st
CROSS APPLY
sys.dm_exec_query_plan (qs.plan_handle) AS qp
where qs.last_execution_time between '2020-09-29 13:16:52.710' and '2020-09-29 23:16:52.710'
ORDER BY
qs.total_worker_time DESC;
--View waiting tasks per connection
SELECT st.text AS [SQL Text], c.connection_id, w.session_id,
w.wait_duration_ms, w.wait_type, w.resource_address,
w.blocking_session_id, w.resource_description, c.client_net_address, c.connect_time
FROM sys.dm_os_waiting_tasks AS w
INNER JOIN sys.dm_exec_connections AS c ON w.session_id = c.session_id
CROSS APPLY (SELECT * FROM sys.dm_exec_sql_text(c.most_recent_sql_handle)) AS st
WHERE w.session_id > 50 AND w.wait_duration_ms > 0
ORDER BY c.connection_id, w.session_id
GO
-- View waiting tasks for all user processes with additional information
SELECT 'Waiting_tasks' AS [Information], owt.session_id,
owt.wait_duration_ms, owt.wait_type, owt.blocking_session_id,
owt.resource_description, es.program_name, est.text,
est.dbid, eqp.query_plan, er.database_id, es.cpu_time,
es.memory_usage*8 AS memory_usage_KB
FROM sys.dm_os_waiting_tasks owt
INNER JOIN sys.dm_exec_sessions es ON owt.session_id = es.session_id
INNER JOIN sys.dm_exec_requests er ON es.session_id = er.session_id
OUTER APPLY sys.dm_exec_sql_text (er.sql_handle) est
OUTER APPLY sys.dm_exec_query_plan (er.plan_handle) eqp
WHERE es.is_user_process = 1
ORDER BY owt.session_id;
GO;
Подробнее здесь: [url]https://stackoverflow.com/questions/64204944/sql-server-hanged-suddenly-all-db-connections-are-active-but-no-response-sql[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия