Текущее время: Чт, май 08 2025, 02:47

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


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


ВНИМАНИЕ! Прежде чем задавать вопрос, ознакомьтесь со ссылками ниже:

Вопросы по отличиям версий SAP, Add-On, EHP - сюда
Вопросы по SAP Front End (SAPlogon, SAPgui, guiXT и т.д.) - сюда
Вопросы по LSMW - сюда
Вопросы по архивации в SAP - сюда
Вопросы по SAP GRC - сюда
Вопросы по SAP Business Workplace (почте SAP) и SAP Office - сюда
Вопросы по miniSAP (SAP mini basis) - сюда
Вопросы по SAP HANA - сюда
Вопросы по лицензированию продуктов SAP - сюда



Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Можно ли заключать программу в единственную транзакцию?
СообщениеДобавлено: Чт, мар 11 2010, 09:19 
Начинающий
Начинающий

Зарегистрирован:
Ср, фев 10 2010, 16:40
Сообщения: 13
Здравствуйте!

Я уже задавал этот вопрос в конференции "Прочее" - там мне порекомендовали обратиться сюда.

В принципе чувствую, что проблем возникнуть не должно, но хотелось бы подстраховаться - мало ли какие подводные камни могут всплыть.
Я работаю с MS SQL SERVER (внешней базой, не связанной с SAP) через native-SQL. Программа построена так:

Code:
  EXEC SQL.
    CONNECT TO 'CON_01'
  ENDEXEC.
  IF SY-SUBRC <> 0.
    write 'Не удалось подключиться к базе данных'.
    raise MSSQL_CON_ERROR.
  ENDIF.

//...
//Вызов форм, меняющих таблицы SQL SERVER
//...

  EXEC SQL.
    COMMIT
  ENDEXEC.


При этом между подключением к базе и COMMIT может выполняться большое количество изменений базы. Имеются ли какие-нибудь лимиты для транзакций, то есть возможно ли какое-нибудь переполнение в этой ситуации, или можно не беспокоится об этом и оформлять всю работу программы в одну транзакцию, которая подтверждается в самом конце? Вопрос мне, скорее, даже на будущее, так как сейчас в базе всего 4 таблицы, каждая из которых содержит порядка нескольких десятков тысяч строк - насколько я понимаю - даже если все они будут изменены, тут вполне будет достаточно единственного commit?

Заранее спасибо.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Можно ли заключать программу в единственную транзакцию?
СообщениеДобавлено: Чт, мар 11 2010, 14:34 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 16 2004, 17:10
Сообщения: 2229
Откуда: Moscow, кажется...
Пол: Мужской
И совсем ни к чему беспокоить базис :)
При работе с базой коммит делают тогда, когда ВСЕ необходимые действия закончились успехом.
Если Вы знаете, как и зачем Вы кидаете данные на внешнюю базу (если же речь идет о своей с таким методом доступа, то это редкостное, извращенное убийство системы :)), то коммит надо делать тогда, когда Вы считаете, что прошла целостная операция. Ну, в общем, это основы транзакционной работы, кмк...
Системе, откуда Вы работаете с Native SQL, глубоко наплевать, что там, вдалеке, будет с данными. И наличие/отсутствие коммита при работе с внешней системой никак не влияет на нагрузку и память клиента, которым выступает Ваша система. Главное не забудьте сделать его (коммит) в нужный момент ;)

_________________
Я бы хотел поглядеть на эффективную армию, состоящую из эффективных менеджеров.
BRGDS,
Aleks Изображение


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

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


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

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


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

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