@dba_ru

Страница 531 из 718
Maksym
06.06.2018
14:40:48
Короче ты принят, завтра на 9:00)

Евгений
06.06.2018
14:41:57
Ну ещё расскажи структуру класстерного интекса, некластерного индекса, и таблицы без индекса вообще
индексы очень сильно помогают с where: server не пробегает всю таблицу, а по индексам находит сразу данные. Это можно сказать оглавление таблицы. Кластерный индекс по умолчанию вешается на уникальный столбец и он только один на таблице, некластерных можно хоть сколько повесить. Как определить нужен или нет индекс: берем запрос и смотрим на план выполнения, оптимизатор предложит сам куда повесить индексы, чтобы производительность выросла.

Ilia
06.06.2018
14:42:47
Ненеен СТРУКТУРУ! Какие страницы, что там лежит, как связано...

Alexey
06.06.2018
14:42:57
Там insert, а ты говорил про delet & update
Тема похожа - главное что постгри после освобождения транзакции перечитывает только одну строку (которая была заложена), и может пропустить, а Oracle заново перечитывает всю таблицу после освобождения лока

Google
Alexey
06.06.2018
14:45:18
Нихера никто не перечитывает. Это для красного словца вставлено.
Я проверял этот пример на Oracle :) все отработало корректно

Ilia
06.06.2018
14:45:38
Я проверял этот пример на Oracle :) все отработало корректно
Это из цикла "я пощупал слона, он тёплый и круглый!"

Alexey
06.06.2018
14:48:16
Т.е. ты полагаешь, что после того, как один писатель налетел на лок, и вышел из него, его транзакция заново перезапускается?
Я думаю что все кто ожидали окончания лока - продолжают работать со своей версией данных, без учета изменений

Ilia
06.06.2018
14:49:02
Именно так.

Видны только версии записей, коммит которых младше времени начала данной транзакции.

Alexey
06.06.2018
14:51:12
Видны только версии записей, коммит которых младше времени начала данной транзакции.
Согласен, в постгри тоже так можно сделать изменив уровень изоляции транзакции - вопрос почему они так по умолчанию не поступили. А потом молодёж хиты выдаёт ...

Ilia
06.06.2018
14:51:34
Там уровень один.

не меняется

Это пишушая транзакция.

Google
Ilia
06.06.2018
14:52:25
Если бы там был SELECT а потом UPDATE по данным селекта, то да. Либо если менять на SERIALIZABLE.

А так тут уровень ничего не меняет. Он НОЛЬ. Меньше меньшего. Не может быть другой.

Alexey
06.06.2018
14:53:20
Но поведение по дефолту в двух базах разное и в пг приводит к ошибкам, я об этом

Ilia
06.06.2018
14:53:57
Да одинаковое, оба версионники. Тем более это не чтение, а запись.

Поведение читателей и писателей может отличаться, тут два писателя.

Тут даже блокировочник должен ровно так же работать

Единственно что в блокировочнике будет не так, он не сможет старую версию разблокированной транзакции взять.

Ilia
06.06.2018
15:00:58
Ну да, только ты там с формулировкой намутил. Надо знать чётко, какая транзакция первая стартовала.

Fike
06.06.2018
15:19:54
это дедлок?
https://pbs.twimg.com/media/ChKxtlFWkAALbkK.jpg

Эльнас
06.06.2018
15:21:00
да шо, у меня сегодня случился дедлок, я теперь во всем его вижу

Ilia
06.06.2018
15:26:15
Дэдлок, товарищи, дэдлок!

Anton
06.06.2018
15:27:08
снесём и поднимим из бэкаппа

aster
06.06.2018
20:30:30
А вот вопрос. Ни с того ни с сего в mssql один из запросов криво скомпилировался и стал выполняться секунды вместо обычных миллисекунд. А запрос популярный. Выстроилась очередь. Потом локи. Потом пришлось килять процессы. Но они накапливались вновь. Пока не очистили процкэш базы - запрос выполнялся по скомпилированному кривому плану. Впервые такое видел.

Сопсна вопрос - чо это было? И как с этим бороться?

Ad hoc workloads был включён

Al
06.06.2018
20:39:39
Вот когда сможешь повторить тогда и станет понятно что это было:)

Denis
06.06.2018
20:41:01
Ага повторить тут найти такие штуки бывает сложно ))

Google
Al
06.06.2018
20:44:34
Тогда сожнл считать что это редко случающаяся магия. И забить

Denis
06.06.2018
20:45:32
Тогда сожнл считать что это редко случающаяся магия. И забить
++) ага если начинает повторяться обкладваешь логами все что можно ))

Al
06.06.2018
20:46:27
++) ага если начинает повторяться обкладваешь логами все что можно ))
А потом обкладываешь того кто сунул туда руки. И совсем не логами

Denis
06.06.2018
20:49:30
))

aster
06.06.2018
20:53:15
Ну в общем все так и думал. Повтор. Логи. Воспроизведение. Если удастся воспроизвести - в сапорт

Аптайма там, есличо - много. С месяц точно (установка обновлений)

Ilia
07.06.2018
04:40:53
Сопсна вопрос - чо это было? И как с этим бороться?
Типичная штука. Бороться что характерно почти никак нельзя. Можно только прибивать хинтами план хороший к запросу либо как ни странно статистику НЕ updateить на эти таблицы.

Shokha
07.06.2018
05:07:21
join('INNER JOIN', 'image', 'article.id = image.article_id', 'LIMIT = 1')

как тут правилно писат чтобы он взял толко 1 данние?

Shokha
07.06.2018
05:17:33
Invalid argument supplied for foreach()

$model = (new \yii\db\Query()) ->select('*') ->from('article') ->join('INNER JOIN', 'image', 'article.id = image.article_id', 'LIMIT = 1') ->join('LEFT JOIN', 'profile', 'article.user_id = profile.user_id') ->all();

Maksym
07.06.2018
07:11:24
Сопсна вопрос - чо это было? И как с этим бороться?
как часто обновляется статистика? ну вот такое бывало у нас и боролись только freeproccache)))

Ilia
07.06.2018
08:22:25
как часто обновляется статистика? ну вот такое бывало у нас и боролись только freeproccache)))
Так наоборот, вытеснение запроса из кэша и инициирует его повторную оптимизацию, которая может завершиться другим, не оптимальным планом. Форсить вытеснение можно только с целью имитации возникновения такой проблемы.

как часто обновляется статистика? ну вот такое бывало у нас и боролись только freeproccache)))
Паттерн там такой (у возникновения проблемы) Запрос в кэше, план хороший, работает ОК. Потом кто-то UPDATE-ить статистику. Потом запрос (план) вытесняется из кэша. Потом он запускается на выполнение План строится заново , с новой статистикой. План получается другой и снова кладётся в кэш планов. И пошло-поехало. Я пока писал, понял, что ты имел в виду. Вытеснить плохой план из кэша. ОК, да но надо быть уверенным , что следующий план будет хорошим.

Maksym
07.06.2018
08:38:40
при актуальной статистике шанс больше)

Ilia
07.06.2018
08:41:27
Не факт

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

Google
Maksym
07.06.2018
08:43:24
но она актуальная

а это значит план по идее более подходящий

Ilia
07.06.2018
08:43:38
Ну и что ь

Например на верхней границе гистограммы ....

Maksym
07.06.2018
08:45:35
ну да кто-то фиганул апдейт массовый после этого статистика распределения данных уже неактуальная и текущие планы покривило после апдейта статистики планы перестроятся, новые планы при новых данных могут быть хуже старых планов при старых данных, но лучше черм старые планы при новых данных (вот такой водоворот встречал) Но это один из кейсов)

Admin
ERROR: S client not available

Ilia
07.06.2018
08:45:37
Раньше значение не попадало в гистограмму, считалась большой селективности. Потом попало в последний диапазон, и там оказалось значений много, селективность низкая

Maksym
07.06.2018
08:49:56
Ты предлагаешь не апдейтить статистику после массовых изменений данных?)

ну одному запросу может и пофиг, но подавляющему большенству других как правило становится плохо)

Kefir
07.06.2018
10:57:33
День добрый, с tarantool кто-нибудь работал?

Man
07.06.2018
16:24:18
Ребят, я новичек в базах, подскажите в чем прокол

ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: YES)

Эльнас
07.06.2018
16:25:40
ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: YES)
неправильная комбинация пароля и логина

error 1045 mysql 28000 access denied for user в гугл и первая ссылка

Man
07.06.2018
16:26:05
Без пароля заходит, что самое странное

Эльнас
07.06.2018
16:26:23
ну значит пароля не стоит

у этого пользака

Botvyak
07.06.2018
17:14:14
Кто нить может помочь с двумя по сути не сложными заданиями по sql? А то у меня мозг взорвался уже))))

Google
Al
07.06.2018
17:14:58
Взорвался мозг от не сложных заданий...

Botvyak
07.06.2018
17:15:26
Я просто 7 лет не открывал эскуэль

http://www.sql.ru/forum/1295434/kak-vyvesti-polya-iz-rezultata-zaprosa-v-stroku

Тут можно ссылки?

lost
07.06.2018
17:31:03
select substring_index(column, '-', 1), concat(substring_index(column, '-', 1), '-', group_concat(substring_index(column, '-', -1) SEPARATOR '-')) from foo group by 1

"На стандартном SQL задача нерешаема. " ну ну...

Botvyak
07.06.2018
17:32:25
Спасибо. Сейчас разберусь

Можно я как понимаю склеить было все телефоны через разделитель. С этим проблем нет и запихать в одно значение

lost
07.06.2018
17:35:09
склеить то можно, только мух от котлет отделить необходимо

на форум солюшн залей, пусть побомбят

Botvyak
07.06.2018
17:37:24
на форум солюшн залей, пусть побомбят
Ну я хотел спросить у тебя) можно ли чтоб бомбануло у них отписаться))

lost
07.06.2018
17:37:41
да наздоровье, патент не оформлял

Botvyak
07.06.2018
17:38:16
А через pivot как то можно это сделать?

Развернув таблицу

lost
07.06.2018
17:38:36
не могу подсказать, с mssql не работал

по моему только там он есть

Страница 531 из 718