|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
Arioch??? Насколько я помню, файловый кэш не работает на RAW разделах, где аффтар держит базу. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 17:43 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Логично, для того они и придуманы..... Тогда - да, жуткое бутылочное горло. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 17:45 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
Ariochа именно сборку мусора вполне определенного типа. Не угадал. Он двигает застрявшие счётчики транзакций. Всё. Это его единственно назначение. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 17:51 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
m7m, а какой смысл это узнавать. У него совсем другой запрос Код: sql 1.
и план получается с навигацией по индексу, но не самый оптимальный Код: plaintext
было бы быстрее если план был бы таким Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 17:54 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
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 Вот ваша пользовательская документация - она возможно и не угадала. Но это вопрос к документации, а не к пользователям ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 18:00 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
Ariochа я вообще не гадаю. я читаю и цитирую вашу документацию Если тебе хочется чтобы "the remnants of rolled back transactions" были мусором - это твои проблемы. В реальности движка это всего лишь счётчик в заголовке и бит в TIP. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 18:03 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЕсли тебе хочется не мне, а официальной документации FB, кторую я тут - ежинственный из всех - цитирую. Dimitry SibiryakovВ реальности движка это всего лишь счётчик в заголовке и бит в TIP Вполне возможно. 19073211 PS. И заблокировав sweep мы тем самым блокируем счётчик OIT и блокируем сборку rollback-мусора между OIT и Next Transaction, так ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 18:08 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
AriochИ заблокировав sweep мы тем самым блокируем счётчик OIT и блокируем сборку rollback-мусора между OIT и Next Transaction, так ? Хороший вопрос. Не факт. Проверка живости транзакции выполняется при любом чтении. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 18:15 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Тогда почему sweep необходим ? Либо автоматический свип, либо ручной, либо замена БД на другой новый файл через B&R - почему нужна? Документация однозначно уверяет, что rollback-garbage перестает собираться при заблокированном sweep. У меня нет причин ей не доверять. Но я вполне допускаю, что документация могла устареть и свип больше не необходм. Но ещё раз - вопрос в данном случае не к пользователю, а к документации. А по текущей документации получается, что ваша с МП и СД позиция выглядит - если без шелухи - примерно так: "если сервер принципиально не очищает половину мусора, то очистка мусора все равно работает, просто она наполовину беременная". Также как разработчик ДВС мог бы утверждать, что бензин для работы движка полезен, но не необходим. Ведь с его точки зрения изнутри - всё и без топлива хорошо. Искра идёт, коленвал крутится (стартёром) - значит движок и без топлива работает. Так и тут - с вашей точки зрения "изнутри движка", если половина мусора не собирается, то это не значит что сборка мусора не работает. Ведь "вал крутится". А с точки зрения "снаружи" важно другое. Убирается мусор или нет. И если мусор НЕ убирается, то как именно называлась кнопка, которой сборку забокировали, уже менее важно. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 18:27 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
упёртый на своей волне Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 18:35 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
AriochТогда почему sweep необходим ? Повторяю медленно: чтобы подвинуть счётчики транзакций. Точка. Других назначений у него нет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 18:41 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
Arioch, не каждый rollback требует sweep, а только тот что не превращён сервером в commit. И ещё ни СД, ни DS, ни МП ничего такого не утверждали. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 18:42 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
Симонов Денисm7m, а какой смысл это узнавать. У него совсем другой запрос Код: sql 1.
и план получается с навигацией по индексу, но не самый оптимальный Код: plaintext
было бы быстрее если план был бы таким Код: plaintext
вот почти для этого и надо чтобы узнать а стоит ли менять в запросе план с ORDER на SORT зы. я видел какой у него запрос хотя я может и не прав в своем "желании" ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 18:49 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
m7m, ну попробовать приписать +0 в ORDER BY конечно можно, хотя не факт что будет лучше ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 18:55 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
AriochИ заблокировав sweep мы тем самым блокируем счётчик OIT и блокируем сборку rollback-мусора между OIT и Next Transaction, так ?Нет ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 19:05 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
AriochДокументация однозначно уверяет, что rollback-garbage перестает собираться при заблокированном sweep.OMG Где ты это прочитал ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 19:05 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
AriochА по текущей документации получается, что ваша с МП и СД позиция выглядит - если без шелухи - примерно так: "если сервер принципиально не очищает половину мусора, то очистка мусора все равно работает, просто она наполовину беременная". Также как разработчик ДВС мог бы утверждать, что бензин для работы движка полезен, но не необходим. Ведь с его точки зрения изнутри - всё и без топлива хорошо. Искра идёт, коленвал крутится (стартёром) - значит движок и без топлива работает. Так и тут - с вашей точки зрения "изнутри движка", если половина мусора не собирается, то это не значит что сборка мусора не работает. Ведь "вал крутится". А с точки зрения "снаружи" важно другое. Убирается мусор или нет. И если мусор НЕ убирается, то как именно называлась кнопка, которой сборку забокировали, уже менее важно.Поздравляю тебя, Шарик, ты - балбес.(c) неправильное сравнение, лучше сравнить с глушителем и его отсутствием. Автору топика, архиох-а слушать надо ОЧЕНЬ критически, у него свое понимание доки, альтернативное. по сабжу базу перенести(утилитой dd или b/r gbak-ом) на нормальный том с ext4 и не парить мосх (разрешить ОСи кэшировать файл базы). увеличить размер страницы до как минимум 8, а лучше 16 кб. размер кэша страниц разогнать побольше, при мнопольном доступе можно до десятков-сотен тысяч (если коннектов много то несколько тысяч) память под сортировку увеличить мегабайт эдак соточку хотя бы что за железо? ССД под базу само собой рекомендуется (разумеется серверный, с требуемым ресурсом под перезапись). ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 20:46 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
Пока решил: 1) Увеличить размер страницы (на сервере SSD оказался) и кэша 2) Отключить sweep и делать его вручную через Service API по расписанию (надо еще придумать по какому). Правда тестовую базу я сломал таки, придется сделать "фейковую" 2х недельную. Симонов Денисm7m, ну попробовать приписать +0 в ORDER BY конечно можно, хотя не факт что будет лучше А почему это должно помочь ? я аналогичное видел в FAQ по FB где объяснялась как делать запрос БЕЗ использования индекса. Типа дескать на маленьком наборе записей это быстрее. А мне то как раз нужно, чтоб использовался индекс. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 20:48 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
Ivan_Pisarevskyчто за железо? ССД под базу само собой рекомендуется (разумеется серверный, с требуемым ресурсом под перезапись). У ТС Embedded так что про крутое железо скорее всего можно забыть ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 20:50 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
NightWizard...... Симонов Денисm7m, ну попробовать приписать +0 в ORDER BY конечно можно, хотя не факт что будет лучше А почему это должно помочь ? я аналогичное видел в FAQ по FB где объяснялась как делать запрос БЕЗ использования индекса. Типа дескать на маленьком наборе записей это быстрее. А мне то как раз нужно, чтоб использовался индекс. Он используется "дважды" при выборке по условию и при навигации Однозначно надо чтобы индекс использовался при выборке по условию А вот польза его использование при навигации для меня не очевидна зы. Подробнее и точнее может объяснить тот кто знает механику лучше меня ззы. Попробуй это времени много не займет ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 21:08 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
Кстати, может ли влиять как-то на производительность запросов тот факт, что используется асинхронный режим записи в базу ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 21:09 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
NightWizardПока решил (-‸ლ) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 21:20 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
m7m, навигация по индексу должна быть дешевле в этом запросе, потому что есть ограничение на количество строк FIRST 1 , а это значит что достаточно произвести частичное сканирование индекса, и для первого ключа указывающего на существующую запись выдать её и прекратить сканирование. Но это будет эффективней для плана Код: plaintext
Это работало в 1.5, но было сломано в 2.x. Поэтому сейчас другой план, будет ли он эффективней без навигации по индексу сказать не берусь, но однозначно проигрывает плану в 1.5. Починить явной подстановкой плана или +0 это нельзя. Визуально то план может и будет тем же, но работать будет не так. Ибо этот план не раскрывает множество подробностей, видимых в EXPLAIN форме. В 3.0 это починили. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 22:21 |
|
Перестройка индексов в Firebird
|
|||
---|---|---|---|
#18+
Симонов Денисm7m, навигация по индексу должна быть дешевле в этом запросе, потому что есть ограничение на количество строк FIRST 1 , а это значит что достаточно произвести частичное сканирование индекса, и для первого ключа указывающего на существующую запись выдать её и прекратить сканирование. Но это будет эффективней для плана Код: plaintext
Это работало в 1.5, но было сломано в 2.x. Поэтому сейчас другой план, будет ли он эффективней без навигации по индексу сказать не берусь, но однозначно проигрывает плану в 1.5. Починить явной подстановкой плана или +0 это нельзя. Визуально то план может и будет тем же, но работать будет не так. Ибо этот план не раскрывает множество подробностей, видимых в EXPLAIN форме. В 3.0 это починили. Спасибо Денис, однако спрашивал не я зы.по опыту я знаю какая разница во времени выполнения у запросов немного другого вида (id - PK, doc - FK) Код: sql 1. 2. 3.
и Код: sql 1. 2. 3.
даже когда вытаскивается сотня записей из большой таблицы (не в пользу первого) ну по крайней мере на моих данных и моих задачах вот поэтому у меня и сомнения ззы. я вижу что у автора FIRST и используется один и тот-же индекс и поэтому предлагаю(а не настаиваю) попробовать ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2016, 07:26 |
|
|
start [/forum/topic.php?fid=40&msg=39218608&tid=1562211]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 178ms |
0 / 0 |