powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Перестройка индексов в Firebird
25 сообщений из 142, страница 4 из 6
Перестройка индексов в Firebird
    #39218484
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch???
Насколько я помню, файловый кэш не работает на RAW разделах, где аффтар держит базу.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218485
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Логично, для того они и придуманы.....

Тогда - да, жуткое бутылочное горло.
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218493
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochа именно сборку мусора вполне определенного типа.
Не угадал. Он двигает застрявшие счётчики транзакций. Всё. Это его единственно назначение.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218495
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

а какой смысл это узнавать. У него совсем другой запрос
Код: sql
1.
SELECT FIRST 1 ID, I_TIMESTAMP, I_OFFSET FROM Table1 WHERE I_TIMESTAMP >= :dt ORDER BY I_TIMESTAMP ASC;



и план получается с навигацией по индексу, но не самый оптимальный
Код: plaintext
PLAN (TABLE1 ORDER IDX_TABLE1 INDEX (IDX_TABLE1))

было бы быстрее если план был бы таким
Код: plaintext
PLAN (TABLE1 ORDER IDX_TABLE1)
но 2.x это не умеет
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218500
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

а я вообще не гадаю.
я читаю и цитирую вашу документацию

Fb Manual Rolled back garbage is never automatically cleared out.

Firebird will automatically sweep through the database and remove the remnants of rolled back transactions and this has two effects

Вот ваша пользовательская документация - она возможно и не угадала. Но это вопрос к документации, а не к пользователям
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218503
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochа я вообще не гадаю.
я читаю и цитирую вашу документацию
Если тебе хочется чтобы "the remnants of rolled back transactions" были мусором - это твои
проблемы. В реальности движка это всего лишь счётчик в заголовке и бит в TIP.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218507
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЕсли тебе хочется

не мне, а официальной документации FB, кторую я тут - ежинственный из всех - цитирую.

Dimitry SibiryakovВ реальности движка это всего лишь счётчик в заголовке и бит в TIP

Вполне возможно. 19073211

PS. И заблокировав sweep мы тем самым блокируем счётчик OIT и блокируем сборку rollback-мусора между OIT и Next Transaction, так ?
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218510
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochИ заблокировав sweep мы тем самым блокируем счётчик OIT и блокируем сборку
rollback-мусора между OIT и Next Transaction, так ?
Хороший вопрос. Не факт. Проверка живости транзакции выполняется при любом чтении.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218518
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Тогда почему sweep необходим ?
Либо автоматический свип, либо ручной, либо замена БД на другой новый файл через B&R - почему нужна?

Документация однозначно уверяет, что rollback-garbage перестает собираться при заблокированном sweep.
У меня нет причин ей не доверять.
Но я вполне допускаю, что документация могла устареть и свип больше не необходм. Но ещё раз - вопрос в данном случае не к пользователю, а к документации.

А по текущей документации получается, что ваша с МП и СД позиция выглядит - если без шелухи - примерно так: "если сервер принципиально не очищает половину мусора, то очистка мусора все равно работает, просто она наполовину беременная". Также как разработчик ДВС мог бы утверждать, что бензин для работы движка полезен, но не необходим. Ведь с его точки зрения изнутри - всё и без топлива хорошо. Искра идёт, коленвал крутится (стартёром) - значит движок и без топлива работает. Так и тут - с вашей точки зрения "изнутри движка", если половина мусора не собирается, то это не значит что сборка мусора не работает. Ведь "вал крутится". А с точки зрения "снаружи" важно другое. Убирается мусор или нет. И если мусор НЕ убирается, то как именно называлась кнопка, которой сборку забокировали, уже менее важно.
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218525
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упёртый
на своей волне
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218527
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochТогда почему sweep необходим ?
Повторяю медленно: чтобы подвинуть счётчики транзакций. Точка. Других назначений у него нет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218529
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

не каждый rollback требует sweep, а только тот что не превращён сервером в commit. И ещё ни СД, ни DS, ни МП ничего такого не утверждали.
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218533
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисm7m,

а какой смысл это узнавать. У него совсем другой запрос
Код: sql
1.
SELECT FIRST 1 ID, I_TIMESTAMP, I_OFFSET FROM Table1 WHERE I_TIMESTAMP >= :dt ORDER BY I_TIMESTAMP ASC;



и план получается с навигацией по индексу, но не самый оптимальный
Код: plaintext
PLAN (TABLE1 ORDER IDX_TABLE1 INDEX (IDX_TABLE1))

было бы быстрее если план был бы таким
Код: plaintext
PLAN (TABLE1 ORDER IDX_TABLE1)
но 2.x это не умеет

вот почти для этого и надо

чтобы узнать а стоит ли менять в запросе план с ORDER на SORT

зы. я видел какой у него запрос
хотя я может и не прав в своем "желании"
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218536
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

ну попробовать приписать +0 в ORDER BY конечно можно, хотя не факт что будет лучше
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218541
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochИ заблокировав sweep мы тем самым блокируем счётчик OIT и блокируем сборку rollback-мусора между OIT и Next Transaction, так ?Нет
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218542
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochДокументация однозначно уверяет, что rollback-garbage перестает собираться при заблокированном sweep.OMG
Где ты это прочитал ?
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218606
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochА по текущей документации получается, что ваша с МП и СД позиция выглядит - если без шелухи - примерно так: "если сервер принципиально не очищает половину мусора, то очистка мусора все равно работает, просто она наполовину беременная". Также как разработчик ДВС мог бы утверждать, что бензин для работы движка полезен, но не необходим. Ведь с его точки зрения изнутри - всё и без топлива хорошо. Искра идёт, коленвал крутится (стартёром) - значит движок и без топлива работает. Так и тут - с вашей точки зрения "изнутри движка", если половина мусора не собирается, то это не значит что сборка мусора не работает. Ведь "вал крутится". А с точки зрения "снаружи" важно другое. Убирается мусор или нет. И если мусор НЕ убирается, то как именно называлась кнопка, которой сборку забокировали, уже менее важно.Поздравляю тебя, Шарик, ты - балбес.(c)

неправильное сравнение, лучше сравнить с глушителем и его отсутствием.

Автору топика, архиох-а слушать надо ОЧЕНЬ критически, у него свое понимание доки, альтернативное.

по сабжу базу перенести(утилитой dd или b/r gbak-ом) на нормальный том с ext4 и не парить мосх (разрешить ОСи кэшировать файл базы).
увеличить размер страницы до как минимум 8, а лучше 16 кб.
размер кэша страниц разогнать побольше, при мнопольном доступе можно до десятков-сотен тысяч (если коннектов много то несколько тысяч)
память под сортировку увеличить мегабайт эдак соточку хотя бы

что за железо? ССД под базу само собой рекомендуется (разумеется серверный, с требуемым ресурсом под перезапись).
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218608
NightWizard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пока решил:
1) Увеличить размер страницы (на сервере SSD оказался) и кэша
2) Отключить sweep и делать его вручную через Service API по расписанию (надо еще придумать по какому).

Правда тестовую базу я сломал таки, придется сделать "фейковую" 2х недельную.

Симонов Денисm7m,

ну попробовать приписать +0 в ORDER BY конечно можно, хотя не факт что будет лучше

А почему это должно помочь ? я аналогичное видел в FAQ по FB где объяснялась как делать запрос БЕЗ использования индекса. Типа дескать на маленьком наборе записей это быстрее. А мне то как раз нужно, чтоб использовался индекс.
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218609
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevskyчто за железо? ССД под базу само собой рекомендуется (разумеется серверный, с требуемым ресурсом под перезапись).

У ТС Embedded так что про крутое железо скорее всего можно забыть
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218615
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NightWizard......
Симонов Денисm7m,

ну попробовать приписать +0 в ORDER BY конечно можно, хотя не факт что будет лучше

А почему это должно помочь ? я аналогичное видел в FAQ по FB где объяснялась как делать запрос БЕЗ использования индекса. Типа дескать на маленьком наборе записей это быстрее. А мне то как раз нужно, чтоб использовался индекс.

Он используется "дважды" при выборке по условию и при навигации

Однозначно надо чтобы индекс использовался при выборке по условию
А вот польза его использование при навигации для меня не очевидна

зы. Подробнее и точнее может объяснить тот кто знает механику лучше меня
ззы. Попробуй это времени много не займет
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218616
NightWizard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, может ли влиять как-то на производительность запросов тот факт, что используется асинхронный режим записи в базу ?
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218625
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NightWizardПока решил
(-‸ლ)
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218642
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

навигация по индексу должна быть дешевле в этом запросе, потому что есть ограничение на количество строк FIRST 1 , а это значит что достаточно произвести частичное сканирование индекса, и для первого ключа указывающего на существующую запись выдать её и прекратить сканирование. Но это будет эффективней для плана
Код: plaintext
PLAN (TABLE1 ORDER IDX_TABLE1)

Это работало в 1.5, но было сломано в 2.x. Поэтому сейчас другой план, будет ли он эффективней без навигации по индексу сказать не берусь, но однозначно проигрывает плану в 1.5. Починить явной подстановкой плана или +0 это нельзя. Визуально то план может и будет тем же, но работать будет не так. Ибо этот план не раскрывает множество подробностей, видимых в EXPLAIN форме. В 3.0 это починили.
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218692
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисm7m,

навигация по индексу должна быть дешевле в этом запросе, потому что есть ограничение на количество строк FIRST 1 , а это значит что достаточно произвести частичное сканирование индекса, и для первого ключа указывающего на существующую запись выдать её и прекратить сканирование. Но это будет эффективней для плана
Код: plaintext
PLAN (TABLE1 ORDER IDX_TABLE1)

Это работало в 1.5, но было сломано в 2.x. Поэтому сейчас другой план, будет ли он эффективней без навигации по индексу сказать не берусь, но однозначно проигрывает плану в 1.5. Починить явной подстановкой плана или +0 это нельзя. Визуально то план может и будет тем же, но работать будет не так. Ибо этот план не раскрывает множество подробностей, видимых в EXPLAIN форме. В 3.0 это починили.
Спасибо Денис, однако спрашивал не я
зы.по опыту я знаю какая разница во времени выполнения у запросов немного другого вида
(id - PK, doc - FK)
Код: sql
1.
2.
3.
  select * from tbl
  where doc= :doc
  order by id

и
Код: sql
1.
2.
3.
  select * from tbl
  where doc= :doc
  order by id+0


даже когда вытаскивается сотня записей из большой таблицы
(не в пользу первого)
ну по крайней мере на моих данных и моих задачах
вот поэтому у меня и сомнения
ззы. я вижу что у автора FIRST и используется один и тот-же индекс
и поэтому предлагаю(а не настаиваю) попробовать
...
Рейтинг: 0 / 0
Перестройка индексов в Firebird
    #39218865
NightWizard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тему можно считать закрытой. Проблема оказалась в конфигурации тестового сервера. С БД все норм.
...
Рейтинг: 0 / 0
25 сообщений из 142, страница 4 из 6
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Перестройка индексов в Firebird
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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