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

Откуда:
Сообщений: 339
Объясните такую вещь, слабая клиентская машина может по сути быть причиной длительной блокировки в MS SQL?
30 янв 12, 14:46    [11996718]     Ответить | Цитировать Сообщить модератору
 Re: Про влияние на блокировки!  [new]
Glory
Member

Откуда:
Сообщений: 104751
Любая машина может быть причиной блокировки
Например, запросил 100 000 записей, а выбрал первые 100 - вот тебе и блокировка
30 янв 12, 14:54    [11996794]     Ответить | Цитировать Сообщить модератору
 Re: Про влияние на блокировки!  [new]
VitLF
Member

Откуда:
Сообщений: 339
А может ли значительная фрагментация индексов, аж ~99% повлиять да длительность запроса?
30 янв 12, 15:30    [11997110]     Ответить | Цитировать Сообщить модератору
 Re: Про влияние на блокировки!  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Канэшна!
30 янв 12, 15:58    [11997396]     Ответить | Цитировать Сообщить модератору
 Re: Про влияние на блокировки!  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1842
Блог
VitLF
А может ли значительная фрагментация индексов, аж ~99% повлиять да длительность запроса?

Конечно, а еще и устаревшая статистика.
30 янв 12, 15:59    [11997401]     Ответить | Цитировать Сообщить модератору
 Re: Про влияние на блокировки!  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
VitLF
А может ли значительная фрагментация индексов, аж ~99% повлиять да длительность запроса?


смотря что это за фрагментация... не факт что это плохо...

https://www.sql.ru/articles/mssql/03013101Indexes.shtml#17
30 янв 12, 16:02    [11997425]     Ответить | Цитировать Сообщить модератору
 Re: Про влияние на блокировки!  [new]
VitLF
Member

Откуда:
Сообщений: 339
gds
VitLF
А может ли значительная фрагментация индексов, аж ~99% повлиять да длительность запроса?

Конечно, а еще и устаревшая статистика.


Точно!? А-то у меня вроде из-за этого начинаются блокировки по таблице, у которой индексы излишне фрагментированы. Т.е. они у меня быстро фрагментируются с частотой в среднем в час. Запрос, который выполнялся 6-8сек. начинает не с того не с сего выполняться 20-60 сек. И вешает другого пользователя, который запрашивает теже данные. А данные запрашиваюь большие.
30 янв 12, 16:05    [11997465]     Ответить | Цитировать Сообщить модератору
 Re: Про влияние на блокировки!  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
VitLF
gds
пропущено...

Конечно, а еще и устаревшая статистика.


Точно!? А-то у меня вроде из-за этого начинаются блокировки по таблице, у которой индексы излишне фрагментированы. Т.е. они у меня быстро фрагментируются с частотой в среднем в час. Запрос, который выполнялся 6-8сек. начинает не с того не с сего выполняться 20-60 сек. И вешает другого пользователя, который запрашивает теже данные. А данные запрашиваюь большие.


Т.е. у Вас дефрагментация индексов идет каждый час ?
30 янв 12, 16:09    [11997510]     Ответить | Цитировать Сообщить модератору
 Re: Про влияние на блокировки!  [new]
VitLF
Member

Откуда:
Сообщений: 339
У меня табличка временная (не в tempdb), в которую заносятся данные запрошенные пользователем, а потом при выходе подчищаются. И вот, если пользователь запросил очень много данных с которыми будет работать, они заполняют вышеуказанную таблицу (При выходе из клиента удаляются.) и происходят время от времени длительные блокировки, вешается рядом сосед.
30 янв 12, 16:10    [11997523]     Ответить | Цитировать Сообщить модератору
 Re: Про влияние на блокировки!  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
VitLF
gds
пропущено...

Конечно, а еще и устаревшая статистика.


Точно!? А-то у меня вроде из-за этого начинаются блокировки по таблице, у которой индексы излишне фрагментированы. Т.е. они у меня быстро фрагментируются с частотой в среднем в час. Запрос, который выполнялся 6-8сек. начинает не с того не с сего выполняться 20-60 сек. И вешает другого пользователя, который запрашивает теже данные. А данные запрашиваюь большие.


Лучше смотрите что там у Вас с планами выполнения запросов происходит... изменение картины блокировок в данном случае - это следствие, а не причина... Если грубо: сначала структуры+статистики потом строится план и определяется набор ресурсов для блокировки. Если у Вас слетают статистики - то скорее всего меняется план, например вместо IndexSeek идет IndexScan. Если все так плохо с таблицей - то вожможно придется прибить план хинтами или гвоздями :)
30 янв 12, 16:14    [11997552]     Ответить | Цитировать Сообщить модератору
 Re: Про влияние на блокировки!  [new]
VitLF
Member

Откуда:
Сообщений: 339
Ozerov,

Нет. У меня дефрагментация ночью в зависимости от уровня фрагментации. Только утром (когда пришли пользователи) опять по "проблемной" табличке фрагментация нарушена требует в основном REBUILD.
30 янв 12, 16:14    [11997553]     Ответить | Цитировать Сообщить модератору
 Re: Про влияние на блокировки!  [new]
VitLF
Member

Откуда:
Сообщений: 339
SanyL
VitLF
пропущено...


Точно!? А-то у меня вроде из-за этого начинаются блокировки по таблице, у которой индексы излишне фрагментированы. Т.е. они у меня быстро фрагментируются с частотой в среднем в час. Запрос, который выполнялся 6-8сек. начинает не с того не с сего выполняться 20-60 сек. И вешает другого пользователя, который запрашивает теже данные. А данные запрашиваюь большие.


Лучше смотрите что там у Вас с планами выполнения запросов происходит... изменение картины блокировок в данном случае - это следствие, а не причина... Если грубо: сначала структуры+статистики потом строится план и определяется набор ресурсов для блокировки. Если у Вас слетают статистики - то скорее всего меняется план, например вместо IndexSeek идет IndexScan. Если все так плохо с таблицей - то вожможно придется прибить план хинтами или гвоздями :)



План запроса меняется раза три (это точно), если не минимум.
30 янв 12, 16:16    [11997583]     Ответить | Цитировать Сообщить модератору
 Re: Про влияние на блокировки!  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
VitLF
У меня табличка временная (не в tempdb), в которую заносятся данные запрошенные пользователем, а потом при выходе подчищаются. И вот, если пользователь запросил очень много данных с которыми будет работать, они заполняют вышеуказанную таблицу (При выходе из клиента удаляются.) и происходят время от времени длительные блокировки, вешается рядом сосед.


Вообще логично... если надо удалить полтаблицы - то блокировать всю таблицу... как ни как ресурсы у нас ограничены - а блокировка требует физических ресурсов сервера.
30 янв 12, 16:16    [11997585]     Ответить | Цитировать Сообщить модератору
 Re: Про влияние на блокировки!  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
VitLF
SanyL
пропущено...


Лучше смотрите что там у Вас с планами выполнения запросов происходит... изменение картины блокировок в данном случае - это следствие, а не причина... Если грубо: сначала структуры+статистики потом строится план и определяется набор ресурсов для блокировки. Если у Вас слетают статистики - то скорее всего меняется план, например вместо IndexSeek идет IndexScan. Если все так плохо с таблицей - то вожможно придется прибить план хинтами или гвоздями :)



План запроса меняется раза три (это точно), если не минимум.


в Вашем случае, полагаю, можно читать с NOLOCK... конечно учитывая, что удаляются записи тех кто УЖЕ отработал. Запросы к табличке (SELECT) блокироваться не должны, а вот вставка конечно подождет...

другой вариант - удалять не скопом, а небольшими порциями

третий вариант - версионность. Хотя версию MS SQL Вы не назвали - возможно он и не вариант сразу.
30 янв 12, 16:19    [11997614]     Ответить | Цитировать Сообщить модератору
 Re: Про влияние на блокировки!  [new]
VitLF
Member

Откуда:
Сообщений: 339
SanyL
VitLF
пропущено...



План запроса меняется раза три (это точно), если не минимум.


в Вашем случае, полагаю, можно читать с NOLOCK... конечно учитывая, что удаляются записи тех кто УЖЕ отработал. Запросы к табличке (SELECT) блокироваться не должны, а вот вставка конечно подождет...

другой вариант - удалять не скопом, а небольшими порциями

третий вариант - версионность. Хотя версию MS SQL Вы не назвали - возможно он и не вариант сразу.


Версия сервера Microsoft SQL Server 2008 R2 (SP1) - 10.50.2789.0 (X64)
30 янв 12, 16:22    [11997639]     Ответить | Цитировать Сообщить модератору
 Re: Про влияние на блокировки!  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
VitLF
План запроса меняется раза три (это точно), если не минимум.


Рекомендую анализ с них и начать... а насколько велика таблица? в среднем (кол-во записей и объем в Мб)?
30 янв 12, 16:22    [11997644]     Ответить | Цитировать Сообщить модератору
 Re: Про влияние на блокировки!  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
VitLF
Версия сервера Microsoft SQL Server 2008 R2 (SP1) - 10.50.2789.0 (X64)


ну тогда вариант с версионность актуален
30 янв 12, 16:23    [11997650]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить