powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / IBX 19_19 вопрос с поддержкой оператора RETURNING
15 сообщений из 40, страница 2 из 2
IBX 19_19 вопрос с поддержкой оператора RETURNING
    #39711894
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockЗапомни простую истину: никогда, накогда не используй CommitRetaining/RollbackRetaining.


Я нашёл одно полезное свойство CommitRetaining: если при решении задачи требуется обработать множество строк (например, финансовые операции) и для каждой операции требуется закоммитить транзакцию, то с CommitRetaining запросы с параметрами будут выполнены быстрее, поскольку не будет каждый раз заново выполняться операция PREPARE. Если база находится на отдельном компьютере, а скорость соединения не особо быстрая, то ускорение может быть в несколько раз.
...
Рейтинг: 0 / 0
IBX 19_19 вопрос с поддержкой оператора RETURNING
    #39711897
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КотовасияА чем плоха длинная "пишущая" транзакция "стандартного" датасета ibx, которая 99,999% времени ничего не пишет, кроме короткого быстрого post с последующим немедленным CommitRetaining? Расскажи, пожалуйста.
Тем, что эта пишущая транзакция сборке мусора будет очень мешать. Если она будет открыта несколько дней (и ничего не делать при этом, как ты говоришь - висеть себе и всё) - то эти несколько дней не будет сборки мусора.
...
Рейтинг: 0 / 0
IBX 19_19 вопрос с поддержкой оператора RETURNING
    #39711900
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSerс CommitRetaining запросы с параметрами будут выполнены быстрее, поскольку не будет каждый
раз заново выполняться операция PREPARE.

Если твои компоненты доступа распрепарируют запрос при коммите, это их проблемы. Обычно
препарированный запрос способен нормально жить аж до дисконнекта.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
IBX 19_19 вопрос с поддержкой оператора RETURNING
    #39711901
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSerЯ нашёл одно полезное свойство CommitRetaining: если при решении задачи требуется обработать множество строк (например, финансовые операции) и для каждой операции требуется закоммитить транзакцию, то с CommitRetaining запросы с параметрами будут выполнены быстрее, поскольку не будет каждый раз заново выполняться операция PREPARE
Разве Prepare делается для каждой транзакции? Не очень верю.

Я использую CommitRetaining в одном месте: для мониторинга доступности базы. RORC-транзакции делаю CommitRetaining по таймеру.
...
Рейтинг: 0 / 0
IBX 19_19 вопрос с поддержкой оператора RETURNING
    #39711907
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КотовасияDmSer,

да ну нафиг, уж лучше старые фибы.

Конечно они лучше, тем более сейчас они вроде халявные :)
Но вот встанет у меня задача переделать один мой проект (там пара-тройка сотен тыщ строк кода) под Линукс - опаньки, а там есть для Лазаруса допиленный IBX, т.е. задачу можно будет решить за ограниченное время, учитывая, что в проекте не менее тысячи различных запросов к БД.
А с фибами будет всё намного сложнее.


Кстати, никто проверял, в последних версиях Delphi под Линукс компоненты IBX случайно с Firebird не умеют работать?
...
Рейтинг: 0 / 0
IBX 19_19 вопрос с поддержкой оператора RETURNING
    #39711909
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockРазве Prepare делается для каждой транзакции? Не очень верю.

Увы, в IBX оно так!
...
Рейтинг: 0 / 0
IBX 19_19 вопрос с поддержкой оператора RETURNING
    #39711911
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSerУвы, в IBX оно так! Тынц
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
ISC_STATUS isc_dsql_prepare(
 ISC_STATUS *status_vector,
 isc_tr_handle *trans_handle,
 isc_stmt_handle *stmt_handle,
 unsigned short length,
 char *statement,
 unsigned short dialect,
 XSQLDA *xsqlda);


При чем здесь IBX?
...
Рейтинг: 0 / 0
IBX 19_19 вопрос с поддержкой оператора RETURNING
    #39711925
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_DmSerУвы, в IBX оно так! Тынц
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
ISC_STATUS isc_dsql_prepare(
 ISC_STATUS *status_vector,
 isc_tr_handle *trans_handle,
 isc_stmt_handle *stmt_handle,
 unsigned short length,
 char *statement,
 unsigned short dialect,
 XSQLDA *xsqlda);


При чем здесь IBX?

Прочитал статью по ссылке, просмотрел функцию isc_dsql_prepare, насладился жёлтой подсветкой. Всё понравилось. А делать-то с этим теперь что?
...
Рейтинг: 0 / 0
IBX 19_19 вопрос с поддержкой оператора RETURNING
    #39711938
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_При чем здесь IBX?

Ты не поверишь, но запрос не ограничен рамками транзакции в которой его препарировали.
Выполняться он способен и в любой другой. Хоть это и влечёт за собой забавные спецэффекты
на динамических метаданных.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
IBX 19_19 вопрос с поддержкой оператора RETURNING
    #39711940
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSerА делать-то с этим теперь что?Проблема не в IBX, а в API Interbase. Стейтментов вне транзакции не существует
...
Рейтинг: 0 / 0
IBX 19_19 вопрос с поддержкой оператора RETURNING
    #39711943
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovзапрос не ограничен рамками транзакции в которой его препарировали.Интересный функционал. Он где-то документирован или просто "так работает"?
...
Рейтинг: 0 / 0
IBX 19_19 вопрос с поддержкой оператора RETURNING
    #39711945
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Стейтментов вне транзакции не существует

Это ты зря так думаешь:
Код: sql
1.
2.
3.
4.
isc_dsql_allocate_statement(
   ISC_STATUS *status_vector,
   isc_db_handle *db_handle,
   isc_stmt_handle *stmt_handle);


Где здесь транзакция?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
IBX 19_19 вопрос с поддержкой оператора RETURNING
    #39711955
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovГде здесь транзакция?Это аллок.

При создании объекта память тоже как-бы принадлежит всему процессу, но объект доступен только по месту создания. А если кто-то полезет по сырому указателю к этому объекту, то ССЗБ
...
Рейтинг: 0 / 0
IBX 19_19 вопрос с поддержкой оператора RETURNING
    #39711967
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Он где-то документирован или просто "так работает"?

API guideAfter a statement is prepared, it is available for execution as many times
as necessary during the current session .
Ну и то, что в execute требуется хэндл транзакции как бы тоже намекает. Там, где запросы
привязаны к транзакции, такого не допускают.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
IBX 19_19 вопрос с поддержкой оператора RETURNING
    #39712048
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно писал проект на апи. Создавали и сразу препарировал запрос один раз, в одной транзакции. А затем использую этот хэндл запроса с другими транзакциями. Месяцами работает.
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / IBX 19_19 вопрос с поддержкой оператора RETURNING
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]