|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
Да, MERGE точно нужен ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2011, 20:02 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
Огласите список (здесь в топике), договоримся например что каждый может поставить по одному балу напротив каждой фичи (и у каждого например всего 3 бала в руке) и посмотрим что в итоге голосования получится.... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2011, 11:50 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
ещё хочу иногда видеть сразу и результат запроса и его план... а то не охота по часу ждать аналайза в холостую ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2011, 15:45 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
Misha Tyurinещё хочу иногда видеть сразу и результат запроса и его план... а то не охота по часу ждать аналайза в холостую в оракле аналайз строится налету без выборки данных анализируемой таблицы и ожидания. А вот сама выборка дело другое и может занять прилично времени. Хотя есть еще компбик: аналайз с выборкой одновременно ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2011, 17:20 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
JudoMisha Tyurinещё хочу иногда видеть сразу и результат запроса и его план... а то не охота по часу ждать аналайза в холостую в оракле аналайз строится налету без выборки данных анализируемой таблицы и ожидания. А вот сама выборка дело другое и может занять прилично времени. Хотя есть еще компбик: аналайз с выборкой одновременноЗдесь все то-же самое, кроме того, что нету комбинации и аналайз и данные. Хотя хотелось-бы. Это поможет, в некоторых случаях, узнать где надо сделать вакуум, а где и индекс построить ибо тормозим. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2011, 22:17 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
WarstoneJudoпропущено... в оракле аналайз строится налету без выборки данных анализируемой таблицы и ожидания. А вот сама выборка дело другое и может занять прилично времени. Хотя есть еще компбик: аналайз с выборкой одновременноЗдесь все то-же самое, кроме того, что нету комбинации и аналайз и данные. http://www.postgresql.org/docs/current/static/auto-explain.html ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2011, 11:55 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
ЁшWarstoneпропущено... Здесь все то-же самое, кроме того, что нету комбинации и аналайз и данные. http://www.postgresql.org/docs/current/static/auto-explain.html ага, вспомнил, видел такую штуку, спасибо. но мне, например, в логе не реально выискивать план, я через него все запросы пишу, гигабайты. хотелось бы что-то типа: в вывод - результат, в еррор - план, типа в виде нотайса. как-то так. вот, например, к тому же модулю как то так бы вот сделали SET auto_explain.куда_выдавать = 'как_нотайс' ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2011, 12:44 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
Misha TyurinЁшпропущено... http://www.postgresql.org/docs/current/static/auto-explain.html ага, вспомнил, видел такую штуку, спасибо. но мне, например, в логе не реально выискивать план, я через него все запросы пишу, гигабайты. хотелось бы что-то типа: в вывод - результат, в еррор - план, типа в виде нотайса. как-то так. вот, например, к тому же модулю как то так бы вот сделали SET auto_explain.куда_выдавать = 'как_нотайс'Что передавать в подключение клиенту — зависит от client_min_messages, можно так как-то сделать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2011, 13:49 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
Misha TyurinЁшпропущено... http://www.postgresql.org/docs/current/static/auto-explain.html ага, вспомнил, видел такую штуку, спасибо. но мне, например, в логе не реально выискивать план, я через него все запросы пишу, гигабайты. хотелось бы что-то типа: в вывод - результат, в еррор - план, типа в виде нотайса. как-то так. вот, например, к тому же модулю как то так бы вот сделали SET auto_explain.куда_выдавать = 'как_нотайс' не знаю как в постгресе (но обязательно узнаю) но в оракле есть запись плана в лог ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2011, 13:58 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
Едва ли это нужно еще кому-то, но я бы мечтал о хранении timestamp и username пользователя, который изменил ХП, view, таблицу Если бы это еще и можно было писать в лога.... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2011, 15:06 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
tadminЕдва ли это нужно еще кому-то, но я бы мечтал о хранении timestamp и username пользователя, который изменил ХП, view, таблицу Если бы это еще и можно было писать в лога.... клевая фишка, а еще бы повесить дефаулт-триггер на любую компиляцию и свою систему контроля версия заделать ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2011, 15:08 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
Ёш, красота, точно! всё есть ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2011, 15:46 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
1. Поддержку FULL JOIN те только через merge join 2. Custom Window Aggregate Functions в которой можно делать 2 прогона, то есть сначала пробежать рассчитать одно значение, а потом еще раз пробежать и высчитать результат с учетом этого значения (понимаю что извращение, но хотелось бы) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2011, 13:48 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
Недавно столкнулся с отсутствием возможности: Код: plaintext
После Оракла это печалит весьма... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2011, 12:33 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
Поздновато я конечно сюда попал. Мой опыт показал, что если архитектор системы идет на поводу у пользователей и пытается реализовать все их предложения, то на системе можно ставить крест :). Тем не менее выскажу идеи, реализация которых, на мой взгляд, может дать существенное конкурентное преимущество (в порядке убывания актуальности). 1. Возможность приоритезации операций ввода/вывода для различных пользователей Скажем, есть пользователь, операции которого должны выполняться как можно быстрее. Его запросы определяют работоспособность системы в целом. Например в телефонии, это будут запросы связанные с идентификацией, авторизацией, маршрутизацией, горячим биллингом. Но запросы связанные с генерацией отчетов, выставлением счетов, должны выполняться в "фоновом" режиме. "Дождливый" селект должен приостанавливаться, если во время его исполнения поступил более приоритетный запрос. В Оракле есть возможность выставить приоритеты пользователям для доступа к процессору системы, но эта возможность бесполезна, поскольку узким местом, как правило, является не вычислительная мощность системы, а операции ввода/вывода. Установив, скажем пользователю квоту в 1% процессорного времени проблема решена не будет. Эта квота будет играть роль, только тогда, когда проц загружен больше 99%, а если он загружен на 30%, то при поступлении низкоприоритетного запроса, система выделит ему все свободные 70%, что совершенно правильно. Система не должна вставать на колени, если несколько менеджеров одновременно приступили к созданию отчетов. 2. Отмена требования по удалению объектов, зависимых от модифицированного объекта Согласитесь, было бы странно, если бы при модификации таблицы (добавление/удаление столбца, изменение типа данных) или даже при ее удалении (при пересоздании), система бы требовала удалить все хранимые процедуры и объекты, зависящие от неё. Но это считается нормальным при работе с объектами. В результате, крайне ограниченное их использование (только при полной безысходности) в силу чрезвычайного неудобства работы с ними. Если так сделано в Оракле, то это совсем не значит, что также должно быть сделано и в PG. 3. PL/PgSQL. Реализация возможности циклического перебора элементов записи или атрибутов объекта Что-то подобное этому: Код: plaintext 1. 2.
а еще лучше осуществить доступ к ним по "индексу". Редко, но бывает нужно, при построении гибких систем, особенно, когда у заказчика исторически имеются таблицы с числом колонок больше сотни. Конечно, последовательный доступ к колонкам можно получить, используя имеющиеся средства, но все это настолько криво, а посему очень медленно... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2012, 10:43 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
avinogПоздновато я конечно сюда попал. Мой опыт показал, что если архитектор системы идет на поводу у пользователей и пытается реализовать все их предложения, то на системе можно ставить крест :). Тем не менее выскажу идеи, реализация которых, на мой взгляд, может дать существенное конкурентное преимущество (в порядке убывания актуальности). 1. Возможность приоритезации операций ввода/вывода для различных пользователей Скажем, есть пользователь, операции которого должны выполняться как можно быстрее. Его запросы определяют работоспособность системы в целом. Например в телефонии, это будут запросы связанные с идентификацией, авторизацией, маршрутизацией, горячим биллингом. Но запросы связанные с генерацией отчетов, выставлением счетов, должны выполняться в "фоновом" режиме. "Дождливый" селект должен приостанавливаться, если во время его исполнения поступил более приоритетный запрос. В Оракле есть возможность выставить приоритеты пользователям для доступа к процессору системы, но эта возможность бесполезна, поскольку узким местом, как правило, является не вычислительная мощность системы, а операции ввода/вывода. Установив, скажем пользователю квоту в 1% процессорного времени проблема решена не будет. Эта квота будет играть роль, только тогда, когда проц загружен больше 99%, а если он загружен на 30%, то при поступлении низкоприоритетного запроса, система выделит ему все свободные 70%, что совершенно правильно. Система не должна вставать на колени, если несколько менеджеров одновременно приступили к созданию отчетов. 2. Отмена требования по удалению объектов, зависимых от модифицированного объекта Согласитесь, было бы странно, если бы при модификации таблицы (добавление/удаление столбца, изменение типа данных) или даже при ее удалении (при пересоздании), система бы требовала удалить все хранимые процедуры и объекты, зависящие от неё. Но это считается нормальным при работе с объектами. В результате, крайне ограниченное их использование (только при полной безысходности) в силу чрезвычайного неудобства работы с ними. Если так сделано в Оракле, то это совсем не значит, что также должно быть сделано и в PG. 3. PL/PgSQL. Реализация возможности циклического перебора элементов записи или атрибутов объекта Что-то подобное этому: Код: plaintext 1. 2.
а еще лучше осуществить доступ к ним по "индексу". Редко, но бывает нужно, при построении гибких систем, особенно, когда у заказчика исторически имеются таблицы с числом колонок больше сотни. Конечно, последовательный доступ к колонкам можно получить, используя имеющиеся средства, но все это настолько криво, а посему очень медленно... 1)ionice в кроне раз в минуту и разделение отчетных и приоритетных пользователей + pgbouncer чтобы коннекты жили эту проблему более менее решает. Отчеты живут с ionice -c 3 (вместе с autovacuum/pg_dump и прочими некритичными к скорости IO вещами). Но вообще использование ssd делает эту задачу малоактуальной. 3)вероятно не будет сделано никогда так как target_tanyelement не может иметь разные типы... pl/pgsql архитектурно не умеет работать с полиморфными переменными (и не будет уметь). Так что я бы на это не расчитывал. Да и hstore workaround не такой уж ужасный на практике. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2012, 11:17 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
Максим, спасибо за советы и оперативный ответ. Maxim Boguk1)ionice в кроне раз в минуту и разделение отчетных и приоритетных пользователей + pgbouncer чтобы коннекты жили эту проблему более менее решает. Отчеты живут с ionice -c 3 (вместе с autovacuum/pg_dump и прочими некритичными к скорости IO вещами). Но вообще использование ssd делает эту задачу малоактуальной. В свое время эту задачу пытались решить для Оракла путем использования ionice для задания приоритетов процессам ввода/вывода - неудачно. Для этого необходимо связать процессы ввода/вывода с пользователями, а они принадлежат одному пользователю - Oracle. Может в отношении PG я ошибаюсь. Наконец, есть еще виндовые пользователи. И pgbouncer не поможет. Достаточно пары "красивых" селектов. Короче, система должна быть удобной. Maxim Boguk3)вероятно не будет сделано никогда так как target_anyelement не может иметь разные типы... pl/pgsql архитектурно не умеет работать с полиморфными переменными (и не будет уметь). Так что я бы на это не расчитывал. Да и hstore workaround не такой уж ужасный на практике."вероятно не будет сделано никогда" - и не надо). С hstore я прокололся. Я их использовал на 8-ке и там функций типа hstore(record) еще не было. Спасибо, посмотрел документацию ). Помнится с ними была какая-то проблема связанная с производительностью, сейчас не вспомню, нашел какой-то workaround, чтобы они работали быстро. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2012, 16:08 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
avinogМаксим, спасибо за советы и оперативный ответ. Maxim Boguk1)ionice в кроне раз в минуту и разделение отчетных и приоритетных пользователей + pgbouncer чтобы коннекты жили эту проблему более менее решает. Отчеты живут с ionice -c 3 (вместе с autovacuum/pg_dump и прочими некритичными к скорости IO вещами). Но вообще использование ssd делает эту задачу малоактуальной. В свое время эту задачу пытались решить для Оракла путем использования ionice для задания приоритетов процессам ввода/вывода - неудачно. Для этого необходимо связать процессы ввода/вывода с пользователями, а они принадлежат одному пользователю - Oracle. Может в отношении PG я ошибаюсь. Наконец, есть еще виндовые пользователи. И pgbouncer не поможет. Достаточно пары "красивых" селектов. Короче, система должна быть удобной. crontab -l ... * * * * * ps -u postgres x | grep -E 'autovacuum|COPY|pg_dump|cron_role|report_role' | grep -v grep | perl -pe 's/^\s*(\d+) .*$/$1/' | xargs --no-run-if-empty -I $ ionice -c 3 -t -p $ куда уж проще то... + pgbouncer чтобы коннекты от cron_role и report_role жили более менее перманетно с выставленным ionice уже... пользуюсь тем что в ps -u postgres x есть имя пользователя подключенного к базе 29841 ? Ss 0:07 postgres: cron_role somedb [local] idle 30072 ? Ss 0:04 postgres: report_role somedb [local] idle ... Таким образом в 99% случаев любой запрос от cron_role или report_role уже идет с низким IO priority PS: windows + Pg в production использовать НЕ НАДО. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2012, 16:17 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
Maxim Bogukcrontab -l ... * * * * * ps -u postgres x | grep -E 'autovacuum|COPY|pg_dump|cron_role|report_role' | grep -v grep | perl -pe 's/^\s*(\d+) .*$/$1/' | xargs --no-run-if-empty -I $ ionice -c 3 -t -p $ куда уж проще то...Я что, опять отмонтировать забыла?!! (С) Анекдот. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2012, 19:36 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
Код: plaintext
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2012, 19:52 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
Обещают матвью в 9.3 кажись ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 14:14 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
Кто-нибудь начал использовать EXTENSION'сы в разработке? Можно ли стало запросом получить дерево зависимостей расширений, или лазать по манифестам надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 14:17 |
|
Голосуем за новые фичи PG
|
|||
---|---|---|---|
#18+
ОКТОГЕН, ну зависимости там какие-то есть, не знаю правда какие :) Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 16:50 |
|
|
start [/forum/topic.php?fid=53&msg=37225493&tid=1993675]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 257ms |
total: | 386ms |
0 / 0 |