|
Сборка мусора.
|
|||
---|---|---|---|
#18+
Всем привет! Помогите пожалуйста разобраться со сборкой мусора. Описываю ситуацию. Firebird 2.5. Embeded версия Ibexpert для мониторинга статистики таблицы Есть приложение, есть таблица в которой происходит update/insert. Через IbExpert вижу что таблица замусоривается. Закрываю программу, в IbExpert делаю select count(*) из таблицы, вижу что мусор очистился. Делаю тоже самое в программе, мусор не чиститься. Понимаю, что в программе остались "Заинтересованные транзакции". У меня вопрос, как найти транзакции в моём приложении которые мешают сборке мусора? Я смотрел в таблицы mon$transaction, mon$statements, mon$atachments но ничего нужного не нашёл, может не так смотрел конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 11:27 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
MandarinЯ смотрел в таблицы mon$transaction, ... но ничего нужного не нашёл как это? 1. я не очень понимаю, зачем "чистить мусор" в Embedded. У вас что, приложение держит много транзакций? 2. версии чистятся только когда они становится мусором. То есть, например, в "монопольном" режиме update commit - если других транзакций нет, предыдущие версии стали мусором start trans select count - тут мусор соберется. Если параллельно с той транзакцией, которая делала update, есть еще какая-то активная read/write транзакция, и она активна на момент select count, то версии в мусор не превращаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 11:34 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
Зачем ты всё это делаешь? Стандартные режимы чем-то не устраивают? Если да, то чем не устраивает gfix sweep? Mandarin> Делаю тоже самое в программе, мусор не чиститься. Mandarin> Понимаю, что в программе остались "Заинтересованные транзакции". Какие компоненты доступа, как настроены транзакции? > Я смотрел в таблицы mon$transaction, mon$statements, mon$atachments > но ничего нужного не нашёл, может не так смотрел конечно. Показывай, как смотрел. delete from mon$transactions пробовал? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 11:37 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
Ой, у него ещё и Ембеддед. Как всё запущено. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 11:38 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
kdvMandarinЯ смотрел в таблицы mon$transaction, ... но ничего нужного не нашёл как это? 1. я не очень понимаю, зачем "чистить мусор" в Embedded. У вас что, приложение держит много транзакций? 2. версии чистятся только когда они становится мусором. То есть, например, в "монопольном" режиме update commit - если других транзакций нет, предыдущие версии стали мусором start trans select count - тут мусор соберется. Если параллельно с той транзакцией, которая делала update, есть еще какая-то активная read/write транзакция, и она активна на момент select count, то версии в мусор не превращаются. 1. Чистить мусор в Embed нужно, т.к. он появляется и сильно замедляет работу :). приложение держит много активных транзакций, т.к. это большое сложное приложение с множеством модулей, которые работают с одной БД. 2. Вы говорите про транзакции которые работают с той же таблицей которую мне надо почистить, или вообще транзакции в БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 11:39 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамЗачем ты всё это делаешь? Стандартные режимы чем-то не устраивают? Если да, то чем не устраивает gfix sweep? Mandarin> Делаю тоже самое в программе, мусор не чиститься. Mandarin> Понимаю, что в программе остались "Заинтересованные транзакции". Какие компоненты доступа, как настроены транзакции? > Я смотрел в таблицы mon$transaction, mon$statements, mon$atachments > но ничего нужного не нашёл, может не так смотрел конечно. Показывай, как смотрел. delete from mon$transactions пробовал? Делаю я это zlk того чтобы восстановить первоначальную скорость работы запросов, т.к. из-за замусоривания запросы работают медленнее. gfix sweep очень даже подходит НО требует монопольного доступа к БД, а это очень сложно организовать У меня в программе предусмотрел backup/restor при старте, с определённым интервалом, в этом случае мусор чистить, но на дохлых компьютерах это может занимать 10-15 минут и пользователи отказываются ждать. Надо настроить сборку в фоновом режиме. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 11:42 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
Mandarinиз-за замусоривания запросы работают медленнее. Вообще-то нет. Обычно оно не оказывает заметного влияния на скорость запросов. Разве что в случаях когда из-за недостатка места на страницах идёт сильная фрагментация записей. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 11:46 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovMandarinиз-за замусоривания запросы работают медленнее. Вообще-то нет. Обычно оно не оказывает заметного влияния на скорость запросов. Разве что в случаях когда из-за недостатка места на страницах идёт сильная фрагментация записей. К гадалке не ходи, как говорится :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 11:49 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
Mandaringfix sweep очень даже подходит НО требует монопольного доступа к БДКонечно не требует ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 12:10 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovMandarinиз-за замусоривания запросы работают медленнее. Вообще-то нет.Вообще-то ты снова пальцем в небо тычешь. Ибо сборка мусора во время выполнения запросов таки не ускоряет выполнение оных. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 12:12 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
MandarinУ меня вопрос, как найти транзакции в моём приложении которые мешают сборке мусора?Любая длительная тр-ция под подозрением. Кроме read committed read only. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 12:14 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
Mandarinприложение держит много активных транзакций, т.к. это большое сложное приложение с множеством модулей, которые работают с одной БД. есть же правила - длинную транзакцию делать read read_committed rec_version, она не будет "удерживать версии". А если не хотите исправлять "много активных транзакций", то тогда не надо страдать по поводу мусора. Одно следует из другого - исправляете транзакции, пропадает проблема мусора. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 12:15 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
Mandarin2. Вы говорите про транзакции которые работают с той же таблицей которую мне надо почистить, или вообще транзакции в БД? причём тут таблица. Любая активная транзакция за исключением RC RO удерживает сборку мусора, если только он не порождён раньше этой транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 12:24 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустамdelete from mon$transactions пробовал? это ты что-то попутал, такой запрос не отработает в принципе. Грохать можно только активные запросы и подключения. Для транзакций такого не делали. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 12:31 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
Симонов Денис> это ты что-то попутал, такой запрос не отработает в принципе. Симонов Денис> Грохать можно только активные запросы и подключения. Симонов Денис> Для транзакций такого не делали. Действительно. Простите великодушно, попутал, старею. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 19:13 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
kdvMandarinприложение держит много активных транзакций, т.к. это большое сложное приложение с множеством модулей, которые работают с одной БД. есть же правила - длинную транзакцию делать read read_committed rec_version, она не будет "удерживать версии". А если не хотите исправлять "много активных транзакций", то тогда не надо страдать по поводу мусора. Одно следует из другого - исправляете транзакции, пропадает проблема мусора. Хватай специалиста!!! Держи его :) Вот золотой человек! :) Спасибо! То, что нужно! З.Ы. Дайте ему премию :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2018, 09:16 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
Mandarin, неужели исправил? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2018, 09:17 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
Симонов Дениснеужели исправил? Скорее замёл под коврик названным костылём. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2018, 12:32 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
MandarinХватай специалиста!!! Держи его :) Вот золотой человек! :) Спасибо! То, что нужно! З.Ы. Дайте ему премию :)kdv сам выдает премии. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2018, 16:22 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
Симонов ДенисMandarin, неужели исправил? Исправил. Как посоветовал kdv я поменял параметры долгоиграющей транзакции и сборка мусора начала работать после select count(*) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2018, 20:27 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovСимонов Дениснеужели исправил? Скорее замёл под коврик названным костылём. Спасибо за критику :) именно она не даёт расслабиться и даёт стимул двигаться в перёд :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2018, 20:29 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
11.09.2018 20:27, Mandarin пишет: > Исправил. Как посоветовал kdv я поменял параметры долгоиграющей транзакции и сборка мусора начала работать после select count(*) а зачем ты держишь эту транзакцию? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2018, 16:42 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
Мимопроходящий, ну а чего тут непонятного, человеку хочется недофетченные курсоры держать, чтобы пользователи не ждали пока в грид выберется 100500 записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2018, 17:24 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
12.09.2018 17:24, Симонов Денис пишет: > ну а чего тут непонятного, человеку хочется недофетченные курсоры держать, чтобы пользователи не ждали пока в грид выберется 100500 записей. нет уж, пускай он сам скажет зачем ;) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2018, 17:26 |
|
Сборка мусора.
|
|||
---|---|---|---|
#18+
Симонов Денисчеловеку хочется недофетченные курсоры держать, чтобы пользователи не ждали пока в грид выберется 100500 записей. Ну да, фетчить записи в фоновом режиме и отображать их сразу - слишком сложная техника. Тут программист нужен. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2018, 17:27 |
|
|
start [/forum/topic.php?fid=40&msg=39700989&tid=1560981]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 293ms |
total: | 439ms |
0 / 0 |