powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Медленно работает простейший запрос
17 сообщений из 17, страница 1 из 1
Медленно работает простейший запрос
    #40044050
LykovAleksey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С какого-то момента простейший запрос стал выполняться очень долго, до 30 секунд.
Запрос по первичному ключу
Код: sql
1.
select * from cg_servers (nolock) where SERVER_ID = 3514


Количество записей в таблице 6655
Перестроение индексов не отработало, и выдало ошибку... что-то связанную с SqlManagerUI но код не остался.

Запросы не связанные с этой таблицей - работали нормально.

После непонимания что делать приняли решение перезагрузить SQL Server, после чего стало всё нормально работать.
Каких-то блокировок, проблем с место, аномалий на графиках мониторинга не видно.

В чём может быть проблема, куда копать? Как мониторить подобные вещи?
...
Рейтинг: 0 / 0
Медленно работает простейший запрос
    #40044053
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LykovAleksey,

версия сервера какая?


в момент выполнения запроса смотреть какие ожидания есть у сессии
Код: sql
1.
select * from sys.dm_os_waiting_tasks where [session_id] = <spid>


где <spid> - ид сессии выполняющей запрос

объем строк вроде не большой поэтому даже изменение seek на scan в теории не должно оказывать существенного падения.
случаем таблица не содержит ли LOB столбцов?
...
Рейтинг: 0 / 0
Медленно работает простейший запрос
    #40044057
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LykovAleksey
С какого-то момента простейший запрос стал выполняться очень долго, до 30 секунд.
Запрос по первичному ключу
Код: sql
1.
select * from cg_servers (nolock) where SERVER_ID = 3514


Количество записей в таблице 6655
Перестроение индексов не отработало, и выдало ошибку... что-то связанную с SqlManagerUI но код не остался.

Запросы не связанные с этой таблицей - работали нормально.

После непонимания что делать приняли решение перезагрузить SQL Server, после чего стало всё нормально работать.
Каких-то блокировок, проблем с место, аномалий на графиках мониторинга не видно.

В чём может быть проблема, куда копать? Как мониторить подобные вещи?


при таком количестве записей нефиг там мониторить

сделайте
Update statistics на все таблицы или на эту с офигенным количеством записей

https://docs.microsoft.com/en-us/sql/t-sql/statements/update-statistics-transact-sql?view=sql-server-ver15
...
Рейтинг: 0 / 0
Медленно работает простейший запрос
    #40044064
LykovAleksey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
LykovAleksey,
версия сервера какая?

Код: sql
1.
2.
Microsoft SQL Server 2014 (SP2-CU10-GDR) (KB4052725) - 12.0.5571.0 (X64)   Jan 10 2018 15:52:08   
Copyright (c) Microsoft Corporation  Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor) 




felix_ff

случаем таблица не содержит ли LOB столбцов?

нет, только bigint, nvarchar (255), datetime
...
Рейтинг: 0 / 0
Медленно работает простейший запрос
    #40044065
LykovAleksey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,
В следующий раз попробуем собрать статистику, а почему перезапуск помог? Какая-то статистика в памяти была и она сбросилась?
...
Рейтинг: 0 / 0
Медленно работает простейший запрос
    #40044078
LykovAleksey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин

сделайте
Update statistics на все таблицы или на эту с офигенным количеством записей

https://docs.microsoft.com/en-us/sql/t-sql/statements/update-statistics-transact-sql?view=sql-server-ver15


Во время проблемы выполняли запро обновления статистики по таблице
Код: sql
1.
update statistics cg_servers


но всё-равно долго выполнялся, может ещё какие-то мысли будут?
...
Рейтинг: 0 / 0
Медленно работает простейший запрос
    #40044080
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LykovAleksey
но всё-равно долго выполнялся, может ещё какие-то мысли будут?
Смотреть на план. Смотреть на ожидания сессии во время выполнения.
...
Рейтинг: 0 / 0
Медленно работает простейший запрос
    #40044081
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LykovAleksey
Ролг Хупин

сделайте
Update statistics на все таблицы или на эту с офигенным количеством записей

https://docs.microsoft.com/en-us/sql/t-sql/statements/update-statistics-transact-sql?view=sql-server-ver15


Во время проблемы выполняли запро обновления статистики по таблице
Код: sql
1.
update statistics cg_servers



но всё-равно долго выполнялся, может ещё какие-то мысли будут?


Вам же уже говорили, собрать статистику по ожиданиям.
select * from sys.dm_os_waiting_tasks where [session_id] = <spid>

Может у вас очередь на дисках по 10 секунд, или использование cpu 100% или на выделении памяти висит.
...
Рейтинг: 0 / 0
Медленно работает простейший запрос
    #40044105
LykovAleksey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex,

Это да, ок, просто это надо собирать во время проблема, а проблема не воспроизводится и повторить не можем.
Если только это - посмотрим в следующий раз.
...
Рейтинг: 0 / 0
Медленно работает простейший запрос
    #40044106
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LykovAleksey
msLex,

Это да, ок, просто это надо собирать во время проблема, а проблема не воспроизводится и повторить не можем.
Если только это - посмотрим в следующий раз.


Настроите extended events на актуальный план этого запроса с фильтром на время выполнения.
Внутри XML с планом будет секция со всеми ожиданиями (кажется, <waits />)
...
Рейтинг: 0 / 0
Медленно работает простейший запрос
    #40044115
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LykovAleksey,

Код: sql
1.
select * from cg_servers (nolock) where SERVER_ID = 3514


6655 даже при самом кошмарном плане будет работать очень быстро.

То ли индексы сломаны, то ли таблица повреждена. Очевидная причина - открытые для изменения транзакции, думаю, проверялись.
...
Рейтинг: 0 / 0
Медленно работает простейший запрос
    #40044119
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего это не таблица )
...
Рейтинг: 0 / 0
Медленно работает простейший запрос
    #40044121
LykovAleksey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
LykovAleksey,

Код: sql
1.
select * from cg_servers (nolock) where SERVER_ID = 3514


6655 даже при самом кошмарном плане будет работать очень быстро.

То ли индексы сломаны, то ли таблица повреждена. Очевидная причина - открытые для изменения транзакции, думаю, проверялись.

Транзакции проверялись - не было, блокировок тоже не было.
А что значит индексы сломаны или таблица повреждена? И почему она после рестарта MSSQL починилось - непонятно.
...
Рейтинг: 0 / 0
Медленно работает простейший запрос
    #40044123
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на таблице нет массовых изменений?
...
Рейтинг: 0 / 0
Медленно работает простейший запрос
    #40044124
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LykovAleksey,

У вас сумборно описано изначальная инфа.
но вот из этой фразы: "Перестроение индексов не отработало, и выдало ошибку... что-то связанную с SqlManagerUI но код не остался."

Я так полагаю что вы попытались ребилдить индексы на таблице и операция закончилась ошибкой.
если это так то у вас инструкция (через GUI) могла вылететь по таймауту из-за того что кто либо имел лок на объект по Sch-M, в таком случае это объясняет ситуацию почему может долго работать nolock - в данном режиме все равно завешивается sch-s на таблицу которая по сути конфликтует с sch-M.
Но это не коррелирует с Вашими показаниями что никаких блокировок не было. тогда собственно вопрос: а как смотрели эти самые отсутствия блокировок?

ну еще покажите вывод:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select 
      [index_id], 
      [partition_number], 
      [index_depth], 
      [index_level], 
      [avg_fragmentation_in_percent], 
      [fragment_count], 
      [avg_fragment_size_in_pages], 
      [page_count], 
      [record_count], 
      [ghost_record_count],
      [forwarded_record_count] 
from sys.dm_db_index_physical_stats(db_id(), object_id('cg_servers'), null, null, 'detailed')
...
Рейтинг: 0 / 0
Медленно работает простейший запрос
    #40044291
LykovAleksey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
LykovAleksey,
ну еще покажите вывод:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select 
      [index_id], 
      [partition_number], 
      [index_depth], 
      [index_level], 
      [avg_fragmentation_in_percent], 
      [fragment_count], 
      [avg_fragment_size_in_pages], 
      [page_count], 
      [record_count], 
      [ghost_record_count],
      [forwarded_record_count] 
from sys.dm_db_index_physical_stats(db_id(), object_id('cg_servers'), null, null, 'detailed')



index_idpartition_number index_depth index_level avg_fragmentation_in_percent fragment_count avg_fragment_size_in_pages page_count record_count ghost_record_count forwarded_record_count112080.45454545454551841.1956521739130422066590NULL112101112200NULL212097.61904761904764214266590NULL21210111420NULL312083.91304347826091951.1794871794871823066590NULL312101112300NULL412082.5341.176470588235294066590NULL41210111400NULL1841206071.428571428571431030820NULL1841210111100NULL18512081.25151.066666666666671639330NULL1851210111160NULL

Как выяснилось, один из разработчиков экспериментировал c включением сеансами, как показано на скриншоте ниже
скриншот - вот так, похоже это стало отправной точкой проблемы, через некоторое время сеанс был отключен, но сразу проблема не ушла.
но так или иначе методов диагностики проблемы у нас было мало и хочется знать больше.
...
Рейтинг: 0 / 0
Медленно работает простейший запрос
    #40044399
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LykovAleksey,

ну не, у вас таблица кластерный индекс.
в теории еще предполагал что эта могла быть куча подверженная частым обновлениям из-за чего на ней могло бы быть много FW-ссылок, а так эта версия тоже отпадает.
у вас конечно есть там фрагментация на каждом из индексов но на таком смешном кол-ве страниц, ей можно пренебречь.


остается три версии:
1) какая то сессия держала sch-m на таблицу, и ваш запрос был залочен данной сессией но вы этот момент не увидели
2) таблица физически повреждена, но она по сути должна была бы остаться в таком же состоянии и после рестарта
3) сервер был под какой то дикой нагрузкой, но тогда бы тормозил не только этот запрос.

кстати посмотрите логи сервера в интервале времени +/- 10 минут от начала работы вашего запроса
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Медленно работает простейший запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]