Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 dbeaver планы запроса сравнить  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1297
Добрый день всем.

Собственно сабж
др.тулы предложить конечно можно
(а если отедльные для сравнения планов в вебе так вообще отлично)

Но я сильно ограничен на рабочем компе полиси конторы где я работаю
(DataGrip я ставли а месяц посмотреть )
22 фев 21, 18:15    [22284834]     Ответить | Цитировать Сообщить модератору
 Re: dbeaver планы запроса сравнить  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4573
Гулин Федор
Добрый день всем.

Собственно сабж
др.тулы предложить конечно можно
(а если отедльные для сравнения планов в вебе так вообще отлично)

Но я сильно ограничен на рабочем компе полиси конторы где я работаю
(DataGrip я ставли а месяц посмотреть )


А что значит "сравнить планы" и зачем?
20 лет занимаюсь оптимизацией запросов - никогда такого было не надо.
Если вы подробно не понимаете что внутри происходит - вам никакое сравнение не поможет.

Для приведения сложных планов в более красивый графический вид можно использовать сайт/инструмент
https://explain.depesz.com/
(никогда его не понимал, текстовый вывод намного проще читать но многим почему то нравится).

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
22 фев 21, 19:03    [22284853]     Ответить | Цитировать Сообщить модератору
 Re: dbeaver планы запроса сравнить  [new]
vyegorov
Member

Откуда: Баньоло-ин-Пьяно
Сообщений: 1225
Maxim Boguk
(никогда его не понимал, текстовый вывод намного проще читать но многим почему то нравится)

он удобен, чтобы кинуть план просто ссылкой.
22 фев 21, 20:28    [22284885]     Ответить | Цитировать Сообщить модератору
 Re: dbeaver планы запроса сравнить  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1297
Maxim Boguk,

В идеале хотелось бы что-то похожее
https://www.sentryone.com/plan-explorer
с крамными квдаратиками

Да фактически 2 плана сравнивать не часто приходится
скорей смотреть где могут быть проблемы

ps Спасибо за ссылку посмотрю
23 фев 21, 17:08    [22285224]     Ответить | Цитировать Сообщить модератору
 Re: dbeaver планы запроса сравнить  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1297
а фиг
оказыается в deveaver
план запроса НЕ КОПИРУЕТСЯ !!!
ТОЛЬКО ячейка : Index Scan

Мда ..
тул вроде неплхой но такие вещи убивают
23 фев 21, 17:51    [22285240]     Ответить | Цитировать Сообщить модератору
 Re: dbeaver планы запроса сравнить  [new]
Misha111
Member

Откуда:
Сообщений: 34
Гулин Федор,

а psql пробовали?
\o out.txt
explain select 1;
\o
а текстовые файлы сравнивать можно чем угодно
24 фев 21, 09:41    [22285476]     Ответить | Цитировать Сообщить модератору
 Re: dbeaver планы запроса сравнить  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1297
Misha111, Да СПС
explain позволяет вывести в текстовый файл а дальше да можно сравнивать (я notepad++)

м.б кто подскажет я смигрировал с Оракла среднюю БД в Postgres Azure (10)
( 7 789 241 - count самой большой таблицы ) и имею очень большие проблемы с перфомансом
для теста миграции сделал проверку count всех таблиц
SELECT 'table1' , COUNT(*) FROM table1 UNION ALL ... table2 , ... tableN

запрос в Оракле 12 выполянется - 10 секунд
в Postgres Azure :
1 раз : 17 min 333 sec !
2 : 1 min 10 sec
3 : 17.7 sec

Ну как бы катастрофа (я понимаю что это не реальный тест - но на реальных все тоже не айс - привожу как простейщий пример
на сложных вью ситуация тоже плохая , на простых вроде более менее )

Взял самую большую таблицу SELECT 'table1' , COUNT(*)
в Оракле - 0.3 сек.
в Постгрес 1 раз : 50+ сек

Finalize Aggregate (cost=9307.78..9307.79 rows=1 width=40)
-> Gather (cost=9307.56..9307.77 rows=2 width=8)
Workers Planned: 2
-> Partial Aggregate (cost=8307.56..8307.57 rows=1 width=8)
-> Parallel Seq Scan on partneraddressid (cost=0.00..7786.65 rows=208365 width=0)


Ну и чего тут можно улучшить то в этом плане ?
25 фев 21, 12:58    [22286248]     Ответить | Цитировать Сообщить модератору
 Re: dbeaver планы запроса сравнить  [new]
mefman
Member

Откуда:
Сообщений: 3305
Гулин Федор,
разговор ниочем. параметры БД какие.
explain(analyze,buffers,timing) тоже нужен.
из моего опыта - двукратное распараллеливание мало что дает. либо ставить минимум 4, либо отключать вообще.
25 фев 21, 13:07    [22286258]     Ответить | Цитировать Сообщить модератору
 Re: dbeaver планы запроса сравнить  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4573
Гулин Федор,

на azure вообще никто ничего не обещает с т.з. производительности
ставьте локальный постгрес на нормальном железе и тогда можно будет что то сравнивать и советовать по настройкам и железу.


1-2 запросы когда данные с дисков (а на azure они сетевые и ОЧЕНЬ НЕБЫСТРЫЕ) читаются - всегда там будут медленные.
тем более что postresql в облаке имеет достаточно слабое отношение к обычному postgresql (он там переписан до полной неузнаваемости особенно в части работы с дисками).

В общем по вопросам работы/производительности базы в облаке - обращайтесь в поддержку этого самого облака.
Тут вам вряд ли кто то поможет.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
25 фев 21, 13:22    [22286267]     Ответить | Цитировать Сообщить модератору
 Re: dbeaver планы запроса сравнить  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1297
Maxim Boguk,
Azure это моя данность и это не обсуждается (Не мой выбор - заказчика)
да и Оракл там необычный в DBaas (частном облаке) - однако ж вполне быстро.

PS Ну попроюу тупо дозаказать ресурсов
пока был Basic
25 фев 21, 18:48    [22286475]     Ответить | Цитировать Сообщить модератору
 Re: dbeaver планы запроса сравнить  [new]
Swa111
Member

Откуда:
Сообщений: 227
Гулин Федор,

Мерить через count быстродействие, такое себе занятие 22141896 и тем более сравнивать с Oracle.
25 фев 21, 19:03    [22286482]     Ответить | Цитировать Сообщить модератору
 Re: dbeaver планы запроса сравнить  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1297
mefman
Гулин Федор,
разговор ниочем. параметры БД какие.
explain(analyze,buffers,timing) тоже нужен.
из моего опыта - двукратное распараллеливание мало что дает. либо ставить минимум 4, либо отключать вообще.


за explain(analyze,buffers,timing) СПАСИБО

Параметры сервера я могу посмотреть AZURE в браузере
и даже поменяь на DEV без проблем

тут вопрос куда и на Какие параметры смотреть
(т.е я уже там лазил даже читал по некоторым описание
force_parallel_mode = OFF
)
ссылки приветсвтуются

На данный момент пока проблема в Seelct
до I/U/D операций даже не дошло (данные загрзуились черзе ora2pg и все - лежит фактически снапшот
толок изредка перегружаю отдельные таблицы )
25 фев 21, 19:10    [22286485]     Ответить | Цитировать Сообщить модератору
 Re: dbeaver планы запроса сравнить  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1297
Swa111
Гулин Федор,

Мерить через count быстродействие, такое себе занятие 22141896 и тем более сравнивать с Oracle.


СПС за ссылку
познавательно
и я в ПРИНЦИПЕ СОГЛАСЕН
реально мне надо будет N раз после полного импорта черзе ora2pg проверить каунты с ораклом
ну там и ок - я подожду 20-30 мин хоть

но проблема не только в этом же
есть 70+ вьюх только на одной схеме к-ю я сейчас симпоритровал в постгрес
(примерно половину из них пришлось фиксить из за не поддерижвающихся фич оракла)
и вот я начинаю проверять эти вьюхи - ну а как по даннным то ?
и логично ведь проверить для первоначального теста
SELECT COUNT(*) FROM - и тут я получаю дикие тормоза в постгрес.

пытаюсь проверить тода на небольших датасетах
SELECT * FROM View1 where id1 = <> ;
где то работате более менее сопоставимо с Ораклом (т.е медленней но не намного )
а где то катастрофически медленней

и проверять каждую вьюху пока НЕ вариант (у меня есть где то 10 критичных пока на них )
причем там есть вьюхи разного назначения
часть для экспорта-импорта в систему и тут тормоза сильно мешают при проверке (но возможно будут не так критичны)
но большАя часть исполюзуется для backend
и вот тут разница между 1 сек в оракле и 30 в постгрес это уже проблема.
25 фев 21, 19:23    [22286489]     Ответить | Цитировать Сообщить модератору
 Re: dbeaver планы запроса сравнить  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4573
Гулин Федор,

Какие то вещи придется переделывать на postgresql специфику чтобы они быстро работали.
Какие то надо с настройками базы возится.

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

Это ваша задача все оптимизировать )) ну или внешних консультантов.

В практическом смысле - без конкретного разбора explain (analyze, costs, buffers, timing) конкретных запросов и анализа настроек базы - вам никто тут ничего не поможет.
Какие то запросы вполне могут остаться и на pg на порядок медленее чем на оракле... какие то могут быть наоборот на порядок быстрее.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
25 фев 21, 19:30    [22286491]     Ответить | Цитировать Сообщить модератору
 Re: dbeaver планы запроса сравнить  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1297
Maxim Boguk,
да я согласен
вот про настройки БД и хотелось бы почитать что-то толковое для начала типа бест-практис
(в идеале конечно для ажура - но пойдет и обычное)
понятно что все оисания есть в доке

а с конкертными скл буду возиться позже
вчера, 10:19    [22286684]     Ответить | Цитировать Сообщить модератору
 Re: dbeaver планы запроса сравнить  [new]
peter64
Member

Откуда:
Сообщений: 162
Гулин Федор,
типа такого?
https://docs.microsoft.com/ru-ru/azure/postgresql/quickstart-create-server-database-portal
https://docs.microsoft.com/ru-ru/azure/postgresql/

Сообщение было отредактировано: вчера, 10:16
вчера, 10:23    [22286689]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить