powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сборка мусора.
25 сообщений из 52, страница 1 из 3
Сборка мусора.
    #39700309
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Помогите пожалуйста разобраться со сборкой мусора.

Описываю ситуацию.
Firebird 2.5. Embeded версия
Ibexpert для мониторинга статистики таблицы

Есть приложение, есть таблица в которой происходит update/insert.

Через IbExpert вижу что таблица замусоривается. Закрываю программу, в IbExpert делаю
select count(*) из таблицы, вижу что мусор очистился. Делаю тоже самое в программе, мусор не чиститься. Понимаю, что в программе остались "Заинтересованные транзакции".
У меня вопрос, как найти транзакции в моём приложении которые мешают сборке мусора?
Я смотрел в таблицы mon$transaction, mon$statements, mon$atachments но ничего нужного не нашёл, может не так смотрел конечно.
...
Рейтинг: 0 / 0
Сборка мусора.
    #39700317
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MandarinЯ смотрел в таблицы mon$transaction, ... но ничего нужного не нашёл
как это?

1. я не очень понимаю, зачем "чистить мусор" в Embedded. У вас что, приложение держит много транзакций?
2. версии чистятся только когда они становится мусором. То есть, например, в "монопольном" режиме
update
commit - если других транзакций нет, предыдущие версии стали мусором
start trans
select count - тут мусор соберется.
Если параллельно с той транзакцией, которая делала update, есть еще какая-то активная read/write транзакция, и она активна на момент select count, то версии в мусор не превращаются.
...
Рейтинг: 0 / 0
Сборка мусора.
    #39700320
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем ты всё это делаешь? Стандартные режимы чем-то
не устраивают? Если да, то чем не устраивает gfix sweep?

Mandarin> Делаю тоже самое в программе, мусор не чиститься.
Mandarin> Понимаю, что в программе остались "Заинтересованные транзакции".

Какие компоненты доступа, как настроены транзакции?

> Я смотрел в таблицы mon$transaction, mon$statements, mon$atachments
> но ничего нужного не нашёл, может не так смотрел конечно.

Показывай, как смотрел. delete from mon$transactions пробовал?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора.
    #39700322
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой, у него ещё и Ембеддед. Как всё запущено.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора.
    #39700323
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvMandarinЯ смотрел в таблицы mon$transaction, ... но ничего нужного не нашёл
как это?

1. я не очень понимаю, зачем "чистить мусор" в Embedded. У вас что, приложение держит много транзакций?
2. версии чистятся только когда они становится мусором. То есть, например, в "монопольном" режиме
update
commit - если других транзакций нет, предыдущие версии стали мусором
start trans
select count - тут мусор соберется.
Если параллельно с той транзакцией, которая делала update, есть еще какая-то активная read/write транзакция, и она активна на момент select count, то версии в мусор не превращаются.

1. Чистить мусор в Embed нужно, т.к. он появляется и сильно замедляет работу :). приложение держит много активных транзакций, т.к. это большое сложное приложение с множеством модулей, которые работают с одной БД.
2. Вы говорите про транзакции которые работают с той же таблицей которую мне надо почистить, или вообще транзакции в БД?
...
Рейтинг: 0 / 0
Сборка мусора.
    #39700326
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамЗачем ты всё это делаешь? Стандартные режимы чем-то
не устраивают? Если да, то чем не устраивает gfix sweep?

Mandarin> Делаю тоже самое в программе, мусор не чиститься.
Mandarin> Понимаю, что в программе остались "Заинтересованные транзакции".

Какие компоненты доступа, как настроены транзакции?

> Я смотрел в таблицы mon$transaction, mon$statements, mon$atachments
> но ничего нужного не нашёл, может не так смотрел конечно.

Показывай, как смотрел. delete from mon$transactions пробовал?


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

gfix sweep очень даже подходит НО требует монопольного доступа к БД, а это очень сложно организовать

У меня в программе предусмотрел backup/restor при старте, с определённым интервалом, в этом случае мусор чистить, но на дохлых компьютерах это может занимать 10-15 минут и пользователи отказываются ждать. Надо настроить сборку в фоновом режиме.
...
Рейтинг: 0 / 0
Сборка мусора.
    #39700330
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarinиз-за замусоривания запросы работают медленнее.

Вообще-то нет. Обычно оно не оказывает заметного влияния на скорость запросов. Разве что в
случаях когда из-за недостатка места на страницах идёт сильная фрагментация записей.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора.
    #39700332
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMandarinиз-за замусоривания запросы работают медленнее.

Вообще-то нет. Обычно оно не оказывает заметного влияния на скорость запросов. Разве что в
случаях когда из-за недостатка места на страницах идёт сильная фрагментация записей.


К гадалке не ходи, как говорится :)
...
Рейтинг: 0 / 0
Сборка мусора.
    #39700343
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandaringfix sweep очень даже подходит НО требует монопольного доступа к БДКонечно не требует
...
Рейтинг: 0 / 0
Сборка мусора.
    #39700344
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMandarinиз-за замусоривания запросы работают медленнее.

Вообще-то нет.Вообще-то ты снова пальцем в небо тычешь.
Ибо сборка мусора во время выполнения запросов таки не ускоряет выполнение оных.
...
Рейтинг: 0 / 0
Сборка мусора.
    #39700346
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MandarinУ меня вопрос, как найти транзакции в моём приложении которые мешают сборке мусора?Любая длительная тр-ция под подозрением. Кроме read committed read only.
...
Рейтинг: 0 / 0
Сборка мусора.
    #39700347
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarinприложение держит много активных транзакций, т.к. это большое сложное приложение с множеством модулей, которые работают с одной БД.
есть же правила - длинную транзакцию делать read read_committed rec_version, она не будет "удерживать версии".
А если не хотите исправлять "много активных транзакций", то тогда не надо страдать по поводу мусора. Одно следует из другого - исправляете транзакции, пропадает проблема мусора.
...
Рейтинг: 0 / 0
Сборка мусора.
    #39700355
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarin2. Вы говорите про транзакции которые работают с той же таблицей которую мне надо почистить, или вообще транзакции в БД?

причём тут таблица. Любая активная транзакция за исключением RC RO удерживает сборку мусора, если только он не порождён раньше этой транзакции.
...
Рейтинг: 0 / 0
Сборка мусора.
    #39700359
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустамdelete from mon$transactions пробовал?

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

Действительно. Простите великодушно, попутал, старею.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора.
    #39700744
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvMandarinприложение держит много активных транзакций, т.к. это большое сложное приложение с множеством модулей, которые работают с одной БД.
есть же правила - длинную транзакцию делать read read_committed rec_version, она не будет "удерживать версии".
А если не хотите исправлять "много активных транзакций", то тогда не надо страдать по поводу мусора. Одно следует из другого - исправляете транзакции, пропадает проблема мусора.

Хватай специалиста!!! Держи его :) Вот золотой человек! :) Спасибо! То, что нужно!
З.Ы. Дайте ему премию :)
...
Рейтинг: 0 / 0
Сборка мусора.
    #39700745
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarin,

неужели исправил?
...
Рейтинг: 0 / 0
Сборка мусора.
    #39700864
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Дениснеужели исправил?

Скорее замёл под коврик названным костылём.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора.
    #39700989
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MandarinХватай специалиста!!! Держи его :) Вот золотой человек! :) Спасибо! То, что нужно!
З.Ы. Дайте ему премию :)kdv сам выдает премии.
...
Рейтинг: 0 / 0
Сборка мусора.
    #39701099
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисMandarin,

неужели исправил?
Исправил. Как посоветовал kdv я поменял параметры долгоиграющей транзакции и сборка мусора начала работать после select count(*)
...
Рейтинг: 0 / 0
Сборка мусора.
    #39701101
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovСимонов Дениснеужели исправил?

Скорее замёл под коврик названным костылём.

Спасибо за критику :) именно она не даёт расслабиться и даёт стимул двигаться в перёд :)
...
Рейтинг: 0 / 0
Сборка мусора.
    #39701641
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
11.09.2018 20:27, Mandarin пишет:
> Исправил. Как посоветовал kdv я поменял параметры долгоиграющей транзакции и сборка мусора начала работать после select count(*)

а зачем ты держишь эту транзакцию?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора.
    #39701666
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

ну а чего тут непонятного, человеку хочется недофетченные курсоры держать, чтобы пользователи не ждали пока в грид выберется 100500 записей.
...
Рейтинг: 0 / 0
Сборка мусора.
    #39701669
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
12.09.2018 17:24, Симонов Денис пишет:
> ну а чего тут непонятного, человеку хочется недофетченные курсоры держать, чтобы пользователи не ждали пока в грид выберется 100500 записей.

нет уж, пускай он сам скажет зачем ;)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора.
    #39701672
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисчеловеку хочется недофетченные курсоры держать, чтобы пользователи не ждали пока в грид
выберется 100500 записей.

Ну да, фетчить записи в фоновом режиме и отображать их сразу - слишком сложная техника.
Тут программист нужен.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 52, страница 1 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сборка мусора.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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