@pgsql

Страница 376 из 1062
WoodyFire
25.06.2017
19:19:20
да, согласен. loops - должно быть как можно меньше. Но при этом памяти еще должно использоваться тоже не много

Darafei
25.06.2017
19:20:39
кому именно и почему оно "должно"?

есть полтора критерия для оптимизации запроса: - он должен быть читаемым - он должен выполняться за приемлемое время

Anton [Mgn, az09@osm]
25.06.2017
19:21:57
компьютер должен быть производительным, тихим, дешевым. выбрать два из трёх

Google
Артур
25.06.2017
19:22:06
@Komzpa вопрос к тебе. Если, например, написал хитрый запрос и не хочу чтобы он только у меня хранился, как поделиться с сообществом. Не только для линча, но и для еще и увеличения информ базы

м.б. есть какой-то ресурс-копилка SQL-запросов

Anton [Mgn, az09@osm]
25.06.2017
19:23:11
гитхаб?

Артур
25.06.2017
19:23:34
гитхаб?
ради одного запроса?

WoodyFire
25.06.2017
19:23:49
эм... для себя понял, что нужно стараться избегать цикличность по возможности и использовать только те данные от которых зависят результаты. Это влечет уменьшение использования времени выполнения и использования памяти.

Anton [Mgn, az09@osm]
25.06.2017
19:23:59
или на стековерфлоу - "вот есть ответ, задавайте ваш вопрос"? ))

Артур
25.06.2017
19:24:56
или на стековерфлоу - "вот есть ответ, задавайте ваш вопрос"? ))
Пожалуй. Но я думал он только для исходящих вопросов, исходящих ответов быть не должно.

Или я не прав?

Anton [Mgn, az09@osm]
25.06.2017
19:25:13
ты прав. я шучу

WoodyFire
25.06.2017
19:25:41
Anton [Mgn, az09@osm]
25.06.2017
19:25:44
ради одного запроса?
бывает что и меньше. так что смелее, это попадет в поисковую выдачу

Darafei
25.06.2017
19:27:03
на один запрос я пишу gist

Google
Darafei
25.06.2017
19:27:35
если gist запостить в твиттер, и в нём есть описание, на него начинают приходить из гугла :)

Артур
25.06.2017
19:29:20
На английском описывать?

м.б. вопрос тупой. Но я не носитель английского языка. Буду переводить через гугл.

Если это приемлемо - буду делать так

Stas
25.06.2017
19:31:57
https://lists.debian.org/debian-devel/2017/06/msg00308.html

Darafei
25.06.2017
19:32:07
лучший способ писать на английском - писать в гугл-переводчике на английском и смотреть, что получается в переводе на русский. править и упрощать до тех пор, пока в переводе на русский не будет правильно.

WoodyFire
25.06.2017
19:33:01
Stas
25.06.2017
19:33:32
https://lists.debian.org/debian-devel/2017/06/msg00308.html
The issue was being investigated by the OCaml community since 2017-01-06, with reports of malfunctions going at least as far back as Q2 2016. It was narrowed down to Skylake with hyper-threading, which is a strong indicative of a processor defect. Intel was contacted about it, but did not provide further feedback as far as we know. вот парням хороший баг попался

WoodyFire
25.06.2017
19:33:36
я его переписал полностью и получил вот такой вид

я предпочту второй вариант )))) не потому-что я написал, а потому-что он быстрее

Darafei
25.06.2017
19:37:55
я правильно понимаю, что достаточно было порядок join-ов поменять? :)

WoodyFire
25.06.2017
19:39:02
я правильно понимаю, что достаточно было порядок join-ов поменять? :)
возможно. я исходил из своих знаний. И пытался избавиться от цикличности в количестве 13267 шагов

я правильно понимаю, что достаточно было порядок join-ов поменять? :)
не против буду посмотреть и Ваш вариант )))) Очень даже интересно. Для моего опыта еще даже будет и полезно.

вот только базы той нет к сожалению, чтобы погонять запрос

Darafei
25.06.2017
19:42:08
я бы первым шагом все джоины переписал на запятую, а условия джоина вынес в where - обычно этого хватает и на этом всё заканчивается

WoodyFire
25.06.2017
19:44:16
по результату

Darafei
25.06.2017
19:47:26
даже в твоём можно сильно повысить читаемость. энтеров перед закрывающими и после открывающих скобок насыпать. уровни вложенности поровнять (у тебя group by одного запроса на одном уровне с мясом другого) p.is_closed != true -> not p.is_closed

Darafei
25.06.2017
19:51:54
DataGrip такое ровняет запросто

Google
Max
25.06.2017
19:53:10
DataGrip такое ровняет запросто
Это который от jetbrains?

Darafei
25.06.2017
19:53:43
WoodyFire
25.06.2017
19:55:04
кстати вопрос на засыпку по поводу двойных ковычек. Может я чего еще не вычитал. Вот представленный код выше SELECT * FROM son INNER JOIN father ON son.father_id=father.id INNER JOIN grandfather ON father.grandfather_id=grandfather.id; у меня не выполнился так как я не использовал схему public. Пришлось дописывать "testCode" - имя используемой схемы. Есть дргуие варианты без двойных кавычек?

Darafei
25.06.2017
19:55:31
да, не использовать кемелкейс в базе

WoodyFire
25.06.2017
19:56:41
да, не использовать кемелкейс в базе
кемелкейс для меня не совсем понятен. (((

Darafei
25.06.2017
19:57:30


WoodyFire
25.06.2017
19:58:40
)))) понятно. спс. Но все же именно его я больше предпочитаю

За вот эту строчку кода "p.is_closed != true -> not p.is_closed" спасибо.

Max
25.06.2017
20:04:12
именно он, да
Подскажите, пожалуйста, он уже нормально все схемы отображает?

У меня долгое время только public открывался. Это была одна из причин почему дальше тестов работать с ним не стал

Darafei
25.06.2017
20:06:19
там в списке схем последний элемент - серенькое Schemas.... кликни по нему и включи в общем виде те схемы, которые тебе нужны.

WoodyFire
25.06.2017
20:07:29
я правильно понял вот про этот зверь речь. https://habrahabr.ru/company/JetBrains/blog/325066/

Darafei
25.06.2017
20:08:45
0xDBE

WoodyFire
25.06.2017
20:11:01
этот зверь стоит 53-х баксов?

Darafei
25.06.2017
20:12:30
мне окупился. а так, всегда найдётся кто-то, кому дорого :)

Max
25.06.2017
20:14:28
Думаю там триальная версия есть. В postgres провосходный psql, но из консоли не всегда удобно отлаживать запросы.

Darafei
25.06.2017
20:15:09
да, там триалками и Early Access можно вечно-бесплатно пользоваться

Google
Darafei
25.06.2017
20:15:53
к окончанию периода выходит новая, только обновляться успевай :)

WoodyFire
25.06.2017
20:17:06
мне окупился. а так, всегда найдётся кто-то, кому дорого :)
мы всегда не прочь халявы, но бесплатно работать не хотим. Это человеческая натура такая ((((( Лично я некоторые программы предпочитаю купить, если они для меня полезны и по карману. А других вариантов нет.

Admin
ERROR: S client not available

Артур
25.06.2017
21:27:08
этот зверь стоит 53-х баксов?
Вообще норм. Я phpstorm приобрел за 90$ и окупил сразу же почти :) Потому что пиратка может сбросить ключ и дельный сервис искать надо (либо старьем пользоваться) что затртит не мнее 3х часов и может происходить от 3 раз в год итого профит 9 часов экономии (если ты зарабатываешь хотя бы 10$ в час - оно себя окупит) Ну и поощрить разработчиков за их старания и обновления тоже очень важно.

Denis
25.06.2017
22:55:28
привет! есть ли те, кто пользуется pgadmin4? я его поставил и возник ряд вопросов: * как в нем настроить автодополнение в нижнем регистре? по умолчанию дополняет в верхний. * как комментировать код? стандартный ctr+k вызывает поиск в гугле на вкладке хрома. * почему ctr + u и ctr + shift + u работают как undo/redo, а не как преобразование нижний/верхний регистр?

Dmitry
25.06.2017
23:21:20
работает. УРА. Ну наконец-то ))))) . "Лучше день потерять, а потом за 5 минут долететь" ЕЩЕ РАЗ ОГРОМНОЕ СПАСИБО.
Никогда так не делайте. Теперь у вас в системе нагажено нигде не зарегистрированными файлами, которые чисто удалить или обновить никак не получится, только выковыривать руками. Я добавил порт databases/pldebugger, используйте его

Вот из-за таких граблей я и перестал фряху юзать.
Каких, например, граблей? Это малораспространённое расширение, почти нигде не опакечено, и ставится через одно место, это как раз его собственные проблемы.

Я с 6 начал. Но при больших объёмах серверов она уже становится проблемой
Ни разу не большей чем linux. Если что, из исходников ничего собирать уже много лет не надо, пакеты и система обновляются бинарно, всё автоматизируется через тот же ansible или что угодно

WoodyFire
26.06.2017
02:46:40
Спасибо за проделанный Вами труд. И спасибо за замечание. Сегодня обязательно исправлю. У меня поэтому поводу сомнения проскакивали ))) Но не придал почему-то значение. ((( Вчера читал официальные доки по поводу создания порта, но из-за не достаточности опыта и слабой матчасти в этом вопросе отложил на некоторое время. Тестовая виртуальная машинка для экспериментов имеется. Со временем постараюсь разобраться.

Никогда так не делайте. Теперь у вас в системе нагажено нигде не зарегистрированными файлами, которые чисто удалить или обновить никак не получится, только выковыривать руками. Я добавил порт databases/pldebugger, используйте его

Порты обновил. Собралось на ура, без проблем. Установил. Работает. Еще раз спасибо ?

Denis
26.06.2017
07:09:58
да, почти все юзают 3ий
Я тоже, но решил попытаться переползти на 4

Alex
26.06.2017
07:21:30
Пользовался какое-то время pgadmin4, но потом перешел на HeidiSQL.

Anton
26.06.2017
07:33:40
Коллеги, доброго дня! кто знает, подскажите что за магия происходит :)



почему индекс не берет ?

Andrey
26.06.2017
07:35:49
Потому что в данном случае seqscan быстрее. У вас же нет ограничения выборки.

Maksim
26.06.2017
07:37:12
почему индекс не берет ?
Хинтами посмотрите кост от индекс онли скан

Google
WoodyFire
26.06.2017
07:44:36
Что, никто не пользуется pgadmin4? Столько же раз люди обсуждали здесь как его правильно ставить
у меня он установлен. но из-за его супер скорости использую лишь для backup-а данных на сервере версии 9.6

Inal
26.06.2017
08:24:07
Всем добрый день! Подскажите, пожалуйста, как сделать лучше. У меня есть подзапрос, который пытается достать данные из временной таблицы, но эта временная таблица может не существовать. Как можно проверить, что она существует и если ее нет возвращать дефолтное значение? Что-то типа такого не работает (SELECT CASE WHEN (SELECT to_regclass('temp_organization_ratings') IS NULL) THEN 0 ELSE (SELECT score :: FLOAT FROM temp_organization_ratings WHERE organization_id = view_organizations.id) :: FLOAT END)

WoodyFire
26.06.2017
08:31:17
Лично я еще не разобрался до конца и могу ошибиться в наименовании, но вроде как есть параметр FOUND которому присваивается значение true - если SELECT что то получил, в противном случае false. Еще эту возможность не обуздал, если честно. Приоритеты пока другие.

раздел 41.5.3 Официального руководства по версии 9.6

вот что там написано между строк Можно проверить специальную переменную FOUND (см. Подраздел 41.5.5), чтобы определить, была ли возвращена запись: SELECT * INTO myrec FROM emp WHERE empname = myname; IF NOT FOUND THEN RAISE EXCEPTION 'Сотрудник % не найден', myname; END IF;

Anatoliy
26.06.2017
08:36:12
Можно сделать WHERE EXISTS (SELECT FROM information_schema.tables WHERE blabla);

или left join и проверка на IS NULL

Inal
26.06.2017
08:54:23
Можно сделать WHERE EXISTS (SELECT FROM information_schema.tables WHERE blabla);
К сожалению, нельзя, relation "temp_organization_ratings" does not exist Это я уже пробовал

Anatoliy
26.06.2017
08:58:05
К сожалению, нельзя, relation "temp_organization_ratings" does not exist Это я уже пробовал
Заджойнить то information_schema.tables можно, я не предлагал джойнить temp_organization_ratings

Denis
26.06.2017
09:08:06
на чистом sql такого не получится, что-то процедурное, plpgsql как вариант
do $$ begin if to_regclass('temp_organization_ratings') is not null then select 0; else select (select score::float from temp_organization_ratings where organization_id = view_organizations.id) ; end if; end $$ language plpgsql;

Inal
26.06.2017
09:13:28
Прямое выполнение кода выше дает все равно ERROR: relation "temp_organization_ratings" does not exist

Страница 376 из 1062