@pgsql

Страница 1059 из 1062
Yaroslav
25.10.2018
13:34:48
1. Не 2,3. Ну, придётся видимо потестить что быстрее.
> 1. Не Почему бы нет? У Вас уже от этого есть проблемы с производительностью, прямо 100%?

many-faced
25.10.2018
13:35:11
Terminator
25.10.2018
13:37:37
@arxxxangel будет жить. Поприветствуем!

Google
Yaroslav
25.10.2018
13:38:28
Нет, проблемы с эксепшенами от дедлоков.
Эээ... что? Какие от них могут проблемы? Ну повторите транзакцию N раз, и всё. Просто на всякий случай (если Вы вдруг не знаете): DEADLOCK — нормальная ситуация, "кинуть" его в любой момент может любая СУБД (когда ей "захочется"), и приложения обязаны их обрабатывать. Т.е., если корректность работы приложения нарушается от присутствия DEADLOCKs — в нём допущена (грубая) ошибка работы с транзакциями.

Yaroslav
25.10.2018
13:42:09
Просвятите, что нормального в том, что две транзакции образуют дедлок? И как с этим быть в приложении?
Нормального в этом то, что они (и другие их аналоги, implicit rollbacks) теоретически неизбежны, и потому входят в любой протокол обеспечения изоляции транзакций. А как с этим быть в приложении, я уже написал выше.

many-faced
25.10.2018
13:43:00
ну, вот и буду либо сортировать видимо.

Makkusu
25.10.2018
13:45:39
Просвятите, что нормального в том, что две транзакции образуют дедлок? И как с этим быть в приложении?
было время читал книгу по пхп мускулу и там прям конкретно описывалась эта ситуация... как всё запоминать ? ?

Yaroslav
25.10.2018
13:45:48
ну, вот и буду либо сортировать видимо.
Причём тут "сортировать"? Deadlock handling (т.е. повторы транзакций) обязан быть в приложении. А сортировать / блокировать — это deadlock avoidance (необязателен).

Yaroslav
25.10.2018
13:50:28
сортировать это proactive problem solving ?
Не solving, а avoidance. Т.е. избегание. В любой нетривиальной схеме и нагрузке Вы от них никуда не денетесь. Поэтому, пока не мешают... какая разница? Впрочем, если "сортировка" применяется заранее и ничего не стоит, это ещё лучше, естественно. ;)

many-faced
25.10.2018
13:52:32
Не solving, а avoidance. Т.е. избегание. В любой нетривиальной схеме и нагрузке Вы от них никуда не денетесь. Поэтому, пока не мешают... какая разница? Впрочем, если "сортировка" применяется заранее и ничего не стоит, это ещё лучше, естественно. ;)
Ваш посыл понятен. Но мне кажется недопустить проблеммной ситуации в моём случае дешевле чем разбираться с последствиями. Что я потом буду делать с этими транзакциями? Отдельную обработку писать для дедлокнувшихся? Сомнительно.

Yaroslav
25.10.2018
13:55:35
Ваш посыл понятен. Но мне кажется недопустить проблеммной ситуации в моём случае дешевле чем разбираться с последствиями. Что я потом буду делать с этими транзакциями? Отдельную обработку писать для дедлокнувшихся? Сомнительно.
> Но мне кажется недопустить проблеммной ситуации в моём случае дешевле чем разбираться с последствиями. Если у Вас случай тривиальный, Вам это удастся. А если нет — так нет. > Что я потом буду делать с этими транзакциями? Отдельную обработку писать для дедлокнувшихся? Сомнительно. Вы не поняли эту часть моего посыла, похоже. Такая обработка обязана быть, для всех транзакций в Ваших приложениях (если Вам важен результат, конечно). Если её нет, и Ваше приложение от этого ведёт себя как-то не так — это Ваша и только Ваша ошибка, без вариантов.

Terminator
25.10.2018
14:10:02
Sergey N будет жить. Поприветствуем!

Viktor
25.10.2018
14:17:31
Всем привет! Есть postgres. Настроена асинхронная репликация. Есть партицированная по дате таблица. Делаю запрос к ридонли реплике, и получаю ошибку что данные уже кто-то изменил на мастере, хотя изменений в старых таблицах нет. Куда смотреть?

Google
Viktor
25.10.2018
14:21:54
Запрос может конфликтовать с вакуумом на мастере. Посмотрите про hot_standby_feedback.
Но данные в старых партициях не удаляются/изменяются

Terminator
25.10.2018
14:22:14
@winged_pegasus будет жить. Поприветствуем!

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

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

Bonart
25.10.2018
14:24:43
Друзья, Столкнулись с проблемой - постгря, обкурившись, использует hash join для двух больших таблиц Подсказками не решается - EF Core не умеет их генерировать в своих запросах. Что можно сделать? Индексы все есть, при недельных выборках план запроса использует нормальные Nested Loops для больших таблиц и хеш для маленьких. Но месячная выборка почему-то генерит план с полным чтением большой таблицы и hash join.

Чем тут можно помочь? Вес рандомного чтения страниц понижали, памяти для кеша добавляли - результат тот же

Павел
25.10.2018
14:26:41
Сохраняю clob в postgresql а в базе вижу 7 значное число. Что за фигня?

Terminator
25.10.2018
14:28:05
@yourmommy1488 будет жить. Поприветствуем!

Yaroslav
25.10.2018
14:30:49
Но данные в старых партициях не удаляются/изменяются
Интересно. А подробнее (какая версия PostgreSQL, какой вид партционирования, какие настройки)?

Terminator
25.10.2018
14:31:05
@steelden будет жить. Поприветствуем!

Bonart
25.10.2018
14:35:07
Делает неправильно - недельная выборка 10 секунд, месячная - 216, гребет в процессе целиком (seq scan) таблицу с 600 тысячами записей.

Yaroslav
25.10.2018
14:38:57
Делает неправильно - недельная выборка 10 секунд, месячная - 216, гребет в процессе целиком (seq scan) таблицу с 600 тысячами записей.
Почему "неправильно"-то. Вы сравнивали? Убедились, что cost-ы у Вас правильно указаны, что estimated rows близки к реальности?

Yaroslav
25.10.2018
14:43:52
10.3, партицирована по ranges на поле с датой
А план запроса показывает обращение только к старым данным, т.е. partition pruning случается, и "новых" partitions в плане запроса уже нет?

Yaroslav
25.10.2018
14:49:55
Да, только нужные, но это в explain без analyze
Так это и хорошо, казалось бы... А ошибка какая, можете показать полностью?

Google
Bonart
25.10.2018
14:51:08
Так, пока отбой - вижу нереально тормозящую выборку из самой тяжелой таблицы еще до join

Sab0
25.10.2018
16:39:56
а кто в курсе что делать если не получается внести в таблицу текст с символом типа ® ?

в мускуле это решалось сменой коллейшна и типа соединения

Makkusu
25.10.2018
16:59:18
а что если там емодзи?

Sab0
25.10.2018
16:59:42
то есть с любым символом трабл?
только со всякими специфическими

эмодзи тож не считывает

какой коллейшн?))

Makkusu
25.10.2018
17:00:28
Sab0
25.10.2018
17:00:46
это ютф?
да, по идее

®

этот значок

ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near "s®" LINE 1: ...on, price, picture, vendor) VALUES ('Ботинки Levi's®', 'men'...

Sab0
25.10.2018
17:03:06
это slqalchemy

Makkusu
25.10.2018
17:03:16
экранировать попробуй

Sab0
25.10.2018
17:04:12
экранировать попробуй
это не надо экранировать)

там только всякие спец-символы типа кавычек

Google
Makkusu
25.10.2018
17:04:28
это не надо экранировать)
Да я хозе обычно если какой то трабл со строками то экранирую

Fike
25.10.2018
17:06:00
там только всякие спец-символы типа кавычек
'Ботинки Levi's®' Сколько здесь одинарных кавычек?

Fike
25.10.2018
17:06:22
???

Sab0
25.10.2018
17:06:22
я тупанул

Makkusu
25.10.2018
17:06:22
)))

Sab0
25.10.2018
17:06:27
не в ту сторону подумал

Makkusu
25.10.2018
17:06:28
вот и я о чем

думаю что не так

Sab0
25.10.2018
17:06:37
да я не понял просто даже))

спасибо!

Fike
25.10.2018
17:06:56
вы там напрямую строки конкатенируете?

http://initd.org/psycopg/articles/2012/10/01/prepared-statements-psycopg/

есть еще вроде parametrized statements, скорее всего дял одноразовых запросов еще лучше подойдет

Fike
25.10.2018
17:11:22
вы потом бобби тейблса словите

Fike
25.10.2018
17:13:07
насколько понимаю, то же самое, только не prepared

Google
Fike
25.10.2018
17:13:14
но я не питонист и вообще просто прогуглил

Makkusu
25.10.2018
17:13:20
Кстате нормально ли использовать часто тип String (из sequelize) для маленьких строк до 30 символов?

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