@pgsql

Страница 1060 из 1062
Fike
25.10.2018
17:14:34
это не в конкретном языке, это в базе данных есть

Google
Makkusu
25.10.2018
17:15:48
это просто varchar

Fike
25.10.2018
17:16:30
Отдельно шлется запрос, отдельно параметры к нему. В идеале БД парсит запрос, выполняет нужный анализ, может быть, даже компилирует его, а потом драйвер просто передает параметры. Понятное дело, что это дороже и не нужно, если надо просто один раз выполнить запрос, но я не знаю, существует ли такое в разных БД вообще - просто передать запрос и параметры без prepared.

Baha
25.10.2018
17:18:52
Когда WAL-файлы архивируются и пишутся на другой сервер, сильно ли скажется на производительности постгреса если добавить в конфиги еще один сервер, что бы архивы летели сразу на 2 сервака?

Sab0
25.10.2018
17:32:54
Да я хозе обычно если какой то трабл со строками то экранирую
извините за тупой вопрос, но как экранировать кавычку?))

Sab0
25.10.2018
17:33:36
а, то есть я правильно делал

просто не работает))

Fike
25.10.2018
17:33:51
а, то есть я правильно делал
правильно использовать prepared statements ???

Yaroslav
25.10.2018
17:34:44
а, то есть я правильно делал
Нет, неправильно. Правильно использовать parameterized statements.

Михаил
25.10.2018
17:36:34
Когда WAL-файлы архивируются и пишутся на другой сервер, сильно ли скажется на производительности постгреса если добавить в конфиги еще один сервер, что бы архивы летели сразу на 2 сервака?
Этим один процесс занимается. Но если сервер настолько загружен, что вас волнует такой вопрос, копируйте вал с этого второго сервера.

Google
Yaroslav
25.10.2018
17:39:58
Как это - да? Передать запрос так, чтобы он не был разобран и отдельно передать параметры?
Эээ... а какая разница, когда он будет "разобран"? Всё равно это случится хотя бы один раз.

Михаил
25.10.2018
17:41:11
Ну так вопрос-то про то, чтобы передать текст запроса, но не разбирать, вторым хопом передать параметры и потом, видимо, уже и разобрать, и выполнить

Михаил
25.10.2018
17:42:11
Вопрос перечитайте плз)

Yaroslav
25.10.2018
17:42:42
Вопрос перечитайте плз)
Ответ перечитайте плз)

Михаил
25.10.2018
17:42:47
Разницы никакой, но в постгресе такого нет

Разницы с точки зрения результата никакой

Так правильнее

Yaroslav
25.10.2018
17:44:29
Разницы никакой, но в постгресе такого нет
Вообще, разница могла бы быть (если кому-то хочется экономить на roundtrips). Но да, в PostgreSQL этим не стали заморачиваться. :)

Михаил
25.10.2018
17:44:38
Хотя не, не прав. Разница ест

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

Yaroslav
25.10.2018
17:50:55
В случае, если запрос парсится с известными параметрами, при планировании могут быть учтены сами значения этих параметров. Так что разница в подходах есть
А вот PostgreSQL учитывает их всё равно. :) Вопрос, опять-таки, в "глубине" обработки. Parsing — это, кстати, просто создание concrete sytax tree для входной строки (SQL-запроса, в данном случае).

Михаил
25.10.2018
17:54:27
А вот PostgreSQL учитывает их всё равно. :) Вопрос, опять-таки, в "глубине" обработки. Parsing — это, кстати, просто создание concrete sytax tree для входной строки (SQL-запроса, в данном случае).
Не совсем) он учитывает их до тех пор, пока занимается подменой понятия "prepared statement", выполняя планирование на первые пять выполнений,а потом всё, параметры ему больше не интересны

Parsing да, но есть ещеplanning

Yaroslav
25.10.2018
17:57:44
Не совсем) он учитывает их до тех пор, пока занимается подменой понятия "prepared statement", выполняя планирование на первые пять выполнений,а потом всё, параметры ему больше не интересны
А где это Вы взяли "правильное", "официальное" понятие "prepared statement", чтобы говорить о каких-то "подменах"? ;) > Parsing да, но есть еще planning Ну да, это же разные вещи. Если кто-то считает, что: prepared = parsing + planning, PostgreSQL-то тут причём? > а потом всё, параметры ему больше не интересны Или наоборот, потом интересны каждый раз.

Михаил
25.10.2018
18:00:04
Именно,что не интересны

>если кто-то считает, что prepared=parsing+planning ... Oracle так считает, например, и нормально перформит в этой части. Не к столу будет сказано

Yaroslav
25.10.2018
18:01:43
Именно,что не интересны
Нет. Вы неправильно понимаете, как это работает.

Google
Михаил
25.10.2018
18:02:20
Спасибо, что объяснили. С вами приятно общаться. Теперь я знаю, как правильно понимать

Yaroslav
25.10.2018
18:04:18
>если кто-то считает, что prepared=parsing+planning ... Oracle так считает, например, и нормально перформит в этой части. Не к столу будет сказано
Какая нам разница, что считает Oracle (MS SQL тоже так считает, кстати)? "Официальным" термином от этого prepared statement не становится, и не даёт никому права в чём-то подозревать СУБД, которые (вот уже лет 30) считают иначе. ;)

Спасибо, что объяснили. С вами приятно общаться. Теперь я знаю, как правильно понимать
Это просто факт. Если Вам это нужно — можете поискать, как это на самом деле работает. Или спросить.

Gdiya
25.10.2018
18:06:07
Здравствуйте всем, нужна ваша помощь :) Вообщем проблема такая - создал две базы в PGAdmin, работаю с ними через Алхимию(питон) и получается так, что из одной базы, все таблицы дублируются в другую.

Михаил
25.10.2018
18:07:48
_Вы не правильно понимаете, но как правильно я вам не скажу_ Ок. Считаю продолжать не имеет смысла

Yaroslav
25.10.2018
18:10:28
_Вы не правильно понимаете, но как правильно я вам не скажу_ Ок. Считаю продолжать не имеет смысла
> _Вы не правильно понимаете, Когда мне такое говорят, я, например, начинаю искать в google / документации / исходниках, если мне надо. Или спрашиваю. > но как правильно я вам не скажу_ Где я такое писал?! > Считаю продолжать не имеет смысла Да как хотите.

Аггей
25.10.2018
18:33:01
Не совсем понял про prepared statement и планинг запроса. Насколько я помню (сейчас поищу пруфы) , prepared statement не перепланируются каждый раз

Соответственно план может быть не оптимальным

Был неправ. Только парсинг не производится. Перепланирование делается

Не всегда, но делается

Konstantin
25.10.2018
18:48:23
Был неправ. Только парсинг не производится. Перепланирование делается
Для препаред стайтментментов хранится сгенерированный generic план. При первых 5 выполнениях сравнивает среднее время custum плана и generic плана. Если первое не сильно меньше, то впоследствии всегда используется generic план(если не будет инвалидирован из-за изменения каталога). Перепланировка не делается.

Yaroslav
25.10.2018
19:22:35
Там насколько я понял доку - там от параметров зависит - фактически от статистики. Но вам виднее
Зависит от соотношения средней оценочной стоимости 5 первых использований (custom plans) к стоимости generic plan. Далее используется либо generic, либо каждый раз custom. Кажется, так.

Аггей
25.10.2018
19:24:19
Наудачу )

Yaroslav
25.10.2018
19:27:56
Наудачу )
Отчасти да. Т.е., что "залипнет", custom или generic, зависит от первых выполнений. :)

Andrei
25.10.2018
19:36:25
Sab0
25.10.2018
20:15:11
хоспаде, кто-то тут говорил, что кавычка экранируется \’ а у меня заработало когда экранировал второй кавычкой ‘’

да, не очень полезная инфа, но вот мой высер, господа

Google
Terminator
25.10.2018
20:32:45
@zahnik будет жить. Поприветствуем!

Yaroslav
25.10.2018
20:52:44
да, не очень полезная инфа, но вот мой высер, господа
SELECT E'a\'a', 'a''a'; И вообще, https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS

Sab0
25.10.2018
20:53:13
а, теперь все ясно

Аггей
25.10.2018
23:30:46
Возник у меня несколько странный вопрос. Я использую pg_pathman. Имеет ли смысл устанавливать расширение на standby? Будет ли там работать partition pruning?

Andrey
26.10.2018
03:03:49
Возник у меня несколько странный вопрос. Я использую pg_pathman. Имеет ли смысл устанавливать расширение на standby? Будет ли там работать partition pruning?
А разве можно его не устанавливать? Я имею в виду, что оно же создаёт какие-то сущности системные, необходимые для его работы а master и standby ведь в принципе не могут отличаться?

Andrei
26.10.2018
05:19:46
А как вы его используете без установки на стендбай? ???

AlexAnder
26.10.2018
05:28:08


подскажите пожалуйста как выбрать 3 последние коммента к каждому посту?

Виктор
26.10.2018
05:31:46
Может примерно такое( делал без теста- мог с ошибками что-то написать) select * from posts_comments where id in( select m.id from (select distinct post_id from posts_comments) m join lateral(select text_message from posts_comments s where m.post_id=s.post_id order by create_date desc limit 3));

Terminator
26.10.2018
05:39:58
@AgapovAndrey будет жить. Поприветствуем!

Аггей
26.10.2018
05:40:09
Aleksander
26.10.2018
05:43:55
Всем привет. А могу ли я воспользоваться командой COPY (select * from table ) to table1 вместо insert ?

Aleksander
26.10.2018
05:47:17
а copy не пойдет

Таир
26.10.2018
05:47:59
а copy не пойдет
уверен, под капотом там не хуже copy

или там уже есть данные?

Aleksander
26.10.2018
05:48:33
уверен, под капотом там не хуже copy
Мне бы как нибудь ускорить процесс вставки миллиарда записей)

Google
Aleksander
26.10.2018
05:48:43
Andrei
26.10.2018
05:50:25
Просесс вставки ограничен скоростью дисковой системы

Таир
26.10.2018
05:51:25
Мне бы как нибудь ускорить процесс вставки миллиарда записей)
отключи констрейнты и индексы на момент вставки

Aleksander
26.10.2018
05:57:39
Можно через stdout )
а эта команда в фаил создаст записи или просто из запроса в таблицу вставит?

Aleksander
26.10.2018
05:59:14
Zloy Dobriy
26.10.2018
05:59:45
Stdout это не команда

Aleksander
26.10.2018
06:00:23
Stdout это не команда
ну я имею ввиду copy (select * from table ) stdout delimetr '|' создаст фаил?

Zloy Dobriy
26.10.2018
06:01:41
Эээ...

А взять и пропрбовать?

Aleksander
26.10.2018
06:02:26
А взять и пропрбовать?
я просто прежде чем попробовать хочу понять как это работает

Zloy Dobriy
26.10.2018
06:03:31
Тогда достаточно заглянуть в документацию, имхо.

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