|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Всем зрасте! :-) Всё началось с хорошего стеба и глума на мюскулистами. Потом таки решил проверить FB. По порядку. Имеем: - сервер Wi-V6.3.7.33374 FB 3.0 - БД на всего-то 4 232 810 записей. Запускаю в IB-Experte простенький запрос select count(*) from ТАБЛЯ Получаю: PLAN (ТАБЛЯ NATURAL) ------ Информация о производительности ------ Время подготовки запроса = 0ms Время выполнения запроса = 2s 953ms Переписываю запрос: select count(ID) from ТАБЛЯ На поле ID есть свежесозданный уникальный индекс. Получаю: PLAN (ТАБЛЯ NATURAL) ------ Информация о производительности ------ Время подготовки запроса = 0ms Время выполнения запроса = 3s 156ms PS: Вини - отдельный респект и уважуху передайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 10:53 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
select count(1) что покажет? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 11:00 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Di_LIne, ну ты же не первый день на форуме. Знаешь Firebird не умеет делать Only Index Scan. Поэтому с NATURAL всё очевидно. count(*) быстрее count(ID), потому что во втором случае требуется распаковка записей. В первом просто считаются записи по смещениям. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 11:03 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Фигасе, явление блудного сына... :) P.S. Винни нынче мишка и трезвый. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 11:13 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Симонов Денис ну ты же не первый день на форуме. Знаешь Firebird не умеет делать Only Index Scan. Поэтому с NATURAL всё очевидно. Мапед не мой, а отцов разрабов, а я только объяву повесил. Для меня - не очевидно такое поведение FB. Как для кляузы WHERE индекс найти и устроить скан по нему - так FB всё умеет, а тут - нет... За 2 десятка лет можно было и подрихтовать, что б ползатели по таблям не впадали в шок. PS: Говорят мускулисты признали багом указанное поведение при select count(*) from и внесли в баг-лист. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 11:15 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
wadman select count(1) что покажет? План PLAN (S_WORD NATURAL) ------ Информация о производительности ------ Время подготовки запроса = 15ms Время выполнения запроса = 2s 454ms ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 11:17 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам Фигасе, явление блудного сына... :) P.S. Винни нынче мишка и трезвый. - И тебе привет, Рустам! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 11:18 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
- Надеюсь ковидло вас всех обошло стороной. Если чё - я привился Спутником-V, 1 марта была вторая доза. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 11:27 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Di_LIne, вот только у мускулистов OIT есть. У нас его отродясь не было. В Firebird чтобы узнать указывает ли ключ индекса на существующую запись обязательно надо обязательно прочитать страницу данных. Поэтому говорить что это баг нельзя. Просто нет такого метода доступа и всё. Вот тут http://www.ibase.ru/dataaccesspaths/ всё подробно описано. Да в 3.0 появилось кое-что новое (HASH JOIN, буферизация записей для оконных функций), но в целом статья актуальна. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 11:30 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Di_LIne> За 2 десятка лет можно было и подрихтовать Там не подрихтуешь, это же не баг. Индексного покрытия в FB нет (вроде как), и я даже не знаю, есть ли тикет в трекере... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 11:33 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Di_LIne> Если чё - я привился Спутником-V С ним всё в порядке? P.S. Чак Норрис заболел короновирусом. У короновируса большие проблемы... (с) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 11:34 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
to ALL В FB всё как всегда: - 2 страницы будут доказывать, что сделать этого категоричеЦки низя. - 3-я стр. - срачь всех со всеми - 4-я - начнут думать как исправить. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 11:48 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Симонов Денис Вот тут http://www.ibase.ru/dataaccesspaths/ всё подробно описано. Да в 3.0 появилось кое-что новое (HASH JOIN, буферизация записей для оконных функций), но в целом статья актуальна. Пасип! Читаю.... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 11:53 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Di_LIne, ни кто не говорит что это сделать нельзя. Обсуждение этой темы было. Вариантов 2: 1. добавить в ключи индекса два номера транзакции: создавшую ключ и удалившую. Это считается слишком дорогим удовольствием 2. Сделать так как в Postgres, через карту видимости. То есть IOS если и будет, то только для таблиц которые меняются относительно редко. Пока ни того ни другого нет. Видишь ли багом это можно было бы считать, если бы Firebird принципиально умел Index Only Scan, но по какой-то причине не использовал его в конкретном запросе. А раз не умеет, то это не баг. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 11:56 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
informix по разному считает: SELECT COUNT(id) FROM table; SELECT COUNT(*) FROM table; Первый честно сканирует. Даже не смотря, что поле not null. (800 тыс, >3 сек) Второй - по индексу, мгновенно. (800 тыс, < 1с). Микросекунд в софте нет. БД через впн на производстве. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 12:05 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
wadman> Второй - по индексу, мгновенно. (800 тыс, < 1с). Ну если там есть индексное покрытие (я не в курсе) - неудивительно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 13:05 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Хотя опять же, странно, что его нет по PK. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 13:06 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Di_LInePS: Говорят мускулисты признали багом указанное поведение при select count(*) from и внесли в баг-лист. Внести-то просто, мы посмотрим когда они его оттуда вынесут. Ибо ихняя ИннаДБ тоже версионная. Хотя с другой стороны мускулистам не привыкать к возврату неправильного значения... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 13:12 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
wadman, у Информикса версионность есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 14:24 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Симонов Денис1. добавить в ключи индекса два номера транзакции: создавшую ключ и удалившую. Это считается слишком дорогим удовольствием этот вариант забраковали, даже просто id транзакции от версии в ключе - тоже забраковали. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 14:27 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
kdv, я помню. Остаётся второй вариант. Сделать как у Постргеса с присущими ему ограничениями. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 14:31 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
ничего не забраковывали. Просто все варианты надо оценивать со всех сторон. А для этого надо сделать хотя бы грубый черновик реализации. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 14:33 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Я думал вариант с номерами тразакций для отдельного типа индексов (типа c доп. ключевым словом covering при создании) не забраковали. Видимо, то ли делать некому/некогда, то ли тестировать особенно не на чём. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 15:06 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
dimitr, я помню что Мата Хари Энн Харрисон оценивала этот вариант и высказалась о нем негативно. В любом случае при добавлении номеров транзакции разбухнут индексы, и это даст отрицательный эффект на производительность вообще. Стоит-ли count(field) таких жертв? Сильно сомневаюсь. В каких еще случаях мог бы быть нужен номер транзакции в ключе индекса? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 15:20 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, ну вот разве что "отдельный тип индексов" - это да. Включая индексы, которые индексируют только часть таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 15:22 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
я предлагаю щотчег! версионно-инкрементный/декрементный! надо кому count(*)? дык вот оно, уже посчитано! [стёб] Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 15:32 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
kdv> В каких еще случаях мог бы быть нужен Ну вот опять, мочи мочало, начинай сначала. Во всех случаях, когда хочется/достаточно получить данные из индекса, а не из записи... Речь же не только о Count/Exists и т.д. Но это по дефолту для всех индексов я бы это не включал, пожалуй. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 16:05 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Мимопроходящий я предлагаю щотчег! версионно-инкрементный/декрементный! надо кому count(*)? дык вот оно, уже посчитано! И настанет эра светлой бездырочной нумерации! МП тебе тошь - персональный привет и респект! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 16:17 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, kdv, dimitr - да обошли вас лавины и ковидло! (самайлик с пивом) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 16:22 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
23.03.2021 16:17, Di_LIne пишет: > И настанет эра светлой бездырочной нумерации! > МП тебе тошь - персональный привет и респект! где пропадал-то всё это время? изменял нам поди? © Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 16:27 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Мимопроходящий 23.03.2021 16:17, Di_LIne пишет: > И настанет эра светлой бездырочной нумерации! > МП тебе тошь - персональный привет и респект! где пропадал-то всё это время? изменял нам поди? © - Меня даже Мюскулем соблазняли! (Ц) . . У П02 на форуме оттягиваюсь, после закрытия Джуждем. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 16:34 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Т.е. не изменял, а продолжает изменять. :) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 16:37 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
//0FFF Гаджимурадов Рустам Т.е. не изменял, а продолжает изменять. :) С августа 2018 по март 2021 - 100 тыщ постов отметил. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 16:48 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
kdv у Информикса версионность есть? У нас трехвезнка, потому глубоко копать нужды не было. Ощущение, что тут только анси https://www.ibm.com/support/knowledgecenter/SSGU8G_14.1.0/com.ibm.sqls.doc/ids_sqs_0030.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 17:07 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Di_LIne Всем зрасте! :-) PS: Вини - отдельный респект и уважуху передайте. Здарова :) Рад видеть :) Я здесь возбухаю периодицки когда проснусь вовремя :) От выруса я тоже привился, вторая была 17 февраля. Но умудрился попасть в цепкие лапы отечественной медицины 1 марта по поводу, как оказалось, гриппера. Чудом вырвался из больнички не успев подцепить ни тиф ни сифилис. В смысле натурально сбежал на третий день. Как говорится - как бы попасть в ту страну, про которую рассказывают по телевизору. Язык чешется рассказать в деталях, но тему засирать неохота :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 18:53 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Старый плюшевый мишка, рад видеть тебя! И хорошо всё, что хорошо заканчивается. Хоть через мосты прыгать, хоть из больнички свинтится. Старый плюшевый мишка Язык чешется рассказать в деталях, но тему засирать неохота :) нешта и топик "Тяпница" враги изничтожили? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 19:18 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Di_LIne нешта и топик "Тяпница" враги изничтожили? Да выступление с бухты-барахты будет выглядеть как банальное нытьё, такие вещи хорошо идут репликой в тему разговора :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 20:07 |
|
Косяк или Почему так?
|
|||
---|---|---|---|
#18+
Мимопроходящий версионно-инкрементный/декрементный! Страшно, нафиг ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 22:52 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1560082]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
475ms |
get tp. blocked users: |
1ms |
others: | 270ms |
total: | 831ms |
0 / 0 |