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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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