|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
Симонов Денисвыкинь это срочно!!! Чушь несусветная+100500 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 20:33 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
hvladgstat -r для "плохой" БД покажи и где gstat -h для security2.fdb ?Уже не надо ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 20:34 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
Понял, выкину. Рад что вроде все прояснилось, сам дурак. Но все таки прошу объяснений, что не так?))) При достижении 100000, сортируем в обратном порядке и грохаем первых 50000. Чего он виснет? Неправильный код, может чего не замечаю? ВРоде не так уж и много всего сделать нужно, чтобы на вечно зависнуть ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 20:35 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
Логи такие хранить мне в любом случае нужно. Как это правильно делается? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 20:43 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
offsites, всё не так. 1. Использование COUNT по своей таблицы в ROW-level триггерах (других у нас нет). Который мало того что медленный, так ещё и не надёжен в данном случае. 2. DELETE в INSERT триггере для той же таблицы это уже нечто 3. Потенциально глючная конструкция DELETE FROM table1 NOT IN (SELECT FIRST(1000) * FROM table1). В 2.5 был артефакт со стабильностью курсора ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 20:45 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
offsites, чисти логи по расписанию ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 20:46 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
Симонов Денис, может задам глупый вопрос, но по расписанию это как? Инициировать чистку таблицы с клиента? Типа раз в пол года? Или у сервера есть свои инструменты для этого? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 20:54 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
offsites, ты не знаешь что такое cron в CentOS? Пишешь скрипт скармливаешь его isql и запускаешь по крону. Можно ночером ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 20:59 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
Симонов Денис, понял. Но как то кажется что это не правильно, хотя может и эффективно. Если потребуется базу перенести по какой-то причине, я через год-два забуду что там крон был завязан. Сама база не может об этом думать никак? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 21:02 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
offsites, ускорить и изменить можно легко: 1. Убери триггер на INSERT (он просто не нужен); 2. Триггер на коннект сделай таким: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Не проверял, но думаю, заработает норм. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 21:05 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
offsites, в firebird нету Job'ов Варианты с самоочисткой в триггерах чушь собачья. Начиная с того что ты тупо замедляешь каждый коннект хотя бы своим COUNT ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 21:07 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
YuRockНе проверял, но думаю, заработает норм. С обращением к таблицам мониторинга нормально не заработает. Адрес можно получить из системных переменных. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 21:34 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
получать первый попавшийся IP адрес пользователя это конечно умно ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 21:39 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovС обращением к таблицам мониторинга нормально не заработает. Адрес можно получить из системных переменных. Ну это вообще бред, а не запрос: Код: sql 1.
Он неизвестно что возвращает, а не адрес текущего пользователя. Я просто скопировал. Зря. Короче, offsites , вот переделанный вариант триггера на коннект. Если хочешь - пробуй: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 21:46 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
Я не уверен как сервер реагирует на попытку удаления уже удалённой записи. Если как на обычный конфликт обновления - будут неприятности. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 21:51 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
offsites new.eip = (SELECT FIRST 1 MON$REMOTE_ADDRESS FROM MON$ATTACHMENTS); японский городовой... Это тебе еще повезло, что у тебя не 50-100 активных коннектов. Срочно переделать на RDB$GET_CONTEXT('SYSTEM', 'CLIENT_ADDRESS'). Про after insert уже сказали, оно и есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 21:52 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
YuRock, обязательно попробую, спасибо!) Я завтра вечером к написанию кода приступлю, сейчас просто отключил триггер, посмотрю это ли было единственной проблемой. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 21:53 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
YuRockSELECT FIRST 1 MON$REMOTE_ADDRESS FROM MON$ATTACHMENTS еще один. Ребята, запомните, что обращение к mon$ из базы данных, из любого триггера или процедуры, срабатывающих регулярно, будет в геометрической прогрессии сажать производительность при увеличении числа пользователей. Поэтому обращение к mon$ следует допускать только извне, и грубо говоря, не чаще 1 раза минут в 30. И то, предварительно надо делать замер по времени выполнения первого обращения к mon$ при максимальном кол-ве юзеров. Оно может нескольких минут достигать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 21:57 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЯ не уверен как сервер реагирует на попытку удаления уже удалённой записи. Если как на обычный конфликт обновления - будут неприятности. Да. Впрочем, у автора эта проблема и раньше была. Значит, надо либо WHEN ANY пробовать добавлять, либо в клиента переносить. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 22:02 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
kdvYuRockSELECT FIRST 1 MON$REMOTE_ADDRESS FROM MON$ATTACHMENTS еще один Я ж говорю, что скопировал это, не глядя Скопировал отсюда: 21544117 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 22:04 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
YuRock, 90% раньше автор вообще налетал на стабильный курсор, который и вводил базу в полный ступор. Впрочем и без этого код был полным ужасом. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 22:13 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
Симонов Денис90% раньше автор вообще налетал на стабильный курсор, который и вводил базу в полный ступор. Нет, его DELETE IN всего лишь должно было удалить из таблицы вообще все записи. Это не INSERT SELECT. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2018, 22:15 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
Мне кажется мягко говоря странным существование базы без регламентных заданий, выполняющихся шедулером. Это означает, для начала, отсутствие регулярных бэкапов. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 10:06 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
и так, шо мы имеем с гуся... наглядное подтверждение библейской притчи об обезьяне с гранатой. аминь. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 10:39 |
|
Зависание Firebird на базе 50 МБ
|
|||
---|---|---|---|
#18+
YuRockКороче, offsites , вот переделанный вариант триггера на коннект. Если хочешь - пробуй: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Тут DELETE будет срабатывать каждый раз. Не критично, но не совсем то, что было у автора. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 11:50 |
|
|
start [/forum/topic.php?fid=40&msg=39669937&tid=1561053]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 133ms |
0 / 0 |