Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
Алексей
Guest
Скажите пожалуйста почему она возникает при выполненении инструкции
update Случаи
Set КатегорияСлучая=m.Кат
from Случаи s,mytemp m
where s.КодСлучая=m.КодСлучая
Сначала как запустил через QA все было нормально, но через 5-10 минут
началось
Wait time - 10
Wait type - PAGEIOLATCH_SH
Wait resource - 7:1:447480
Не могу понять с базой никто не работает, а такая ерунда творится
13 фев 02, 07:37    [21621]     Ответить | Цитировать Сообщить модератору
 RE:Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
Алексей
Guest
Забыл задать один вопрос.
Стоит ли мне дожидаться окончания выполнения?
Ведь раньше у меня подобное бывало (та же блокировка и выполнялось это же за 1.5-2 часа) запрос был по сложнее (сейчас я его в два этапа делал сперва вычислил таблицу mytemp, а теперь делаю update), правда запией сечас стало побольше не 6-7 млн, а 7-8 млн. Вчера же тот же запрос запускаю и за 4 часа никаких результатов, мне пришлось грохнуть процесс.
13 фев 02, 08:06    [21622]     Ответить | Цитировать Сообщить модератору
 RE:Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
Дед Маздай
Guest
ODBC Tracing часом не включен?
13 фев 02, 09:13    [21623]     Ответить | Цитировать Сообщить модератору
 RE:Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
Алексей
Guest
Если я правильно понял про ODBC Tracing (что включается оно на вкладке Data Sources(ODBC)) то там никто ничего не включал, не на машине сервака не на машине клиента.
13 фев 02, 12:03    [21624]     Ответить | Цитировать Сообщить модератору
 RE:Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
Glory
Member

Откуда:
Сообщений: 104760
IMHO Latching это не обязательно "чужая" блокировка.

Не возмусь говорить, что за проблема конкретно у вас.
Попробуйте задать поиск в BOL и в KnowledgeBase на microsoft.com по слову LATCH и спроецировать полученные данные на вашу процедуру. Может быть это поможет как-то идентифицировать проблему.
13 фев 02, 12:29    [21625]     Ответить | Цитировать Сообщить модератору
 RE:Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
Дед Маздай
Guest
Сколько камней в тачке? Проверьте max degree of parallelism.
13 фев 02, 14:28    [21626]     Ответить | Цитировать Сообщить модератору
 RE:Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
Алексей
Guest
Настройки сервака я не менял на вкладке Processor, все стоит по умолчанию.
Камней в тачке я должен сказать немного а если быть точным то один и если на то пошло это вообще не сервак а смех для таких объемов данных. У меня дома машина лучше этого сервака. Начнем с того что памяти 192 а дома 384, проц п2-400 дома дурон 800, да к тому же размер базы 7 Гиг лежит на одном винте UDMA100, причем мама не поддерживает UDMA100.
Еще у меня руки не дойдут до установки сервис пака, я на этот 2000 Developer Edition ни первого не поставил ни второго. Есть 2-ой. Но очень сомневаюсь что мне это поможет.

Да и еще я не очень помню про то что было написано про Developеr Edition помню что все возможности Enterprise, но только для разработки. Прошу сразу прощения если я спрашиваю глупость но все же может в Developer что то есть что специально на больших транзакциях тормозит его работу так как он не предназначен для разработки, а не для работы.
Ну ведь сделали урезанный 7-ой - MSDE котором размер базы не превышает 2 Гиг.
13 фев 02, 19:29    [21627]     Ответить | Цитировать Сообщить модератору
 RE:Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
Дед Маздай
Guest
Нет, Dev.Ed. не порезан. Поставьте SP2.
14 фев 02, 08:03    [21628]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
Dmitry
Member

Откуда: Saint-Petersburg
Сообщений: 350
У меня тоже появился такой глюк и чего с ним делать не знаю. На некоторых запросах где происходит распараллеливание все подвисает в current activity вижу три процесса (с одним processID) причем у 2 из них в wait type значится PAGEIOLATCH_SH, а у одного CXPacket.
У MS найдено на этот счет вот что http://support.microsoft.com/default.aspx?scid=kb;en-us;Q293232
Но хоть там гооврится что вылечится "последним сервиспаком", но у меня стоит SP3, а в описании SP3a Сказано что ставить его если стоит SP3 нет необходимости и в перечне спецефичных для него (SP3a) фиксов ничего подобного нет :-(
31 июл 03, 12:40    [283220]     Ответить | Цитировать Сообщить модератору
 Re: Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
Jimmy Boy
Member

Откуда: Дніпро
Сообщений: 8370
Сталкивался. Пришел к след. выводам (может, ошибочным, но практика пока не опровергла)
PAGEIOLATCH_SH, PAGEIOLATCH_EX, CXPACKET - не блокировки таблиц, а приостановление процессов.
CXPACKET возникает, когда один камень ожидает другого при распараллеливании. Должно лечиться установкой max degree of parallelism (сам не проверял).
PAGEIOLATCH_SH, PAGEIOLATCH_EX возникает, когда процесс ожидает данные от системы ввода-вывода. В моем случае, явно медленный винт и малый объем памяти приводили к большому кол-ву латчей при работе с достаточно большими таблицами (~1,5 млн. записей). Пока не выбил у руководства денег на апгрейд, оттюнил индексы. Латчи не пропали, но их кол.-во и длительность заметно сократились.
Латчи - нечто вроде queue length винта - случается регулярно, но вполне приемлемо в небольших кол.-вах.
31 июл 03, 15:43    [283758]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
Tatiana01
Guest
Если кто-то еще интересуется этим вопросом - в моем случае ларчик открывался достаточно просто. Я потратила 2 дня на расследование, перечитала все форумы и Микрософт рекомендации и поняла что все это для меня не играет - SP3 установлен, сервер огромный с 4-мя процессорами, база вполне приличная в плане структуры (хотя и довольно объемистая - до 18 млн рекордов), но - как оказалось - не все необходимые индексы были созданы и это вызывало зависание исполнения и - следовательно - требование все больших и больших ресурсов. Кстати, все что рекомендовалось лечило только последствие (латч), никто не упоминал нигде ПОЧЕМУ он возникает. Так вот - проверьте Estimated Execution Plan в Query Analyser - все красное или Table Scan - на заметку и создать индексы, которые запрашивает "Missing Statistics..." или Table Scan.
10 янв 05, 09:02    [1232535]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
dimansound
Member

Откуда:
Сообщений: 1
у меня latch пропадает после изменения параметра max memory size сервера в большую или меньшую сторону, но потом все равно через некоторое время появляется, таблица ~1,5 млн записей, Microsoft SQL Server Express Edition 10.50.2500.0
29 дек 12, 12:10    [13704905]     Ответить | Цитировать Сообщить модератору
 Re: Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
без двух недель - 8 лет между сообщениями
30 дек 12, 20:14    [13709549]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
Вячеслав Гол
Guest
А проблема остаётся актуальной уже на 2014 SQL
2 дек 14, 14:03    [16937325]     Ответить | Цитировать Сообщить модератору
 Re: Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
я же
Guest
Вячеслав Гол,

Поменяли в опциях тип базы на 2012 - стало быстро работать. Вот фигня такая
2 дек 14, 15:43    [16938081]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
Дядя Петя Вася
Member

Откуда:
Сообщений: 1368
добавлю немного, есть 2 базы на одном сервере, причем сервер вроде весьма мощный в плане проца (16 ядер), по винту не знаю что пока, на них крутится одинаковые сайты, так вот один сайт более менее шевелится, а второй валится из-за таймаута с pageiolatch_sh. Причем запрос на первой базе (одинаковый запрос на одинаковых данных) выполняется первый раз 1мин 10 сек затем за 15 сек (в студии) а на второй базе в студии первый раз 2 мин 30 сек. а потом опять 15 сек. Такое ощущение что в студии запрос кэшируется и начинает живо летать а вот когда с сайта прилетает то не кэшируется. На другом серваке при такой же базе/данных (возможно настроены по другому) данный запрос выполняется секунд 5 и таких тормозов вроде нет.
30 авг 17, 15:00    [20759015]     Ответить | Цитировать Сообщить модератору
 Re: Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
SFlash
Member

Откуда:
Сообщений: 143
Дядя Петя Вася,

Не хватает памяти, ненужные данные выкидываются из кэша, нужные подгружаются, имеем PAGEIOLATCH - это ожидание дисковой системы.
И не важно где и сколько раз выполняется, другая сессия обратилась за дынными, ваши из кэша выкинуло. И все по новой.
Посмотрите счетчик Page life expectancy, рекомендуется чтоб был не менее 300.
1 сен 17, 13:45    [20764500]     Ответить | Цитировать Сообщить модератору
 Re: Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
o-o
Guest
Дядя Петя Вася
сервер вроде весьма мощный в плане проца (16 ядер)

IO в латче видите?
это Input\Output, подсистема ввода-вывода, кому интересен ваш проц?
лучше скажите, не экспресс ли эдишен с ограничением памяти в 1Гб
ну и не 4 ли Гб памяти на самом сервере (вот и такое до сих пор встречается)
короче, сказали уже, смотрите ваше PLE, и не 300 оно должно быть нормальное, а раз хотя бы в 10 больше.
иначе это постоянный смыв в унитазе, т.е. просто ничего в памяти не задерживается
1 сен 17, 23:05    [20766146]     Ответить | Цитировать Сообщить модератору
 Re: Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
SFlash
Member

Откуда:
Сообщений: 143
o-o
Дядя Петя Вася
сервер вроде весьма мощный в плане проца (16 ядер)

короче, сказали уже, смотрите ваше PLE, и не 300 оно должно быть нормальное, а раз хотя бы в 10 больше.

Я согласен, что в нормальных системах он вообще 10к+ обычно держится, но если следовать букве BOL-а, то по рекомендации MS если больше 300, то считается норм, выше приветствуется, ниже - добавляйте памяти.
4 сен 17, 10:49    [20769119]     Ответить | Цитировать Сообщить модератору
 Re: Объясните плиз, что за блокировка PAGEIOLATCH_SH  [new]
Konst_One
Member

Откуда:
Сообщений: 11522
https://technet.microsoft.com/ru-ru/library/hh750395.aspx

подробненько от Пола Рэндала.

автор
Можно подсчитать более разумное значение: (<размер буферного пула в ГБ> / 4) x 300, как описано в следующей записи в блоге: http://www.sqlskills.com/BLOGS/PAUL/post/Page-Life-Expectancy-isnt-what-you-think.aspx
4 сен 17, 10:55    [20769134]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить