powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Перестройка индексов в Firebird
25 сообщений из 142, страница 2 из 6
Перестройка индексов в Firebird
    #39218273
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

Я так понял, что есть тестовый нормальный сервер.
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218274
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochкак поведет себя embedded сервер, когда он OIT "подвинет" - при выключении
приложения ( и соотв. смерти транзакции ), или при следующем запуске?
Ни то ни другое. Подвинуть может только sweep, а он стартует только при старте транзакции.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218278
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterЯ так понял, что есть тестовый нормальный сервер.

Но к нему нет нормального DBA, что и превращает данный топик в очередное УГ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218280
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochDarkMaster,

а толку с gbak'a на embedded 2.1 ?

Дык тут либо Service API, либо disconnect в приложении + gbak + connect приложения. В любом случае - must have.
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218284
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NightWizardПрочитал в документации, что после массового удаления/добавления записей необходимо вручную инициировать пересчет индексов

Телега впереди лошади.

1) перед массовым и *монопольным* добавлением/изменением записей *бывает удобно* (чисто для скорости и только для неё, никаих необходимо и близко не стоит) отключить индексы. После этого, действительно, индексы *необходимо* включать - но вовсе не "после массовой вставки", а примитивно "после выключения индексов" (на монопольную операцию, если решили так делать).

2) после массового удаления/изменения записей (сравнимого по кол-ву с общим размером таблицы) образуется непропорционально много мусора. Его желательно - н не необходимо - почистить недожидаясь автоматической регулрно авто-сборки. Но индексы для этого трогать ЕМНИП не нужно, select count(*) from table1 вполне справится. Можно, конечно, и пересчётом индексов того-же добиться.... Это предполагая, что вы не отключали обычную сборку мусора по умолчанию
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218288
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterArioch,

Я так понял, что есть тестовый нормальный сервер.

...на котором "котлдеты не подгорают"

Если погорают - то конечн нафиг встройку, подключаться ibexpert'ом и смотреть всё интересное прямо в GUI
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218291
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovAriochкак поведет себя embedded сервер, когда он OIT "подвинет" - при выключении
приложения ( и соотв. смерти транзакции ), или при следующем запуске?
Ни то ни другое. Подвинуть может только sweep, а он стартует только при старте транзакции.

...ага, вот оно, что происходит, скорее всего

NightWizardто при последующем запуске и подключении нужно опять делать перестройку всех индексов - а это приводит к тому, что перестройка всех индексов занимает более 225 сек, что очень плохо

...ну а потом уже и индексы перестраиваются, после уборки
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218294
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо, топег - фейк.
аффтар - выбегалло.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218295
NightWizard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AriochNightWizardПрочитал в документации, что после массового удаления/добавления записей необходимо вручную инициировать пересчет индексов

Телега впереди лошади.

1) перед массовым и *монопольным* добавлением/изменением записей *бывает удобно* (чисто для скорости и только для неё, никаих необходимо и близко не стоит) отключить индексы. После этого, действительно, индексы *необходимо* включать - но вовсе не "после массовой вставки", а примитивно "после выключения индексов" (на монопольную операцию, если решили так делать).

2) после массового удаления/изменения записей (сравнимого по кол-ву с общим размером таблицы) образуется непропорционально много мусора. Его желательно - н не необходимо - почистить недожидаясь автоматической регулрно авто-сборки. Но индексы для этого трогать ЕМНИП не нужно, select count(*) from table1 вполне справится. Можно, конечно, и пересчётом индексов того-же добиться.... Это предполагая, что вы не отключали обычную сборку мусора по умолчанию

Сборку мусора не отключал. Если не делать ALTER INDEX idx_Table1 ACTIVE, то даже при старте приложения (а это ведь и старт Embedded сервера по сути) медленно выполняются запросы - а какой мусор может быть у только что запущенного сервиса ?
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218296
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovAriochкак поведет себя embedded сервер, когда он OIT "подвинет" - при выключении
приложения ( и соотв. смерти транзакции ), или при следующем запуске?
Ни то ни другое. Подвинуть может только sweep, а он стартует только при старте транзакции.

но так даже лучше


запустили программу, убедились что все быстро, остановили программу, скопировали файл БД на полноценный сервер как эталон "всё хорошо".
запустили программу еще раз, погоняли час-два-три до тормозов, остановили и скопировали файл БД как эталон "всё плохо"

потом искать разницу ( !! не подключаясь к ним сервером, а исключительно read-only утилитами типа GStat, ibexpert database inside, IBSurgeon DBInfo http://ib-aid.com/en/ibsurgeon-free-tools/ !! )
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218297
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NightWizardкакой мусор может быть у только что запущенного сервиса ?

Мусор - он в БД хранится и к процессам отношения не имеет. Особенность версионников.
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218303
NightWizard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AriochDimitry Sibiryakovпропущено...

Ни то ни другое. Подвинуть может только sweep, а он стартует только при старте транзакции.

но так даже лучше


запустили программу, убедились что все быстро, остановили программу, скопировали файл БД на полноценный сервер как эталон "всё хорошо".
запустили программу еще раз, погоняли час-два-три до тормозов, остановили и скопировали файл БД как эталон "всё плохо"

потом искать разницу ( !! не подключаясь к ним сервером, а исключительно read-only утилитами типа GStat, ibexpert database inside, IBSurgeon DBInfo http://ib-aid.com/en/ibsurgeon-free-tools/ !! )

тормоза спустя две недели после работы софта начинаются примерно... Это осложняет ситуацию. Ладно, попробую как-нибудь сдампить "плохую" базу и ее посммтреть, видимо по-простому отделаться не выйдет ((
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218306
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nightwizard> Ладно, попробую как-нибудь сдампить "плохую" базу
у поциента mySQL...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218320
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NightWizardтормоза спустя две недели после работы софта начинаются примерно...Сколько там еще скелетов в шкафу? потом еще окажется что "сервер" это ноут на проце "атом" или распбери пи какой...
NightWizardвидимо по-простому отделаться не выйдетДа, придется ознакомиться с документацией.
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218329
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот кстати...

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

А за сборку мусорных версий или несборку отвечает флаг no_garbage_collect, который может использоваться и в обычном коннекте в библиотеках прямого доступа (т. е. в приложениях, например для ускорения выборок в некоторых случаях).
http://ibase.ru/ibmyths/


http://www.firebirdsql.org/manual/gfix-housekeeping.html
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218334
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NightWizardвидимо по-простому отделаться не выйдет

Почему ?

NightWizardтормоза спустя две недели после работы софта начинаются примерно.

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

Другой вопрос, что ещё может исподволь накапливаться, спрятав одну проблему вместо исследования и решения - не подложите ли кому-нибудь грабли, на которые через несколько лет кто-то наступит?

Впрочем, судя по отсутсвию резервного копирования - грабли в вашем случае никого не пугают
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218337
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochесли отключение сборки делалось не через настройку БД
Никакой настройкой БД сборку мусора не отключить. В принципе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218348
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NightWizardтормоза спустя две недели после работы софта начинаются примерно
NightWizardв каждую такую табличку примерно 10 записей в 20 секунд добавляется - и сутками работает все

Предположим, что очередные наблюдения во все таблицы заносятся одной транзакцией (которая, будем надеяться, потом закрывается без retaining). А не по отдельной транзакции на каждую новую строку каждой новой таблицы.

14*24*3600*(10/20) = 604800

NightWizardВ итоге, при размере таблицы примерно в 700 000 записей

Хммм....

Ariochпосле массового удаления/изменения записей ( сравнимого по кол-ву с общим размером таблицы)
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218352
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Arioch http://www.firebirdsql.org/manual/gfix-housekeeping.html

Disabling Automatic Sweeping

If you set the sweep interval to zero then automatic sweeping will be disabled. This implies that there will be no automatic housekeeping done so your database performance will not suffer as a result of the processing requirements of the automatic sweep.
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218353
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochIf you set the sweep interval to zero then automatic sweeping will be
disabled.
Какое слово из этого ты прочёл как "сборка мусора"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218361
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

авторThe sweep facility runs through the database and gets rid of old rows in tables that are out of date.
авторFirebird will automatically sweep through the database and remove the remnants of rolled back transactions
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218362
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
....эта статья, к сожалению, ничего не говорит про BLOB'ы и их handles
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218364
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Arioch!

сборка мусора == garbage collection
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218372
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

автор Garbage , for want of a better name, is the detritus that Firebird leaves around in the database after a rollback has been carried out.

авторManual Garbage Collection

If automatic sweeping has been turned off, or only runs rarely because of the sweep interval setting, the DBA can manually force a sweep to be performed. The command to carry out this task is:

linux> gfix -sweep my_employee
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218373
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch, отдохни уже. ты устал.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 142, страница 2 из 6
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Перестройка индексов в Firebird
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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