Fike
25.10.2018
17:14:34
это не в конкретном языке, это в базе данных есть
Makkusu
25.10.2018
17:14:59
Google
Makkusu
25.10.2018
17:15:48
это просто varchar
Fike
25.10.2018
17:16:30
Отдельно шлется запрос, отдельно параметры к нему. В идеале БД парсит запрос, выполняет нужный анализ, может быть, даже компилирует его, а потом драйвер просто передает параметры. Понятное дело, что это дороже и не нужно, если надо просто один раз выполнить запрос, но я не знаю, существует ли такое в разных БД вообще - просто передать запрос и параметры без prepared.
Makkusu
25.10.2018
17:16:53
Baha
25.10.2018
17:18:52
Когда WAL-файлы архивируются и пишутся на другой сервер, сильно ли скажется на производительности постгреса если добавить в конфиги еще один сервер, что бы архивы летели сразу на 2 сервака?
Sab0
25.10.2018
17:32:54
Makkusu
25.10.2018
17:33:18
Sab0
25.10.2018
17:33:36
а, то есть я правильно делал
просто не работает))
Fike
25.10.2018
17:33:51
Sab0
25.10.2018
17:34:37
Yaroslav
25.10.2018
17:34:44
Отдельно шлется запрос, отдельно параметры к нему. В идеале БД парсит запрос, выполняет нужный анализ, может быть, даже компилирует его, а потом драйвер просто передает параметры. Понятное дело, что это дороже и не нужно, если надо просто один раз выполнить запрос, но я не знаю, существует ли такое в разных БД вообще - просто передать запрос и параметры без prepared.
> существует ли такое в разных БД вообще - просто передать запрос и параметры без prepared.
Например, в PostgreSQL — условно, да (хотя это всё равно несколько сообщений в протоколе).
Но дело тут на самом деле в "глубине" обработки запроса, я думаю.
Михаил
25.10.2018
17:36:34
Google
Baha
25.10.2018
17:37:12
Михаил
25.10.2018
17:37:54
Yaroslav
25.10.2018
17:39:58
Михаил
25.10.2018
17:41:11
Ну так вопрос-то про то, чтобы передать текст запроса, но не разбирать, вторым хопом передать параметры и потом, видимо, уже и разобрать, и выполнить
Yaroslav
25.10.2018
17:41:57
Михаил
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
Михаил
25.10.2018
17:44:38
Хотя не, не прав. Разница ест
В случае, если запрос парсится с известными параметрами, при планировании могут быть учтены сами значения этих параметров. Так что разница в подходах есть
Yaroslav
25.10.2018
17:50:55
Михаил
25.10.2018
17:54:27
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
Gdiya
25.10.2018
18:06:07
Здравствуйте всем, нужна ваша помощь :)
Вообщем проблема такая - создал две базы в PGAdmin, работаю с ними через Алхимию(питон) и получается так, что из одной базы, все таблицы дублируются в другую.
Михаил
25.10.2018
18:07:48
_Вы не правильно понимаете, но как правильно я вам не скажу_
Ок. Считаю продолжать не имеет смысла
Yaroslav
25.10.2018
18:10:28
Аггей
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
18:54:45
Аггей
25.10.2018
19:16:04
Yaroslav
25.10.2018
19:22:35
Аггей
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
Sab0
25.10.2018
20:53:13
а, теперь все ясно
Dmitry
25.10.2018
22:47:02
Хотя если нет общего кэша и засада с дорогими коннектами профит - хз
Аггей
25.10.2018
23:30:46
Возник у меня несколько странный вопрос. Я использую pg_pathman. Имеет ли смысл устанавливать расширение на standby?
Будет ли там работать partition pruning?
Andrey
26.10.2018
03:03:49
Andrei
26.10.2018
05:19:46
А как вы его используете без установки на стендбай? ???
Михаил
26.10.2018
05:21:19
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 ?
Таир
26.10.2018
05:46:59
Aleksander
26.10.2018
05:47:17
а copy не пойдет
Таир
26.10.2018
05:47:59
или там уже есть данные?
Aleksander
26.10.2018
05:48:33
Google
Aleksander
26.10.2018
05:48:43
Andrei
26.10.2018
05:50:25
Просесс вставки ограничен скоростью дисковой системы
Таир
26.10.2018
05:51:25
Andrey
26.10.2018
05:52:17
Aleksander
26.10.2018
05:57:39
Zloy Dobriy
26.10.2018
05:59:05
Aleksander
26.10.2018
05:59:14
Zloy Dobriy
26.10.2018
05:59:45
Stdout это не команда
Aleksander
26.10.2018
06:00:23
Zloy Dobriy
26.10.2018
06:01:41
Эээ...
А взять и пропрбовать?
Aleksander
26.10.2018
06:02:26
Zloy Dobriy
26.10.2018
06:03:31
Тогда достаточно заглянуть в документацию, имхо.