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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.04.2009, 19:30   #1  
rpr is offline
rpr
Участник
 
14 / 13 (1) ++
Регистрация: 24.05.2005
добавление поля в таблицу с огромным количеством записей
При добавлении нового поля в InventSum Аксапта виснет при синхронизации с SQL. В другие таблицы поля добавлются нормально.

Если прервать синхронизацию (насильно выйти из аксапты), то поле будет создано только в приложении, но не в бд -> будут ошибки при выполнении запроса к InventSum.

Пробую 2, 3-звенку, разные имена полей и разные EDT (даже без EDT), "проверить/синхронизировать" таблицу перед добавлением, переиндексировать таблицу, заливать проектом - не помогает.

В InventSum более 5 миллионов записей.

Помогите идеями, пожалуйста.

Ax 3.0, build 1951.5160 / 514-513 SP5 / OP023-379, MS SQL 2000

Последний раз редактировалось rpr; 16.04.2009 в 19:35.
Старый 16.04.2009, 19:45   #2  
YellowSubmarine is offline
YellowSubmarine
Участник
 
111 / 12 (1) ++
Регистрация: 18.12.2002
Цитата:
Сообщение от rpr Посмотреть сообщение
При добавлении нового поля в InventSum Аксапта виснет при синхронизации с SQL. В другие таблицы поля добавлются нормально.

Если прервать синхронизацию (насильно выйти из аксапты), то поле будет создано только в приложении, но не в бд -> будут ошибки при выполнении запроса к InventSum.

Пробую 2, 3-звенку, разные имена полей и разные EDT (даже без EDT), "проверить/синхронизировать" таблицу перед добавлением, переиндексировать таблицу, заливать проектом - не помогает.

В InventSum более 5 миллионов записей.

Помогите идеями, пожалуйста.

Ax 3.0, build 1951.5160 / 514-513 SP5 / OP023-379, MS SQL 2000

Аксапта не виснет, она ждет, пока SQL изменит таблицу. Если посмотреть активные процессы БД, то видно, что идет alter table.

Резюме: дождаться окончания изменения таблицы на SQL сервере.
Старый 16.04.2009, 19:55   #3  
rpr is offline
rpr
Участник
 
14 / 13 (1) ++
Регистрация: 24.05.2005
Цитата:
Сообщение от YellowSubmarine Посмотреть сообщение
Аксапта не виснет, она ждет, пока SQL изменит таблицу. Если посмотреть активные процессы БД, то видно, что идет alter table.

Резюме: дождаться окончания изменения таблицы на SQL сервере.
этот процесс имеет статус 'sleeping' в SQL, что означает - SQL сервер ждет ответа от аксапты.

За час ничего не изменилось, попробую оставить на ночь.
Старый 16.04.2009, 20:16   #4  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от rpr Посмотреть сообщение
этот процесс имеет статус 'sleeping' в SQL, что означает - SQL сервер ждет ответа от аксапты.

За час ничего не изменилось, попробую оставить на ночь.
Возможно вы смотрите не ту сессию в БД, Аксапта может иметь 2 и более соединений с сервером SQL в двухзвенке...

Хотя для 5 млн. (кстати, вы путаете понятие "огромная" и просто "большая"
таблица ) час это уже много, имхо...

В любом случае для начала не мешало бы попробовать дождаться... Поставьте на ночь...
__________________
Zhirenkov Vitaly
Старый 16.04.2009, 20:27   #5  
rpr is offline
rpr
Участник
 
14 / 13 (1) ++
Регистрация: 24.05.2005
Цитата:
Сообщение от ZVV Посмотреть сообщение
Возможно вы смотрите не ту сессию в БД, Аксапта может иметь 2 и более соединений с сервером SQL в двухзвенке...
А как лучше всего смотреть сессии в БД? Я запускаю:
X++:
USE master;
GO
EXEC sp_who 'active';
GO
и
X++:
USE master
EXEC sp_lock
Потом подозрительные сессии смотрю как:
X++:
DBCC INPUTBUFFER (<SPID>)
Старый 16.04.2009, 22:26   #6  
YellowSubmarine is offline
YellowSubmarine
Участник
 
111 / 12 (1) ++
Регистрация: 18.12.2002
Цитата:
Сообщение от rpr Посмотреть сообщение
этот процесс имеет статус 'sleeping' в SQL, что означает - SQL сервер ждет ответа от аксапты.

За час ничего не изменилось, попробую оставить на ночь.
Еще надо контролировать свободное место на дисках под БД. При изменении структуры таблиц сильно увеличивается файл с логом БД. Ну и посмотрите на загрузку дисков через Perfomance monitor. Она должна быть гораздо выше 100%.
Старый 16.04.2009, 23:36   #7  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от YellowSubmarine Посмотреть сообщение
... Она должна быть гораздо выше 100%.
Гм...
__________________
Zhirenkov Vitaly
Старый 17.04.2009, 08:12   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от rpr Посмотреть сообщение
При добавлении нового поля в InventSum Аксапта виснет при синхронизации с SQL. В другие таблицы поля добавлются нормально.
При добавлении поля средствами Аксапты, на сервере может происходить не Alter Table, а создание другой таблицы, копирование данных в нее, удаление исходной и переименование новой.

поэтому убедитесь, что места для новой таблицы достаточно и дождитесь окончания процесса.
__________________
полезное на axForum, github, vk, coub.
Старый 17.04.2009, 08:17   #9  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Известная вещь в сабже. Сам сижу по 15-20 минут и думаю: происходит чонить или нет. А смотреть и куда то лезть - лень. После пары перекуров - всё ок. ИМХО нужно ждать пока отвиснет...
Старый 17.04.2009, 11:58   #10  
rpr is offline
rpr
Участник
 
14 / 13 (1) ++
Регистрация: 24.05.2005
Прошла ночь) - и поле добавилось. Выполнялся "ALTER TABLE". Спасибо за советы)
Старый 17.04.2009, 12:13   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от rpr Посмотреть сообщение
В InventSum более 5 миллионов записей.
...MS SQL 2000
Цитата:
Сообщение от rpr Посмотреть сообщение
Прошла ночь
Что-то странное у вас с производительностью.
В принципе 5млн записей - детский размер. Может все-таки кто-то блокировал InventSum, а изменение таблицы накладывает блокировку схемы. В результате, большую часть времени операция изменения таблицы ждала пока с InventSum будут сняты все блокировки?

В общем, я хочу сказать, что час-два - это еще можно объяснить.
Но "ночь" - это уже что-то ненормальное.
__________________
полезное на axForum, github, vk, coub.
Старый 17.04.2009, 12:23   #12  
rpr is offline
rpr
Участник
 
14 / 13 (1) ++
Регистрация: 24.05.2005
Цитата:
Сообщение от mazzy Посмотреть сообщение
Может все-таки кто-то блокировал InventSum, а изменение таблицы накладывает блокировку схемы. В результате, большую часть времени операция изменения таблицы ждала пока с InventSum будут сняты все блокировки?
А как проверить, есть ли блокировки на таблице?
Старый 17.04.2009, 12:25   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от rpr Посмотреть сообщение
А как проверить, есть ли блокировки на таблице?
Например, в enterprise manager, management, activity monitor, Locks by Object
__________________
полезное на axForum, github, vk, coub.
Старый 17.04.2009, 12:41   #14  
rpr is offline
rpr
Участник
 
14 / 13 (1) ++
Регистрация: 24.05.2005
Цитата:
Сообщение от mazzy Посмотреть сообщение
Например, в enterprise manager, management, activity monitor, Locks by Object
К сожалению на момент решения проблемы у меня это меню (enterprise manager (SQL 2000), management, current activity) не открывалось - выдавало ошибку, что время ожидания истекло.

Пришлось использовать
X++:
USE master
EXEC sp_lock
Вроде бы не было блокировок, но теперь наверняка сказать нельзя. Надо еще одно поле добавить ради эксперимента)
Старый 17.04.2009, 13:16   #15  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
это первый признак, что сервер был занят по самые помидорки.
в следующий раз используйте команду sp_who2 или sp_who для того, чтобы получить список юзеров
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: rpr (1).
Старый 19.04.2009, 13:20   #16  
DocSerzh is offline
DocSerzh
Участник
 
51 / 22 (0) +++
Регистрация: 28.06.2004
;)
есть бесплатная утилитка - http://sqlblocks.narod.ru/index.html ...
За это сообщение автора поблагодарили: Logger (2), rpr (1).
Старый 24.04.2009, 04:07   #17  
rpr is offline
rpr
Участник
 
14 / 13 (1) ++
Регистрация: 24.05.2005
Цитата:
Сообщение от mazzy Посмотреть сообщение
Что-то странное у вас с производительностью.
В принципе 5млн записей - детский размер. Может все-таки кто-то блокировал InventSum, а изменение таблицы накладывает блокировку схемы. В результате, большую часть времени операция изменения таблицы ждала пока с InventSum будут сняты все блокировки?
Так все и оказалось. В системе около 20 view, содержащих InventSum, InventDim и InventTrans в различных комбинациях. Они используются во множестве отчетов, которые клиент (пользователь, то бишь) любит запускать и тестировать, а также писать им подобные. Когда такой отчет запущен, синхронизировать таблицы из view, которое он использует, невозможно, а SQL загружается "по самые помидорки". И становится затруднительно программировать на том же приложении.

Вопросы:
1) Такие проблемы с вью - это нормально или нет?
2) Что можно сделать? Пока вижу варианты, которые не очень устраивают (потому что надо убеждать клиента в их необходимости)):
- разграничить разработку отчетов и всего остального по времени / приложениям
- переписать отчеты (много), чтобы не использовать вью

Последний раз редактировалось rpr; 24.04.2009 в 04:10.
Старый 24.04.2009, 08:42   #18  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,732 / 406 (17) +++++++
Регистрация: 23.03.2006
Цитата:
...И становится затруднительно программировать на том же приложении...
вы программируете на рабочем приложении? или пользователи играются в разработческом? если второе, то поставьте им отдельное приложение

Последний раз редактировалось ice; 24.04.2009 в 08:44.
Старый 24.04.2009, 09:07   #19  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,312 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от ice Посмотреть сообщение
вы программируете на рабочем приложении? или пользователи играются в разработческом? если второе, то поставьте им отдельное приложение
Я думаю все проще. Бекап рабочей базы периодически разворачивается на разработческую - что очень удобно при отладке - есть все настройки, есть рабочий объемы данных для тестирования производительности и все такое
__________________
Возможно сделать все. Вопрос времени
Старый 24.04.2009, 09:24   #20  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,732 / 406 (17) +++++++
Регистрация: 23.03.2006
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Я думаю все проще. Бекап рабочей базы периодически разворачивается на разработческую - что очень удобно при отладке - есть все настройки, есть рабочий объемы данных для тестирования производительности и все такое
так надо тестировать на тестовой...
Теги
sql server, добавление поля, блокировка, синхронизация баз

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как добавить значение в таблицу не по имени поля, а нпример по индексу поля? yuriuss DAX: Программирование 16 07.07.2008 16:36
Добавление нового поля в старую таблицу PavelSR DAX: Программирование 3 14.06.2006 08:22
Добавление строк в "Фильтр записей" Vby DAX: Программирование 6 05.06.2006 11:31
Проблема при добавлении в таблицу нового поля Maxim Gorbunov DAX: База знаний и проекты 2 09.08.2002 15:30
К чему приводит добавление поля в таблицу. si DAX: Программирование 6 21.05.2002 11:54

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

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

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