AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.12.2013, 12:54   #1  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,731 / 406 (17) +++++++
Регистрация: 23.03.2006
drop table
Коллеги!
Ax 2012 R2. С недавних пор возникла следующая проблема.
Время от времени при различных обстоятельствах (многочисленные селекты, инсерты, сохранение в АОТ и пр) возникает в Sql сервере процесс который запускает многократные операции Drop Table на tempDb, что приводит к зависанию Ax. Сначало это проявилось на рабочем приложении, а потом через некоторое время на тестовом и девелоперском. Кто-нибудь сталкивался ли с подобным и как это можно вылечить? возможно на это влияют какие-то настойки на Sql сервере
Старый 10.12.2013, 00:35   #2  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Возможно просто начала задействоваться бизнес-логика где используются такие временные таблицы.
Temporary TempDB Tables
http://msdn.microsoft.com/en-us/library/gg845661.aspx

Если приложение чистое это одно а если есть кастомизации то надо их смотреть в первую очередь.
Если же чистое то наверно надо смотреть свободное дисковое пространство и память то есть мониторить ресурсы сервера. Проверить соответствие минимальным требованиям.

IMHO
Старый 10.12.2013, 14:54   #3  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,731 / 406 (17) +++++++
Регистрация: 23.03.2006
сохранение измененного элемента АОТ не задействует бизнес логику

Последний раз редактировалось ice; 10.12.2013 в 14:58.
Старый 11.12.2013, 09:47   #4  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
А откуда вы взяли, что именно DROP TABLE? Это ведь удаление таблицы полностью, так сказать ко всем чертям))) Не проще ли использовать TRUNCATE TABLE? Возможно ли, что у вас в функционале реализовано программное удаление и создание таблиц, причем эти таблицы просто являются временными? Я думаю надо рыть в эту сторону.
__________________
// no comments
Старый 11.12.2013, 10:00   #5  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,232 / 974 (37) +++++++
Регистрация: 03.04.2002
Так вроде это всегда было частью процесса модификации схемы данных. Достаточно длину EDT поменять, чтобы несколько таблиц пересоздались.
__________________
Isn't it nice when things just work?
Старый 11.12.2013, 12:33   #6  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,731 / 406 (17) +++++++
Регистрация: 23.03.2006
Цитата:
Сообщение от dech Посмотреть сообщение
А откуда вы взяли, что именно DROP TABLE?
наблюдаю в Management Studio

Цитата:
Сообщение от dech Посмотреть сообщение
Не проще ли использовать TRUNCATE TABLE?
кому проще? функционал не вызывает данную операцию

Цитата:
Сообщение от dech Посмотреть сообщение
Возможно ли, что у вас в функционале реализовано программное удаление и создание таблиц, причем эти таблицы просто являются временными? Я думаю надо рыть в эту сторону.
стандартный функционал. например, происходит редактирование строки заказа на покупку, созданной из заявки на покупку. при этом происходит сохранение истории по заявке на покупку (1000+ строк). в этот момент клиент виснит, смотрим MS, там появился процесс с DROP TABLE в TempDB
Старый 11.12.2013, 18:21   #7  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,731 / 406 (17) +++++++
Регистрация: 23.03.2006
пример:
Цитата:
DROP TABLE tempdb."DBO".t3282_8BBC272770424B1B974AE82DA64ADBA9
Старый 27.01.2014, 09:55   #8  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,731 / 406 (17) +++++++
Регистрация: 23.03.2006
Выяснил откуда ноги растут
Оказывается, как не удивительно, что причиной является создание этих самых таблиц в TempDb. А создаются они благодаря некой ошибке в ядре системы: при выключении неиспользуемой функциональности с помощью конфигурационных ключей, таблицы из базы SQL не удаляются. В коде по ним происходит селект, и вот тут то и проявляется удивительная вещь, происходит создание таблицы в TempDb. такие таблицы накапливаются, затем происходит их чистка, т.е. те самые Drop Table

Пока обнаружил 2 таких конфигурационных ключа: Markup, LedgerAdv2BudgetCtrl

Последний раз редактировалось ice; 27.01.2014 в 09:58.
За это сообщение автора поблагодарили: mazzy (2), fed (3), trud (3), Logger (3), ivas (1), S.Kuskov (2).
Старый 27.01.2014, 15:43   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от ice Посмотреть сообщение
А создаются они благодаря некой ошибке в ядре системы: при выключении неиспользуемой функциональности с помощью конфигурационных ключей, таблицы из базы SQL не удаляются.
ошибка ли это? ведь в разных partition могут быть разные конф.ключи.

Цитата:
Сообщение от ice Посмотреть сообщение
Пока обнаружил 2 таких конфигурационных ключа: Markup, LedgerAdv2BudgetCtrl
ай, спасибо!
я пока только markup нашел.

=================
про drop.
временные таблицы в tempdb часто и безосновательно используются, если у таблицы указано свойство tableType = tempDB.

на мой взгляд, обязательно надо переключать в inMemroy следующие теблицы
MarkupTmpAllocation,
MarkupTmpMaxAmountValidation
AccountingDistributionEventTmp
AccountingDistributionTmpJournalize
AccountingDistributionTmp
AccountingDistributionTmpTax

пытаюсь разобраться с
SubledgerBondMapTmp
SubledgerBondTmp
но с ними не так просто...
Старый 27.01.2014, 15:59   #10  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,731 / 406 (17) +++++++
Регистрация: 23.03.2006
Цитата:
Сообщение от mazzy Посмотреть сообщение
ошибка ли это? ведь в разных partition могут быть разные конф.ключи.
Если это так, то тогда разработчики забыли в коде добавить проверку на включенность конфигурационного ключа на множественных операциях, тк критичность данной ситуации проявляется именно на них
Старый 27.01.2014, 16:19   #11  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от ice;
...при выключении неиспользуемой функциональности с помощью конфигурационных ключей, таблицы из базы SQL не удаляются.
Это новая фича 2012 (либо 2012 R2), в учебнике про это явно написано.

Цитата:
Сообщение от mazzy;
ошибка ли это? ведь в разных partition могут быть разные конф.ключи.
Что, правда? Я думал конф.ключи глобальны...
Теги
ax2012, быстродействие, полезное

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
david_kidder: ReferenceTable & Table References on EDT Blog bot DAX Blogs 0 05.09.2013 15:11
ax-erp: ReferenceTable & Table References on EDT Blog bot DAX Blogs 0 18.12.2012 02:11
Халтура в AX2009: идентификаторы из USR в GLS, GLP и даже SYS-слоях EVGL DAX: Программирование 2 21.02.2011 19:44
PatrickChua: Temporary table Blog bot DAX Blogs 0 04.05.2009 14:05
Drag and Drop Table AxTimur DAX: Программирование 1 21.01.2009 17:26

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:44.