powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Ускорение работы растущей базы данных Firebird через приложение на Delphi
25 сообщений из 243, страница 6 из 10
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117546
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Приходится Firebird использовать, как средство сбора инфы с разных процессов.

Замени в этом месте Firebird на первую попавшуюся in-memory СУБД и будет тебе
счастье.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117547
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
Ну и что это тебе даст, если ты процедуру каждые 3 секунды повторяешь? Просто отодвинешь "процесс" на 15 минут.


а как же мне удалять старые ненужные записи?
пользователь подключился - запись добавилась...
пользователь отключился - запись осталась.... и ее нужно удалить
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117548
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Замени в этом месте Firebird на первую попавшуюся in-memory СУБД и будет тебе
счастье.


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

В уэб-приложениях так не бывает. Сессия пользователя заканчивается либо явным
тычком на кнопку, либо по таймауту. Специфика stateless протокола http.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117552
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov
X11пользователь отключился - запись осталась....

В уэб-приложениях так не бывает. Сессия пользователя заканчивается либо явным
тычком на кнопку, либо по таймауту. Специфика stateless протокола http.
У него же uniGUI. Имитация "классической двухзвенки" поверх http.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117553
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Сессия пользователя заканчивается либо явным
тычком на кнопку, либо по таймауту.


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

Вообще без понятия, что там в FireBird происходит.

Мы для нагруженных систем пользуемся нормальными enterprise БД, без подобных тараканов.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117557
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Должна. UPDATE и DELETE порождают ровно такие же версии, как и INSERT.

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

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

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

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

Рождение эксперта, однако.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117560
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
что ее искать?
она одна на все приложение и все НД с гридами к ней подключены
Так что ты тогда хочешь?
X11
ъъъъъ
Добавь в итерацию:
Код: sql
1.
 select count(*) from табличка

ок, спасибо, добавлю
Не поможет. Потому что есть активные транзакции. Соберутся в мусор только те записи, которые уже не существовали на момент старта всех write транзакций
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117562
Softologic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov
X11Приходится Firebird использовать, как средство сбора инфы с разных процессов.

Замени в этом месте Firebird на первую попавшуюся in-memory СУБД и будет тебе
счастье.
+1
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117565
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_
Потому что есть активные транзакции.

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

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

Так-то, в приличной базе, если блобов нет, табличное пространство при апдейте не должно расти. Только логи.
Это особенность всех версионных СУБД.
В "логах" лежат эти версии, или в одном файле вся БД - не важно. Логи, о которых ты говоришь - это не какая-то неважная информация, это та же БД.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117567
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
X11
что ее искать?
она одна на все приложение и все НД с гридами к ней подключены
Так что ты тогда хочешь?
X11
пропущено...
ок, спасибо, добавлю
Не поможет. Потому что есть активные транзакции. Соберутся в мусор только те записи, которые уже не существовали на момент старта всех write транзакций
Ну они у него вроде долго не живут (если не врёт), т.ч. оставаться мусора будет не так много.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117571
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Так что ты тогда хочешь?


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


чтобы база не росла...
я же удаляю записи, место должно освободиться когда-нибудь и на это место должны добавляться новые записи
разве нет?

А какие параметры транзакций у тебя?
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117574
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Это особенность всех версионных СУБД.
В "логах" лежат эти версии, или в одном файле вся БД - не важно. Логи, о которых ты говоришь - это не какая-то неважная информация, это та же БД.
Угу, только если это лежит в логах, сами табличные пространства пухнуть не будут. И если делать только Update, они будут иметь постоянный размер.

А логи место на диске занимают только временно и оно будет потом отдано, без всяких подпорок типа reorg, sweep и т.п.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117578
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11я же удаляю записи, место должно освободиться когда-нибудь и на это место должны добавляться новые записи
разве нет?
ух, ох...
Почитайте самую элементарщину
http://www.ibase.ru/mga

Удаление не может "удалить" запись. Это же версионник, поэтому при удалении создается версия (маркер удаления), и БАЗА РАСТЁТ.
Дальше эти версии будут физически удалены на страницах данных только если
- нет длинных транзакций, заинтересованных в этих версиях (просто длинных read/write транзакций)
- кто-нибудь "удаленные данные" прочитает (парадокс).

Если "транзакция записи короткая", это ничего не значит, она просто удалением порождает версию, и всё. Удерживать эту версию может та самая "длинная транзакция одна на всё". Для всех версий ФБ до версии 4 это должна быть транзакция read only read committed. В этом случае она не будет препятствовать превращению старых версий в мусор.

Но, "удаленные записи" ничто не читает, и это логично. И увы, в версионнике запись+версия_удаления так и будут торчать, пока
- кто-то не прочитает эту запись (по условию, куда попадут и другие записи). Тогда сработает сборщик мусора.
- не запустится авто-свип или вручную его не запустят, он прошерстит ВСЮ базу данных и уберет накопившийся мусор.
- ну или можно select count периодически запускать. Но см. выше про длинные транзакции.

p.s. ну ты же в форуме Firebird тусуешься, я думал ты АЗЫ-то хоть знаешь. Ну как так можно.
Короче, читаем подряд
http://www.ibase.ru/mga
http://www.ibase.ru/garbage/
http://www.ibase.ru/sweep/
Это базовые знания по версионности InterBase и Firebird.
rgreatМы для нагруженных систем пользуемся нормальными enterprise БД, без подобных тараканов.
версионные Enterprise СУБД - Oracle, MS SQL (если включить версионность), PostgreSQL, Firebird. Версионность у них работает почти одинаково, с некоторыми отличиями, но принцип похожий. Так что про "тараканов" - это прям ляп в лужу. Не говорите так никому.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117579
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatИ если делать только Update, они будут иметь постоянный размер.
А логи место на диске занимают только временно и оно будет потом отдано
У Firebird данные и "логи" в одном файле. И да, когда "логи" очистятся, туда можно будет напихать новых данных.
У PostgreSQL - то же самое.
Но если в версионнике активна какая-то транзакция, "логи" не могут быть просто так очищены. Например, у Оракла была проблема, когда длинная snapshot-транзакция обламывалась прочитать данные, которые были вычищены из лога.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117580
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
Но если в версионнике активна какая-то транзакция, "логи" не могут быть просто так очищены.

Зависшие транзакции - это известный комплекс проблем. Только я сомневаюсь что у X11 проблема именно в этом.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117581
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
версионные Enterprise СУБД - Oracle, MS SQL (если включить версионность), PostgreSQL, Firebird. Версионность у них работает почти одинаково, с некоторыми отличиями, но принцип похожий. Так что про "тараканов" - это прям ляп в лужу. Не говорите так никому.
IBM DB2 забыл.
Да, везде свои нюансы. Но только в приличной и нормально настроенной БД такого роста занимаемого объема, быть не может, если объем фактических данных в таблицах почти не растет.
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117595
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
А какие параметры транзакций у тебя?


для чтения: read;nowait;rec_version;read_committed
для записи: write;nowait;rec_version;read_committed
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117598
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
- ну или можно select count периодически запускать. Но см. выше про длинные транзакции.


Получается, это этой проблемной таблицы можно сделать отдельную еще одну читающую транзакцию? Ну чтобы датасет читал данные из этой таблицы периодически переоткрывая транзакцию...
С детства меня учили, что одна "вечная" транзакция - это хорошо, а тут на тебе
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117599
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
я думал ты АЗЫ-то хоть знаешь


та вроде как
...
Рейтинг: 0 / 0
Ускорение работы растущей базы данных Firebird через приложение на Delphi
    #40117601
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
kdv
- ну или можно select count периодически запускать. Но см. выше про длинные транзакции.


Получается, это этой проблемной таблицы можно сделать отдельную еще одну читающую транзакцию? Ну чтобы датасет читал данные из этой таблицы периодически переоткрывая транзакцию...
С детства меня учили, что одна "вечная" транзакция - это хорошо, а тут на тебе

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


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