powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Обновление БД и селективность индексов
48 сообщений из 48, показаны все 2 страниц
Обновление БД и селективность индексов
    #40054588
Alex Truhin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сегодня столкнулся с забавной проблемой. Нужно было добавить в БД маленькую, простую sp, сделал, проверил работу на 2 клиентах, запустил массовое обновление. Через час звонки о жутких тормозах у некоторых клиентов. Выяснилось, что на примерно 10% баз, firebird сделал жуткий план. Решилось обновлением статистики индексов и пересозданием процедуры.

Не доводилось с таким сталкиваться раньше. Смущает то, что если индексы пересчитать не проблема, то возможность, массово пере компилировать/обновит процедуры отсутствует. Т.е. на разных данных мы получаем по разному работающие sp.
Сталкивался ли кто с такой проблемой? Какие решения? Рекомендации?
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054601
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Truhin,

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

Решение проблемы? Проблема - это когда коннект к базе из приложения бесконечно долго длится.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054603
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17.03.2021 14:50, Alex Truhin пишет:
> Какие решения? Рекомендации?

пользуй CS

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054624
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
Alex Truhin,

перекомпилировать процедуры - чтобы что? Типа, в них план записан? нет, не записан.

Чтобы из кэша её (с неверным планом) выбить.
Можно еще переконнектиться, других вариантов нет.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054627
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше в трекер написать "пересчёт статистики индекса должен выбивать из кэша процедуры,
использующие данную таблицу.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054634
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17.03.2021 15:51, Dimitry Sibiryakov пишет:
> Лучше в трекер написать "пересчёт статистики индекса должен выбивать из кэша процедуры,
> использующие данную таблицу.

+1
дайте две! ©
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054648
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий

17.03.2021 15:51, Dimitry Sibiryakov пишет:
> Лучше в трекер написать "пересчёт статистики индекса должен выбивать из кэша процедуры,
> использующие данную таблицу.

+1
дайте две! ©


пересчет статистики любого индекса
должен выбивать вообще весь кеш метаданных
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054664
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex Truhin
Какие решения? Рекомендации?


Решение: забыть про inner join; использовать left или right join или подзапросы. И нервные клетки сэкономите и никакую статистику не надо будет пересчитывать.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054667
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory

Решение: забыть про inner join; использовать left или right join или подзапросы. И нервные клетки сэкономите и никакую статистику не надо будет пересчитывать.


Мдя...
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054668
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый плюшевый мишка
ggreggory

Решение: забыть про inner join; использовать left или right join или подзапросы. И нервные клетки сэкономите и никакую статистику не надо будет пересчитывать.


Мдя...
Мне кажется, в такой ситуации лучше уже забыть о программировании вообще, как минимум с использованием СУБД.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054711
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor
пересчет статистики любого индекса
должен выбивать вообще весь кеш метаданных
Это "шоб слоники бегали"? Добавили в базу метаданые местечкового "справочничечка", проинитили данными, пересчитали по нему селективности... нафига при этом вышибать ВСЕХ?
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054782
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky
pastor
пересчет статистики любого индекса
должен выбивать вообще весь кеш метаданных
Это "шоб слоники бегали"? Добавили в базу метаданые местечкового "справочничечка", проинитили данными, пересчитали по нему селективности... нафига при этом вышибать ВСЕХ?


цена вопроса вышибания кеша метаданных?
насколько мс просядет производительность первого запроса в серии?
насколько часто добавляют местечковые справочники на клиентских БД?

вместо того, чтобы отделять агнцев от козлищ, бегать по зависимостям и пр. не проще ли прибить всех одним чохом?
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054801
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Старый плюшевый мишка

Мдя...


YuRock
Мне кажется, в такой ситуации лучше уже забыть о программировании вообще, как минимум с использованием СУБД.


А вы просеките тему! ТС написал "Через час звонки о жутких тормозах у некоторых клиентов. Выяснилось, что на примерно 10% баз, firebird сделал жуткий план." . Но он просто не является лицом, оценивающем и принимающем решения и не понимает сути происходящих в его конторе процессов. А на самом деле всё было так: "Через час звонки о жутких тормозах у некоторых клиентов. Выяснилось, что на примерно 10% баз, firebird сделал жуткий план. Еще 10% клиентов из-за возникшей перегруженности суппорта просто до него не дозвонились, послали сиё изделие нах и ушли к конкурентам .". Для ТС это "забавная" проблема. Но я лично ничего забавного здесь не вижу.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054808
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor,

кеш метаданных это не только план запроса, это дерево его выполнения.
Думаю производительность в многопользовательской системе упадёт весьма сильно.

Тем более вышибить его целиком во всех соединениях вообще мало реально.
Пока объект используется из кеша ты его не вышибешь.
Или ты предлагаешь чтобы пересчёт селективности стал практически операцией требующей монопольного доступа?

А ты не думал что ещё существуют планы по автоматическому частичному пересчёту статистики?
А ещё что статистика в будущем может быть сильно расширена и собираться не только для индексов?
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054824
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
pastor,

кеш метаданных это не только план запроса, это дерево его выполнения.
Думаю производительность в многопользовательской системе упадёт весьма сильно.


на первый запрос.
чем это принципиально будет отличаться от первого включения системы?
на 20 мс? перетопчемся.
у меня требования по железу 300 мсек, по реакции для пользователя 2 сек.

на неправильном индексе производительность проседает в десятки раз. и это проблема, о которой сигнализирует ТС.

Тем более вышибить его целиком во всех соединениях вообще мало реально.
Пока объект используется из кеша ты его не вышибешь.
Или ты предлагаешь чтобы пересчёт селективности стал практически операцией требующей монопольного доступа?


у нас пока так, да. как и все изменение метаданных.
в качестве прицела на дробовике обычно используют компас (с)

А ты не думал что ещё существуют планы по автоматическому частичному пересчёту статистики?
А ещё что статистика в будущем может быть сильно расширена и собираться не только для индексов?

кому нужна пересобранная, но неиспользуемая статистика?

мы с Вами, уважаемый, исходим из разных парадигм.
у меня - стадо малообразованных, но трудолюбивых обезъян клиентов на куче относительно однотипных объектов с минимальными требованиями по сохранности данных, но чувствительных к скорости обслуживания и времени простоя.

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

PS. за последние годы у нас несколько сменилась философия программирования.
вместо разгребания зависимостей в большинстве случаев быстрее и НАДЕЖНЕЕ пересобрать/перезапустить все.
железо позволяет.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054836
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor,

У меня статистика не может быть сегодня 10/50, а завтра 50/10.
Статистику надо обновлять до того как новая или обновлённая таблица идёт в продакшн.
А не когда запустили, залили данные. Ой план не тот.

Админа в конторах которые я обслуживаю можно сказать нет, по крайней мере тех, кто шарит в Firebird.
Я разработчик и администратор Firebird в одном лице. Причём в нескольких разных конторах.
Когда происходят проблемы я сам их разруливаю по удалёнке. Местный админ занимается сетью, настройками ОС, рабочими местами, железом, но не Firebird.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054848
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
pastor,

У меня статистика не может быть сегодня 10/50, а завтра 50/10.
Статистику надо обновлять до того как новая или обновлённая таблица идёт в продакшн.
А не когда запустили, залили данные. Ой план не тот.

Админа в конторах которые я обслуживаю можно сказать нет, по крайней мере тех, кто шарит в Firebird.
Я разработчик и администратор Firebird в одном лице. Причём в нескольких разных конторах.
Когда происходят проблемы я сам их разруливаю по удалёнке. Местный админ занимается сетью, настройками ОС, рабочими местами, железом, но не Firebird.


у нас не меньше 300 действующих объектов. в двух предметных областях.
на постоянной поддержке - пара-тройка десятков.
персонально ведется три-пять.

всякая бывает статистика. вменяемая - через месяц после старта объекта.
пересчитываем, перезапускаем всех.

основной тип обновления - перенос данных в чистую эталонную БД следующей версии.

экстренный - апдейтп с текстом пары-тройки процедур. с типовым обновлением в ближайшем окне.


прогнать стадо слоников быстрее и дешевле :), чем докапываться до каждого червяка.

Апдейт всему! (с)
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054861
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо, что напомнили. Я же хотел винду переставить...
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054863
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я всё пропустил...
про сантиметры было уже?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054886
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий

я всё пропустил...
про сантиметры было уже?


про слоников. они вне конкуренции.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054910
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисПока объект используется из кеша ты его не вышибешь.

Вообще-то есть способы. Например, "версионный кэш", когда объекты кэша имеют счётчик
ссылок и каждая транзакция в зависимости от уровня своей изоляции получает себе полную
копию кэша (ссылок). В этом случае с глобальным кэшем можно делать всё, что угодно, старые
объекты освободятся автоматически после смерти их пользователей, а новые пользователи
будут использовать новые версии.

И таки да, кэш метаданных можно вообще убить, переложив его функции на обычный страничный
кэш. В этом случае проблема версионности метаданных тоже решится и можно будет избавиться
от костылей типа "нельзя смешивать DDL и DML в одной транзакции".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054945
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory

А вы просеките тему! ТС написал "Через час звонки о жутких тормозах у некоторых клиентов. Выяснилось, что на примерно 10% баз, firebird сделал жуткий план." . Но он просто не является лицом, оценивающем и принимающем решения и не понимает сути происходящих в его конторе процессов. А на самом деле всё было так: "Через час звонки о жутких тормозах у некоторых клиентов. Выяснилось, что на примерно 10% баз, firebird сделал жуткий план. Еще 10% клиентов из-за возникшей перегруженности суппорта просто до него не дозвонились, послали сиё изделие нах и ушли к конкурентам .". Для ТС это "забавная" проблема. Но я лично ничего забавного здесь не вижу.


Я бы посоветовал прежде чем приступать к поучениям просечь вот какую тему. В FB есть два способа прибить план к запросу по получению пересечения множеств гвоздиком, а не строить их объединение и потом обрезать его ножнями по краям. Но этими способами тоже нужно пользоваться с умом, там, где это действительно требуется по двум причинам. Первая и основная - в базе исторически налеплена и используется в необозримых портянках кода, сдуру или для оптимизации некоторых запросов, куча условно полезных индексов (в зависимости от распределения значений в индексе и накладываемых на эти поля запросами условий), просто бесполезных и откровенно вредных. Обычно это касается композитных индексов. От чего у оптимизатора едет крыша. Вторая - оптимизатор, как и всё в этом мире, не идеален, он развивается, как правило, в хорошую сторону, но бывает что некоторые, для большинства разработчиков приложений экзотические, запросы при этом начинает обслуживать хуже. А почему с умом - надо всегда помнить, что сочинять жёсткие планы надо не на пустых таблицах, просто глядючи на структуру, а имея в виду не только прогнозируемые объёмы данных, но и тенденции распределения значений в индексах по мере роста этих объёмов. Оптимальный на голой структуре план при увеличении объёмов на 3-4 порядка может стать так себе, а на 8-10 просто чудовищным. Даже без зависимости от конкретных значений. И при регулярно обновляемой статистике оптимизатор с развязанными руками будет адаптироваться к этим изменениям, в 80-90% случаев именно в смысле оптимизации. Во всяком случае на односегментных индексах с более-менее ровным распределением значений. Односегментных - потому что композит, содержащий уникальное поле, всегда будет с точки зрения существующего подхода к статистике идеальным индексом и оптимизатор будет его тыкать куда ни попадя.

Резюме - вопли "шеф, всё пропало, гипс снимают, клиент уезжает" в 80-90% случаев являются следствием наложения на кривую структуру данных кривых или рискованных индексов и строительства кривых запросов. Я не утверждаю что всегда это из-за того, что разработчик приложения рановато отбросил хвост и слез с дерева, много чего в развитии предметной области либо невозможно предугадать, либо требует неприемлемых затрат времени на стадии предварительного исследования этой области и построения её модели. Долгоживущие большие системы неизбежно рано или поздно превращаются в лоскутные одеяла из заплаток, мешающих друг другу, и наступает момент перетрахивания, по-научному рефакторинга. Оставшиеся 20-10% казусов с "внезапно" возникающими тормозами относятся к случаю - в индексе мульён значений 0 и сотня 1. Когда ищется значение 1, индекс просто конфетка. А вот если карта легла так, что тот же запрос стреляет по 0 - ууууу... Вот в этом случае и приходится прибивать план гвоздиком. А не городить объединения вместо пересечений. Компрене ву?
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054953
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory
А вы просеките тему!
О том и речь. Вы вообще не понимаете, о чем говорите.
Предлагаете лечить ветрянку ампутацией органов, на которых выскочили прыщи. Польза от такого решения будет соответствующая.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054960
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor
у нас не меньше 300 действующих объектов. в двух предметных областях.
на постоянной поддержке - пара-тройка десятков.
персонально ведется три-пять.

всякая бывает статистика. вменяемая - через месяц после старта объекта.
пересчитываем, перезапускаем всех.
У меня таких объектов тысячи на поддержке.
Статистика пересчитывается ежедневно ночью. При любом обновлении - понятно, перекомпиляция всех процедур.
В целом проблем нет.
Но бывают, конечно (я с пол года назад тут похожую тему создавал). Хотелось бы, чтобы пересчет статистики по возможности выбразывал из кэша то, что стало неактуальным и возможно выбросить.
Но не более того. Гораздо хуже будет, если пересчет статистики не отработает.
Но в целом проблем нет. А если случаются - перезапускаем/перекомпиливаем то, что нужно. Но это редчайшие случаи. Несколько раз за годы.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054963
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
.
И таки да, кэш метаданных можно вообще убить,


Вопрос философский.
Когда-то экономили битики, потом мегабайтики.

Время наработки нового кеша не сильно больше отслеживания зависимостей/версий и пр.
И гораздо проще в разработке.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054965
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock

Статистика пересчитывается ежедневно ночью.


но зачем Бэрримор?

чисто чтобы убить SSD ишку раньше времени?

у меня в доке про индексы - пресобрать через неделю, через два месяца и через год. и забыть.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054967
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockСтатистика пересчитывается ежедневно ночью.

А некоторые ежедневно ночью целый бэкап-рестор делают, так что не переживай.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054969
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Бэкап - пережиток прошлого, быстрее базу пересоздать! (художественная гиперболизация)
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054970
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor
YuRock

Статистика пересчитывается ежедневно ночью.


но зачем Бэрримор?

чисто чтобы убить SSD ишку раньше времени?

у меня в доке про индексы - пресобрать через неделю, через два месяца и через год. и забыть.
Может, и незачем почти всегда. Не из-за SSD - это, думаю, шутка.
Просто нет механизма контроля новых таблиц и новых данных в таблицах. И леть такое изобретать. Пересчитываю всё - и нормально, после отработки свипа.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054978
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шо вы таки взъелись на эту статистику?!
вон Оракел её в фоне пересчитывает невзирая на лица, и шо?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054986
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторчисто чтобы убить SSD ишку раньше времени?
да там той статистики мизер. тем более типа 1 страница на 1 индекс.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40054994
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DS> А некоторые ежедневно ночью целый бэкап-рестор делают

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

То, что он ими делается с переписыванием базы прода.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40055000
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock

Просто нет механизма контроля новых таблиц и новых данных в таблицах. И леть такое изобретать. Пересчитываю всё - и нормально, после отработки свипа.


у нас тоже нет контроля.
нет контроля - нет проблем.

все перенесли, все пересчитали, всех переподключили.
на двух с половиной критичных объектов - мануально
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40055001
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
18.03.2021 16:20, Dimitry Sibiryakov пишет:
ГР>> но что не так с проверочным рестором?
> То, что он ими делается с переписыванием базы прода.

почему не на другом сервере?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40055006
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийпочему не на другом сервере?

"Ну тогда же теряется весь смысл, на рабочем сервере база-то останется старой и будет
тормозить по-старому!"

Да и нет у них никакого мальчика другого сервера...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40055014
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Да и нет у них никакого мальчика другого сервера...
И первого тоже нет.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40055018
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
18.03.2021 18:14, WildSery пишет:
DS>> Да и нет у них никакого мальчика другого сервера...
>
> И первого тоже нет.

а шо, никто не гонял кваку на "сервере"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40055032
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий

шо вы таки взъелись на эту статистику?!
вон Оракел её в фоне пересчитывает невзирая на лица, и шо?

Оракл умеет очень лихо срезать углы во время gather_database_stats,
поэтому это сравнение - не очень подходит. Там и семплирование.
И анализ статистики последних dml по каждой таблице.

Вот Postgres - это действительно тругяга. И еще один +1 фактор парникового эффекта на нашей планете.
Кто еще из dbms делает столько пустой работы по переносу байтиков с одного места в другое? Только Постгрес.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40055034
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
18.03.2021 19:23, mayton пишет:
> Вот Postgres - это действительно тругяга. И еще один +1 фактор парникового эффекта на нашей планете.
> Кто еще из dbms делает столько пустой работы по переносу байтиков с одного места в другое? Только Постгрес.

им можно - они ж учебные
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40056749
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Старый плюшевый мишка
Компрене ву?


Не понял. Не понял зачем вы это написали. Я привел вам аргумент, а вы мне в ответ свою жизнь пересказываете.

YuRock
О том и речь. Вы вообще не понимаете, о чем говорите.
Предлагаете лечить ветрянку ампутацией органов, на которых выскочили прыщи. Польза от такого решения будет соответствующая.


Что вам ветрянка, то мне предсмертные судороги. У нас с вами разные требования к надежности конечного продукта.

P.S. В любом случае мой опыт основывается на полуторке. Возможно в новых версиях оптимизатор стал лучше, посмотрим.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40056754
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory
P.S. В любом случае мой опыт основывается на полуторке. Возможно в новых версиях оптимизатор стал лучше, посмотрим.
А, ну так надо уточнять. На 1.0 и 1.5 я тоже чаще использовал LEFT JOIN по тем же причинам.
Но ведь эти времена давно прошли. Это были просто баги оптимизатора, и их починили.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40056769
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory

Не понял. Не понял зачем вы это написали. Я привел вам аргумент, а вы мне в ответ свою жизнь пересказываете.


Да какую в пень жизнь. Молодой человек, прямым текстом - освойте для начала хинты через +0 и явное указание плана, потом . можно будет и поговорить на тему когда это надо делать и когда не надо и почему, и почему плохо вместо этого применять лефт. Хотя до Вас это, похоже, не дойдёт, раз воспринимаете как беллетристику. Аргумент он привёл.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40056775
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максимально широко использую LEFT JOIN, причем даже не специально, а в большинстве мест логика выборки именно такая.
Что не отменяет использование +0 (1-3% запросов) или даже || '' (один или два раза использовал).

При написании запроса первое что рассматривается - с какой таблицы начать что бы максимально урезать исходный массив данных.

Разработку веду на копии рабочей базы, т.е. данных - много, за 12 лет.

Ранее бывали несколько раз случаи когда при наполнении базы изменялась статистика и менялись планы, в худшую сторону. Приходилось править запросы, как правило тем самым +0 .
При изменении плана от изменения статистики, в лучшую сторону обычно никто не жалуется, поэтому такие случаи, если они были, остаются незамеченными.

Пересчетом статистики не занимаюсь.
Бэкап-рестор базы, с заменой исходной, делаю 1 раз в 1-2 года.
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40056829
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
25.03.2021 04:37, fraks пишет:
> Разработку веду на копии рабочей базы, т.е. данных - много, за 12 лет.

Владимир, ты на 3-ку уже перешел?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40056900
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий

Владимир, ты на 3-ку уже перешел?

Еще нет. Сижу на 2.5.8
Переход на тройку где-то в планах на будущее :)
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40056903
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks,

если только в планах на будущее, то тогда уж сразу на 4.0
...
Рейтинг: 0 / 0
Обновление БД и селективность индексов
    #40056984
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks
Максимально широко использую LEFT JOIN, причем даже не специально, а в большинстве мест логика выборки именно такая


Ключевые слова подчёркнуты. Само собой, есть туева хуча запросов, в которых нужны именно внешние джойны. Есть запросы, в которых по барабану, внешний написать или внутренний, одна чорт и результат будет как у внутреннего и затратность. Типа соединения со справочником, на который есть FK. Но, согласись, Володя, в общем случае имитация внутреннего соединения путём выполнения внешнего и обрезания лишнего дополнительными условиями будет тормознее по определению. Вместо построения карты доступа к страницам данных по индексу чтение всех подряд в ведущей и уже потом усечение. А если ещё запрос представляет собой хорошо взболтанную смесь внешних и внутренних, то с ним обращаться надо как сапёру с миной.
...
Рейтинг: 0 / 0
48 сообщений из 48, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Обновление БД и селективность индексов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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