
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

Ilia
06.06.2018
14:43:39

Alexey
06.06.2018
14:45:18

Ilia
06.06.2018
14:45:38

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
Да одинаковое, оба версионники. Тем более это не чтение, а запись.
Поведение читателей и писателей может отличаться, тут два писателя.
Тут даже блокировочник должен ровно так же работать
Единственно что в блокировочнике будет не так, он не сможет старую версию разблокированной транзакции взять.

Alexey
06.06.2018
14:59:55

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

Alexey
06.06.2018
15:06:41

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
))

Fike
06.06.2018
20:50:56

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

Ilia
07.06.2018
04:40:53

Shokha
07.06.2018
05:07:21
join('INNER JOIN', 'image', 'article.id = image.article_id', 'LIMIT = 1')
как тут правилно писат чтобы он взял толко 1 данние?

Andrey
07.06.2018
05:16:25
без =

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

Ilia
07.06.2018
08:22:25
как часто обновляется статистика?
ну вот такое бывало у нас и боролись только 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 кто-нибудь работал?

Ilia
07.06.2018
11:44:43

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 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 не работал
по моему только там он есть