@pgsql

Страница 1021 из 1062
Terminator
05.10.2018
09:56:35
@hyper_0 будет жить. Поприветствуем!

@Alexandr_Semenenko будет жить. Поприветствуем!

Centrino
05.10.2018
10:36:07
изучаю индексы. Хочу оптимизировать сложный запрос. Запрос с фильтрацией по одному полю: user_id Запускаю с explain analyze его в psql. запрос идет 4 секунды. Запускаю еще раз, с другим user_id. Запрос идет гораздо быстрее. Тут нужен индекс или это кеш postgres?

Alex
05.10.2018
10:42:10
статистику попробуйте обновить для начала

Google
Айтуар
05.10.2018
10:46:54
Andrey ?
05.10.2018
10:47:31
А эксплейн-то что говорит?

Ilia
05.10.2018
10:48:41
изучаю индексы. Хочу оптимизировать сложный запрос. Запрос с фильтрацией по одному полю: user_id Запускаю с explain analyze его в psql. запрос идет 4 секунды. Запускаю еще раз, с другим user_id. Запрос идет гораздо быстрее. Тут нужен индекс или это кеш postgres?
Вообще да, время выполнения запроса -- это случайная величина. Особенно в многозадачной многопользовательской среде. НЕЛЬЗЯ судить об оптимальности запроса на основе времени его выполнения. (время может использоваться только как дополнительный критерий)

Gennady
05.10.2018
11:03:40
Какой, по-Вашему, первичный показатель оптимальности в многопользовательской среде?

Gennady
05.10.2018
11:15:39
Потому что в него все обычно упираются? Почему не cpu или память?

Ilia
05.10.2018
11:18:24
Потому что в него все обычно упираются? Почему не cpu или память?
Потому что всё в IO упирается. Время одного IO в 100-10000 раз больше, чем любая операция в памяти

Алексей
05.10.2018
11:19:00
Добрый день! Подскажите пожалуйста как установить БД? Имею файлы .dat и .ddl скрипт. Все в кодировке win1251. Как установить бд в кодировке utf-8? Где почитать?

Ilia
05.10.2018
11:19:11
Потому что всё в IO упирается. Время одного IO в 100-10000 раз больше, чем любая операция в памяти
(это конечно если IO физическое. Но физическое IO невозможно посчитать, поэтому надо считать логическое)

Gennady
05.10.2018
11:21:06
Потому что всё в IO упирается. Время одного IO в 100-10000 раз больше, чем любая операция в памяти
Очень просто написать неоптимальный запрос, который съедает много cpu, при этом почти не потребляет IO

Google
Gennady
05.10.2018
11:24:00
может, у вас просто медленные диски?

Ilia
05.10.2018
11:24:10
Очень просто написать неоптимальный запрос, который съедает много cpu, при этом почти не потребляет IO
Ну как бы IO -- дежурная метрика измерения оптимальности запросов везде , во всех СУБД. В Oracle -- время, но там не физическое время, а абстрактное гипотетическое приведённое время, расчитанное исходя из гипотетического времени выполнения всех операций. Но я кроме Оракла не видал, чтобы ещё где-то так заморачивались на эту тему, везде IO исопользуют и не парятся.

Кстати что в PG я уже и не помню.

??Suffer
05.10.2018
11:25:56
У Оракла таки лучше идея

Eugene
05.10.2018
12:08:31
подскажите простое решение initcap с апострофом

Lev
05.10.2018
12:39:10
планировщик решает на условии ts > 'x' использовать seq scan. Но если переписать на ts between 'x' and now() появляется index scan. Куда копать в таких случаях? https://gist.github.com/gardster/9b1516a4c9331e9a1edd748b36538cb5

Lev
05.10.2018
12:43:17
запрос выгребет где-то четверть таблицы.

Сергей
05.10.2018
12:44:13
тогда index-tyan не нужны

Сергей
05.10.2018
12:44:58
А какой будет план если написать event_ts between '15-09-2018' and '06-10-2018' ?
планировщик прикинет что дешевле - по индексам вытащить или пройти последовательно. вангую что последовательно

Konstantin
05.10.2018
12:45:09
запрос выгребет где-то четверть таблицы.
Т.е. размер таблицы 200 миллионов записей?

Lev
05.10.2018
12:45:41
чуть меньше, но да. 150 где-то

Konstantin
05.10.2018
12:46:41
ну для выборки четверти таблицы последовательный поиск (особенно паралельный) действительно должен быть эффективнее. Возможно использование now() ен позволяет распаралеливать запрос.

Google
Lev
05.10.2018
12:58:57
analyze vull прямо перед explain'ом

now() - rows=52849962 ; '6-10-2018' - rows=3774997

Alexander
05.10.2018
13:00:46
Добрый день, коллеги, на сколько правильно так делать? UPDATE storehouse_remain r SET outgo = COALESCE( (SELECT SUM(iuu.weight) FROM storehouse_itemusage iuu WHERE iuu.item_id = r.item_id AND iuu.storehouse_id = r.storehouse_id AND iuu.type = 'u' AND iuu.created_at >= start_time AND iuu.created_at < end_time), 0 ) WHERE r.id = remain_id; У меня возникает много ShareLock-ов. Может стоит сперва получить значение, а потом обновлять таблицу remain? Update выполняется в функции.

Konstantin
05.10.2018
13:07:35
now() - rows=52849962 ; '6-10-2018' - rows=3774997
Ага, now() не даёт паралелить запрос. А вот если заменить его на transaction_timestamp() , то думаю тоде будет выбран paralel seqscan

Lev
05.10.2018
13:11:24
эвоно как. Спасибо, буду знать. А как он внутрях работает? Во время транзакции он для каждого перехода по ветке в индексе будет вызывать now() снова и снова?

Yaroslav
05.10.2018
13:11:38
Ага, now() не даёт паралелить запрос. А вот если заменить его на transaction_timestamp() , то думаю тоде будет выбран paralel seqscan
А кстати: "now() is a traditional PostgreSQL equivalent to transaction_timestamp()." А parrallel у них почему-то разные. bug?

Terminator
05.10.2018
13:13:17
@RTamarov будет жить. Поприветствуем!

Алексей
05.10.2018
13:18:56
Добрый день! Подскажите пожалуйста как установить БД? Имею файлы .dat и .ddl скрипт. Все в кодировке win1251. Как установить бд в кодировке utf-8? Где почитать?
Ребят, посмотрите вопрос. Наверняка элементарно, но просто начал разбираться, а тут все о высоких материях...

Yaroslav
05.10.2018
13:20:47
Алексей
05.10.2018
13:21:22
Древняя советская бд

Lev
05.10.2018
13:22:17
Советская, в win-1251 o_0 всё-таки где-то в НИИ была машина времени.

Mike Chuguniy
05.10.2018
13:22:30
Ребят, посмотрите вопрос. Наверняка элементарно, но просто начал разбираться, а тут все о высоких материях...
1. перестаньте хотеть постгрес на винде; 2. почитайте документацию по установке на выбранный дистрибутив; если без винду не могёте, установите MS Windows Subsystem for Linux;

Древняя советская бд
Что за бд, и откуда уверенность, что cp1251?

И где cp1251: в данных, коде, или в вашей системе.

Алексей
05.10.2018
13:24:19
Что за бд, и откуда уверенность, что cp1251?
Ну может и не ср1251, но блокнот в этой кодировке все хорошо видит, без краказябр

Mike Chuguniy
05.10.2018
13:25:00
Что вы видите в этой кодировке?

Сергей
05.10.2018
13:26:11
https://habr.com/post/351658/ возможно вам поможет

Mike Chuguniy
05.10.2018
13:30:32
Т.е. данные выгружены непонятно в каком формате. ПрЭлестно! ПрЭлестно! Нанимайте специально дрессированного человечка, который в такое умеет.

Google
Алексей
05.10.2018
13:31:48
А что с ddl никто дела не имел?

Сергей
05.10.2018
13:32:38
Алексей
05.10.2018
13:34:13
Я своим делетантским умом предполагаю, что это схема бд описана, а в файлах dat сами данные.

Вроде как вроде файлы .ddl устанавливаются также как .sql

Но у меня что то на '//' угается psql

Lev
05.10.2018
13:36:31
Вроде как вроде файлы .ddl устанавливаются также как .sql
но не в postgres. Это data definition от какой-то другой БД

Sergey
05.10.2018
13:36:55
Поменяй // на -- — может поможет ;)

Алексей
05.10.2018
13:37:07
Mike Chuguniy
05.10.2018
13:37:34
Поменяй // на -- — может поможет ;)
Это не шелл. // надо менять на — два дефиса, ибо комментарий.

Дык язык то вроде стандартный
Какой язык? Посмотрите базовые конструкции диалекта ПГ.

Sergey
05.10.2018
13:38:16
Дык язык то вроде стандартный
Судя по скрину, вовсе нет

Mike Chuguniy
05.10.2018
13:38:44
Сейчас попробую
Не пробовать надо, а изучать продукт, который предполагается использовать.

Mike Chuguniy
05.10.2018
13:39:12
Судя по скрину, вовсе нет
Судя по вопросам, человек что-то грузит в ПГ, и у него на // загрузка ломается.

Ddl
Это не язык.

Mike Chuguniy
05.10.2018
13:39:51
У нас тут все на соплях
Страдайте в таком случае. От необходимости изучать продукт данный факт не избавляет никаким образом.

Да?
Да. ВНЕЗАПНО!

Google
Алексей
05.10.2018
13:40:30
Да. ВНЕЗАПНО!
Сергей: data definition language?

Alex
05.10.2018
13:40:56
@hyper_0 где вы эти файлы взяли ?

туда и идите :)

на правах шутки :)

Алексей
05.10.2018
13:41:10

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