powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Транзакция для селективных запросов
14 сообщений из 14, страница 1 из 1
Транзакция для селективных запросов
    #40054069
cycloness
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как правильнее делать:

Одна транзакция на всё приложение для селективных запросов в DataModule (TpFIBTransaction) или может правильнее плодить их на каждой создаваемой форме для датасетов на них?

Наверное на 5-10 формах это не важно. а если форм 100? 200? (условно 1 форма = 1 датасет)

БД Firebird 3.
...
Рейтинг: 0 / 0
Транзакция для селективных запросов
    #40054074
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cycloness,

все зависит от селективности. если выборки в формах, то у меня одна, если для отчетов, то другой уровень изоляции и тоже одна, т.к. всё последовательно, а вот в потоках в каждом своя
...
Рейтинг: 0 / 0
Транзакция для селективных запросов
    #40054082
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cycloness
Одна транзакция на всё приложение для селективных запросов в DataModule (TpFIBTransaction) или может правильнее плодить их на каждой создаваемой форме для датасетов на них?
Конечно же плодить на каждой форме.
Даже рид-онли-рид-коммитед транзакция накапливает всякое непотребство в базе, пока не завершится.
...
Рейтинг: 0 / 0
Транзакция для селективных запросов
    #40054083
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cyclonessОдна транзакция на всё приложение для селективных запросов в DataModule (TpFIBTransaction)
или может правильнее плодить их на каждой создаваемой форме для датасетов на них?

При такой формулировке - да, каждой форме своя транзакция это правильно. И даже если форм
200, ничего, пальцы не сотрёшь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Транзакция для селективных запросов
    #40054093
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Даже рид-онли-рид-коммитед транзакция накапливает всякое непотребство в базе, пока не завершится.
http://www.ibase.ru/ibtrans Внимание! В Firebird, Yaffil и InterBase 6.5 транзакции read_committed read (read only) стартуют сразу в состоянии committed, поэтому не удерживают версии. Т. е. такая транзакция может длиться часами без ущерба для производительности сервера. Наиболее характерный пример использования – работа со справочниками
...
Рейтинг: 0 / 0
Транзакция для селективных запросов
    #40054097
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_, видимо коллега имел в виду временные блобы.
те да, живут до коммита и "пучат" базу.
оно не страшно конечно, но неофиты обычно удивляются.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Транзакция для селективных запросов
    #40054099
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это устаревшая документация, которая не учитывает некоторых нюансов. Надо пнуть kdv
чтобы подчистил.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Транзакция для селективных запросов
    #40054102
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
YuRock
Даже рид-онли-рид-коммитед транзакция накапливает всякое непотребство в базе, пока не завершится.
http://www.ibase.ru/ibtransВнимание! В Firebird, Yaffil и InterBase 6.5 транзакции read_committed read (read only) стартуют сразу в состоянии committed, поэтому не удерживают версии. Т. е. такая транзакция может длиться часами без ущерба для производительности сервера. Наиболее характерный пример использования – работа со справочниками

Это не отменяет того факта, что даже рид-онли-рид-коммитед транзакция накапливает всякое непотребство в базе, пока не завершится.
...
Рейтинг: 0 / 0
Транзакция для селективных запросов
    #40054110
cycloness
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну да. Вопрос в общем то абстрактный без привязки к логике, больше в разрезе влияния на базу и потребляемых ресурсов.


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

Если брать за ответ:

Dimitry Sibiryakov

При такой формулировке - да, каждой форме своя транзакция это правильно. И даже если форм
200, ничего, пальцы не сотрёшь.


важно ли учитывать количество одновременно открытых датасетов, измениться ли подобный подход если их допустим будет >100?
...
Рейтинг: 0 / 0
Транзакция для селективных запросов
    #40054113
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cyclonessизмениться ли подобный подход если их допустим будет >100?

Подход не изменится. Изменится формулировка причины увольнения автора такой софтины. С
"профнепригодность" на "саботаж".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Транзакция для селективных запросов
    #40054115
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЭто устаревшая документация, которая не учитывает некоторых нюансов. Надо пнуть kdv
чтобы подчистил.
ну, я туда могу добавить ссылку на
http://www.ibase.ru/dbgrowth
...
Рейтинг: 0 / 0
Транзакция для селективных запросов
    #40054119
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cyclonessважно ли учитывать количество одновременно открытых датасетов, измениться ли подобный подход если их допустим будет >100?
1, 100, 1000 - какая разница? Одновременно открытые датасеты (запросы) жрут память как на клиенте, так и на сервере, хоть в одной транзакции, хоть в нескольких.
И еще есть приложения, в которых prepared-запросов по штук 100 на один коннект, при том что выполняется в коннекте 1-2 запроса.
Да, потребляется память на сервере. Но да, никто от этого пока не помер.

Короче, мне непонятны вот эти сомнения, вернее, их источник. Допустим, я скажу в порядке бреда что "оптимально на 100 датасетов держать 10 транзакций read read_committed". И? Надо же эту херню как-то логически обосновать. А это невозможно :-)

Ну вот Сибиряков правильно подметил, если запросы порождают временные блобы - тогда да, даже read-транзакцию надо бы "завершить побыстрее". Но на этом всё, других причин нет.
...
Рейтинг: 0 / 0
Транзакция для селективных запросов
    #40054122
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
если запросы порождают временные блобы - тогда да, даже read-транзакцию надо бы "завершить побыстрее". Но на этом всё, других причин нет.
Пока нет (хотя я утверждать не могу).
И еще интересно, что даже если и временных блобов нет - они могут появиться потом, с развитием проекта.
...
Рейтинг: 0 / 0
Транзакция для селективных запросов
    #40054191
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvДа, потребляется память на сервере. Но да, никто от этого пока не помер.

Мне вспоминается история чего-то-там-банд, которые вместо оптимизации приложения пошли
экстенсивным путём. Террабайты ОЗУ в сервере, десятки ядер, Самофатов, допиливающий птицу
под этого монстра. Может, оно и не померло, но "жизнью" я бы это тоже не назвал.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Транзакция для селективных запросов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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