powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Ускорение работы растущей базы данных Firebird через приложение на Delphi
25 сообщений из 243, страница 7 из 10
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117602
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал изменения в коде. Теперь записи новые добавляются очень редко.
Потестировав пару часов, я проверил размер файла базы - как был размер на диске 63901696 байт, так и остался. Т.е. даже ни на байт не увеличился
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117603
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
Для всех версий ФБ до версии 4 это должна быть транзакция read only read committed. В этом случае она не будет препятствовать превращению старых версий в мусор.

Вот тут надо "не" вставить перед (или лучше после) "должна быть".
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117604
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatIBM DB2 забыл.
с каких пор DB2 стала версионником?
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117605
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11учили, что одна "вечная" транзакция - это хорошо
только если она read read_committed.

и кстати, можно было бы посмотреть gstat -r, чтобы увидеть, версии накапливаются или нет.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117606
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
только если она read read_committed.


я тут показал параметры транзакций
22405570
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117607
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
Сделал изменения в коде. Теперь записи новые добавляются очень редко.


...а текущие записи об активных сессиях обновляются по таймеру. Таймер не менял - 5 секунд.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117614
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

Понятно что DB2 не версионная. Я про другое.
Я про то что DB2 относится к тем СУБД, табличные пространства которых на пустом месте не распухают.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117629
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatтабличные пространства которых на пустом месте не распухают.
"блокировочники не пухнут" - возьмем фразу на заметку.

p.s. "на пустом" - я не спорю, что версионник для задач "залили-удалили" не очень подходит, как раз потому что удаление это типа не удаление. Но в блокировочнике поди удали запись, которую читают - повиснешь на блокировке. Другой подход нужен, и т.д.
А в версионнике - тяп-ляп, и всё. Правда, потом, "почему пухнет, почему тормоза", и т.д.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117633
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
YuRock
Должна. UPDATE и DELETE порождают ровно такие же версии, как и INSERT.

Это особенность FireBird?

Так-то, в приличной базе, если блобов нет, табличное пространство при апдейте не должно расти. Только логи.

У Firebird нет логов. Есть версии записей. Они все находятся в файле базы данных.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117634
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
Но только в приличной и нормально настроенной БД такого роста занимаемого объема, быть не может, если объем фактических данных в таблицах почти не растет.

Речь не про настройку БД/СУБД, а про некорректную работу приложения с транзакциями.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117658
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X11
Сделал изменения в коде. Теперь записи новые добавляются очень редко.
Потестировав пару часов, я проверил размер файла базы - как был размер на диске 63901696 байт, так и остался. Т.е. даже ни на байт не увеличился

Что изменил-то?
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117673
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
я тут показал параметры транзакций
22405570
А потом написал
X11
вообще, в приложении хватает транзакций, т.е. их на самом деле не две.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117689
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Ну да.... и что....
Есть отдельные запросы, как на запись, так и на чтение и не все они привязаны к двум транзакциям. Но у всех транзакций одинаковые параметры .
99% наборов данных (TUniQuery) привязаны к той единственной вечной читающей транзакции.

Но если запрос на Update/Delete/Insert то пишущую транзакцию я иногда создаю как отдельную пишущую транзакцию на время выполнения запроса. Вот как в данном случае.

Например, есть еще модуль сохранения/восстановления разных настроек, т.е. размеры столбцов у сеток, размеры окон, панелей, видимость компонент и т.д. Здесь тоже использует та одна вечная транзакция на чтение и создается своя отдельная пишущая на время записи данных в таблицу.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117691
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
Если "транзакция записи короткая", это ничего не значит, она просто удалением порождает версию, и всё. Удерживать эту версию может та самая "длинная транзакция одна на всё". Для всех версий ФБ до версии 4 это должна быть транзакция read only read committed. В этом случае она не будет препятствовать превращению старых версий в мусор.


это ведь правильные параметры для read only?

read;nowait;rec_version;read_committed
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117692
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость

Статьи у тебя классные, но, имхо, нужны готовые рецепты.
Хорошо бы примеры живого кода из приложений: вот так база пухнет, чтобы не пухла, нужно вот тут сделать не так, а так (или так).
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117705
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
Есть отдельные запросы, как на запись, так и на чтение и не все они привязаны к двум транзакциям.
Ищи длинную write транзакцию. Она тебе все портит
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117709
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
X11
Есть отдельные запросы, как на запись, так и на чтение и не все они привязаны к двум транзакциям.
Ищи длинную write транзакцию. Она тебе все портит
+1
X11, дёргай периодически gstat -h
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117724
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

это так не работает. Производительность мониторится gstat -h /gstat -r, mon$, трассировка. Чаще всего на работу с транзакциями кладут болт. В статье про ibx у меня есть общие рекомендации по управлению транзакциями, но это максимум, что я могу дать.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117740
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
в блокировочнике поди удали запись, которую читают - повиснешь на блокировке.

Не подвиснешь. Что бы чтение блокировало запись - это надо специально этого захотеть.
Блокировка обычно идет в обратную сторону.

Но и WITH UR FOR READ ONLY никто не отменял, если надо.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117778
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraksУ Firebird нет логов.

Технически - есть. Но не на диске (обычно).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117840
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X11
_Vasilisk_,

Ну да.... и что....
Есть отдельные запросы, как на запись, так и на чтение и не все они привязаны к двум транзакциям. Но у всех транзакций одинаковые параметры .
99% наборов данных (TUniQuery) привязаны к той единственной вечной читающей транзакции.

Но если запрос на Update/Delete/Insert то пишущую транзакцию я иногда создаю как отдельную пишущую транзакцию на время выполнения запроса. Вот как в данном случае.

Например, есть еще модуль сохранения/восстановления разных настроек, т.е. размеры столбцов у сеток, размеры окон, панелей, видимость компонент и т.д. Здесь тоже использует та одна вечная транзакция на чтение и создается своя отдельная пишущая на время записи данных в таблицу.


У тебя где-то есть живая "write" транзакция.
И не обязательно в "твоих" приложениях. Ты мог открыть ibExpert и, например, посмотреть данные любой в табличке. По умолчанию ibExpert открывает таблички в RC-R W транзакции.
Вот и всё.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117847
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv
ъъъъъ,

это так не работает. Производительность мониторится gstat -h /gstat -r, mon$, трассировка. Чаще всего на работу с транзакциями кладут болт. В статье про ibx у меня есть общие рекомендации по управлению транзакциями, но это максимум, что я могу дать.

А вот интересно.
Сделал я тестовое приложение, которое в цикле
Код: pascal
1.
2.
3.
4.
старт транзакции
  пишет в табличку
  удаляет
коммит


- ну и параллельно запускаю RO или RW транзакции и наблюдаю, что размер базы меняется (RW параллельная транзакция) или нет (RO параллельная транзакция). Тут всё понятно.

А потом я вынес старт и коммит транзакции за пределы цикла. И база стала пухнуть после лишь коммита, при этом никаких параллельных транзакций я не запускал. Это как понимать? То, что должны храниться все версии до завершения транзакции - это понятно. Но нашиша их в базу пихать при коммите, когда нет других транзакций?
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117848
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ъъъъъ
А потом я вынес старт и коммит транзакции за пределы цикла. И база стала пухнуть после лишь коммита, при этом никаких параллельных транзакций я не запускал. Это как понимать? То, что должны храниться все версии до завершения транзакции - это понятно. Но нашиша их в базу пихать при коммите, когда нет других транзакций?


Так. Заменил я коммит на роллбэк - база всё равно пухнет. После роллбэка.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117857
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
ъъъъъ
А потом я вынес старт и коммит транзакции за пределы цикла. И база стала пухнуть после лишь коммита, при этом никаких параллельных транзакций я не запускал. Это как понимать? То, что должны храниться все версии до завершения транзакции - это понятно. Но нашиша их в базу пихать при коммите, когда нет других транзакций?


Так. Заменил я коммит на роллбэк - база всё равно пухнет. После роллбэка.
Слабо верится (точнее, совсем не верится), что версии сохраняются при commit/rollback.
Скорее, у тебя ForcedWrites отключено.
А то, что версии остаются после rollback - это правильно.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117864
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,

у тебя фибы установлены? Могу крошечное тестовое приложение выложить, сам увидишь.
...
Рейтинг: 0 / 0
25 сообщений из 243, страница 7 из 10
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Ускорение работы растущей базы данных Firebird через приложение на Delphi
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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