Текущее время: Пт, июл 18 2025, 16:20

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Как ускорить обновление таблицы?
СообщениеДобавлено: Пт, авг 04 2006, 12:34 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, фев 22 2006, 16:09
Сообщения: 592
Здравствуйте!

У меня следующая проблема:
в программе делается обновление таблиц БД.
сначала обновлял таблицу в цикле по записям,
в отладчике при выполнении строки Update tab from wa_tab программа подвисала минут на 3... таблица BKPF, BSEG + BSIKи, BSAKи и тд...

потом попробовал сделать все через update tab from table it_tab.
не помогло....

поскольку документов в обработке не один, то приходится ждать по 3-4 часа при выполнении....

сама обработка данных происходит быстро,
все тормоза на update..

ps в тестовой системе все на ура - 1-2 секунды,
долгая обработка происходит в продуктиве (он достаточно нагружен, покольку концерн мультинациональный)...

соответственно вопрос: можно ли как-нибудь увеличить скорость выполнения update программным методом? или может другими методами?...

Спасибо!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 04 2006, 12:39 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
Может индексы какие громоздкие навешены или их слишком много?

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 04 2006, 12:39 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, сен 21 2005, 10:01
Сообщения: 651
Откуда: СССР
А зачем надо делать прямые апдейты таких таблиц?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 04 2006, 12:47 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, фев 22 2006, 16:09
Сообщения: 592
1980 написал(а):
А зачем надо делать прямые апдейты таких таблиц?


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

на момент создания бухг. документов данные не известны, так конечно бы userexit повесили бы....


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 04 2006, 12:51 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, фев 22 2006, 16:09
Сообщения: 592
ArmAnn написал:
Может индексы какие громоздкие навешены или их слишком много?


как это не смешно, но посмотреть не дают - не дают полномочий на транзакции словарей..
боятся, за конфеденциальность, наверное...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 04 2006, 12:53 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, фев 22 2006, 16:09
Сообщения: 592
Как это не странно, сначала думал, что основное время уходит на подготовку таблицы для обновления...
и думал, что обновляя таблицы из внутренных таблиц, время обновления сократится...

но не тут то было...

и еще вопросик, как отследить время затраченное на сохранение изменения документа (например, через fb02)?.. при получении сообщения "успешно обновлен или сохранен" документ же еще не окончательно сохранен...
и по идее, в этой транзакции также используется update?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 04 2006, 13:19 
Гость
попробуй вместо UPDATE делать MODIFY,
а в конце программы не забудь поставь COMMIT WORK AND WAIT.

Если мне не изменяет память, то при update - commit происходит сразу,
поэтому и затягивается время


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 04 2006, 13:32 
Специалист
Специалист

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
из хелпа
Цитата:
MODIFY - Changing a Database Table
Inserts new lines or updates existing lines in a database table (s. relational database). If a line with the specified primary key already exists, an UPDATE is executed.
...

Automatic definition of INSERT and UPDATE is expensive. You should therefore use MODIFY only if you cannot define the INSERT and UPDATE cases yourself in the program.
Цитата:
Changes to lines made with the UPDATE command only become final after a database commit (see Logical Unit of Work (LUW)). Prior to this, any database update can be canceled by a database rollback (see Programming Transactions).



тебе же нужно обновить 1-2 поля в каждой из таблиц? попробуй update set ... where.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 04 2006, 13:35 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Про update верно, про modify - нет. Т.к. modify всего лишь ищет строку по первичному ключу и в зависимости от результата выполняет либо update либо insert.
Как справедливо было замеченно ранее, дело, скорее всего, в кривых индексах.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 04 2006, 13:37 
Гость
Вообще я бы лучше поискал экзиты, замещения, фм и т.д.
и заполнял бы нужные поля в момент создания документа


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 04 2006, 13:39 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, сен 21 2005, 10:01
Сообщения: 651
Откуда: СССР
РМщик написал(а):
Вообще я бы лучше поискал экзиты, замещения, фм и т.д.
и заполнял бы нужные поля в момент создания документа


Либо пакетник прогнать после. Например в fb02.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 04 2006, 13:44 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
1980 написал(а):
Либо пакетник прогнать после. Например в fb02.


В фоне job'ом. После всех осмысленных действий непосредственно в отчете. И пусть потом сами юзверя SM35 смотрят.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 04 2006, 17:25 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, фев 22 2006, 16:09
Сообщения: 592
modify не помог,
update set ...., так же..

посмотрел тестовой системе: обновление bsis занимает около 90% всего времени....
ужас какой то...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, авг 07 2006, 11:40 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, мар 10 2005, 10:21
Сообщения: 198
Пол: Мужской
Интересно, какой же там размер таблиц?! Может на самом деле индексов понастроили разных?

_________________
Если программа заработала с первого раза, значит она написана принципиально неверно!


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB