Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
nk13 Member Откуда: Сообщений: 137 |
Система
Суть проблемы перестал считаться куб, выясняя причину, была выявлена взаимоблокировка (deathlock) ресурсов:
Включил флаги трассировки (1204, 1222), запустил соответствующую трассировку в профайлере и выполнил расчет измерения, на что получил некоторое описание блокировки и граф (в приложенных файлах). Прошу помочь понять информацию, предоставленную профайлером и устранить проблему (куб крайне востребован). П.С.: Не могу точно сказать связано это или нет, но измерение формируется из данных представления, которое в свою очередь в запросе использует некоторые реплицируемые таблицы. Репликация некоторое время назад из-за проблем с железом слетела и была восстановлена. В процессе поломки или восстановления часть индексов на некоторые реплицируемые таблицы на стороне подписчик слетели, но были восстановлены с помощью сохраненных скриптов. Не знаю важные эти моменты или нет, но на всякий случай озвучиваю. К сообщению приложен файл (взаимоблокировка.zip - 11Kb) cкачать ![]() |
|||
4 май 17, 08:36 [20455247] Ответить | Цитировать Сообщить модератору |
nk13 Member Откуда: Сообщений: 137 |
Ну что есть у кого какие-нибудь мысли, хотя бы в каком направлении рыться? |
4 май 17, 10:23 [20455669] Ответить | Цитировать Сообщить модератору |
StarikNavy Member Откуда: Москва Сообщений: 2395 |
nk13, олап систему на отдельный сервер, вначале заливка (+трансофрмация) данных, потом пересчеты кубов - чтобы не блокировалось ни с чем |
4 май 17, 10:32 [20455708] Ответить | Цитировать Сообщить модератору |
nk13 Member Откуда: Сообщений: 137 |
StarikNavy, 1) Олап - на отдельном сервере 2) Вы имеете ввиду отделить все таблицы, используемые кубами от репликаций. Мысль в принципе верная, так и стараюсь делать, но данная реализация была еще сделана до меня, да и в принципе можно проверить, отключив отдельные публикации на время (потом переинициализирую). Сейчас проверю. |
4 май 17, 10:38 [20455734] Ответить | Цитировать Сообщить модератору |
s_ustinov Member Откуда: Munchen, DE Сообщений: 2209 |
nk13, Попробуйте записать данные из представления в таблицу (select into from). Если всё пройдет нормально - переименуйте старое представление и сделайте представление на вновь созданную табличку - в результате отпроцессится куб. И можно разбираться дальше. Очень похоже, что вот причина блокировки: <process id="processc24769868" taskpriority="0" logused="444" waitresource="PAGE: 7:1:133801494 " waittime="24359" ownerId="134583960" transactionname="user_transaction" lasttranstarted="2017-05-04T12:21:56.807" XDES="0x5d616ad08" lockMode="IX" schedulerid="10" kpid="16616" status="suspended" spid="58" sbid="0" ecid="0" priority="0" trancount="2" lastbatchstarted="2017-05-04T12:22:01.860" lastbatchcompleted="2017-05-04T12:21:56.803" lastattention="1900-01-01T00:00:00.803" clientapp="SQL_Axapta_base_test2_Customer" hostname="SQL" hostpid="10944" loginname="HOLDING\pioneer" isolationlevel="read committed (2)" xactid="134583960" currentdb="7" lockTimeout="4294967295" clientoption1="671156320" clientoption2="128056"> <executionStack> <frame procname="OlapBase.dbo.sp_MSupd_dboCUSTTABLE" line="331" stmtstart="38550" stmtend="68110" sqlhandle="0x03000700e49f386f439c390157a7000001000000000000000000000000000000000000000000000000000000"> update [dbo].[CUSTTABLE] set |
4 май 17, 10:41 [20455750] Ответить | Цитировать Сообщить модератору |
s_ustinov Member Откуда: Munchen, DE Сообщений: 2209 |
Сделайте полную реплику вашей аксаптовской базы на отдельном сервере и уже с этой копии формируйте куб. Мы именно так делаем, разве что у нас навик, а не аксапта. ![]() |
||
4 май 17, 10:43 [20455767] Ответить | Цитировать Сообщить модератору |
nk13 Member Откуда: Сообщений: 137 |
s_ustinov, Да Customer одна из публикаций, временно ее отключил. Если без нее будет работать, то задача действительно будет решена, по-быстрому вместо представления сделаю обычную таблицу и в джоб добавлю скрипт для добавления данных. Странно будет только то, что столько времени это работала и проблема не возникала, что в принципе нормально, так там данные меняются только в рабочее время, а куб считается в ночное. Ночью что ли кто-то что-то делал, не понятно. :) Ну в любом случае нужно к нормальному ви ду привести. Что касается полной реплики БД, то это не требуется, берется только необходимая для кубов часть (частично репликациями, частично с помощью пакетов IS). |
4 май 17, 11:06 [20455870] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
я чего-то не понимаю, при чем тут тот факт, что таблица опубликована? ее модифицируют во время пересчета куба, реплицируй-не реплицируй, при чем тут это? ваше OlapBase.dbo.CUSTTABLE со своим индексом I_077ACCOUNTIDX модифицирует аксапта, начиная с индекса, на нем Х. теперь этой же аксапте надо поменять саму таблицу, а там сидит олап с S. олап же хочет S и на индекс, а там Х. приехали, олап откатили. репликация при чем тут? |
4 май 17, 11:20 [20455989] Ответить | Цитировать Сообщить модератору |
s_ustinov Member Откуда: Munchen, DE Сообщений: 2209 |
Тяжелые отчеты вы тоже прямо на рабочей базе формируете? ![]() |
||
4 май 17, 11:26 [20456027] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
наверное, все же CUSTTABLE подписана? может, она не нужна в реальном времени и ее снэпшотом передавать? |
4 май 17, 11:35 [20456078] Ответить | Цитировать Сообщить модератору |
nk13 Member Откуда: Сообщений: 137 |
s_ustinov, Нет конечно, все необходимые таблицы для отчетов также находятся на сервер с Олап. |
4 май 17, 12:32 [20456422] Ответить | Цитировать Сообщить модератору |
nk13 Member Откуда: Сообщений: 137 |
o-o, Как вариант возможно, но немного по другому хочу сделать. А вообще всем гигантское спасибо за помощь. |
4 май 17, 12:36 [20456433] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
nk13, Измените расписание distribution-агента так, чтобы оно не пересекалось с пересчетом куба. Либо, если позволяют ресурсы, включите для БД RCSI. |
||
4 май 17, 12:38 [20456448] Ответить | Цитировать Сообщить модератору |
nk13 Member Откуда: Сообщений: 137 |
o-o,
Если честно, не до конца понял суть вопроса. Вы имеете ввиду, что одновременное присутствие индексов у таблицы и на издателе и на подписчике вызывает одновременную блокировку исходной таблицы или что имеется ввиду? Не соображу, о чем вы пишите. |
||
4 май 17, 12:43 [20456476] Ответить | Цитировать Сообщить модератору |
nk13 Member Откуда: Сообщений: 137 |
invm, раньше так и было, но сейчас это сделать не получится, просто буду вытаскивать данные с реплицированной таблицы на стороне олапа в ее копию запросом, а уже из нее формировать измерение в кубе. |
4 май 17, 12:45 [20456486] Ответить | Цитировать Сообщить модератору |
nk13 Member Откуда: Сообщений: 137 |
Я не правильно выразил мысль. Расписание агента конечно можно поменять, но к реплицированным данным может обращаться и другие кубы в разное время, проще просто избавиться от использования представлений при формировании кубов. Как мне кажется это более надежный вариант, чем подгонять расписание или делать репликацию снимками, да и уменьшает риски большой единовременной нагрузки в связи единовременным перемещением большого количества данных. |
4 май 17, 12:50 [20456509] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
вы написали, что таблица опубликована. а она подписана. неважно уже, все все поняли. если бы вы ее еще куда-то реплицировали, вот это было б ни при чем |
||||
4 май 17, 13:16 [20456703] Ответить | Цитировать Сообщить модератору |
StarikNavy Member Откуда: Москва Сообщений: 2395 |
и как это поможет? ) у вас запрос от куба к таблице, которую в этот момент модифицируют, и при чем здесь реализация этого запроса - через представление, или без? |
||
4 май 17, 13:18 [20456720] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
теперь я не понимаю, какая разница, через представление вы читаете таблицу или нет. блокируется же все равно таблица, а не представление. если не менять расписание, так и будут у вас модифицировать то, что куб читает |
4 май 17, 13:19 [20456734] Ответить | Цитировать Сообщить модератору |
nk13 Member Откуда: Сообщений: 137 |
o-o, StarikNavy, Да похоже вы правы. Получается все же надо с расписанием мутить. |
4 май 17, 13:24 [20456783] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |