@dba_ru

Страница 283 из 718
Vladislav
18.10.2017
17:21:59
зачем эти ваши подзапросы если есть джоины
Потому что, если правильно их применять, производительность выше

lost
18.10.2017
17:28:25
Ага, и специально для этого в mysql 5.7 появилась оптимизация, которая реврайтит подзапросы в джоины)

Не всегда она выше

Зависит от кейса

Google
Vladislav
18.10.2017
17:44:28
Ну это скорее mysql кривой, в других базах все норм

Rishat
19.10.2017
07:26:27
Доброе утро! Из-за 50 % потери производительности при использование ssl шифрования между mysql клиентом и базой, по совету percona перешел на связку openvpn между клиентом и базой, к сожалению, это дало примерно те же результаты производительности что и использование ssl около 6500 per sec на read. Все тачки на тестах в ресурсы точно не упирались. Подскажите пожалуйста способ как лучше защитить mysql подключение без существенных потерь производительности ?

freecod
19.10.2017
07:33:49
Скрыть их в ДМЗ

Уроде
19.10.2017
07:35:30
У кого опыт в SQL есть, подскажите с типовой задачкой.... есть табличка с полями время и delta... delta - целое число (полож. или отрицательное), как найти запись при которой SUM(delta) по всем более ранним записям максимальна?

AnTi3z ??
19.10.2017
07:36:55
мне нужно найти максимум значения имея дельту на каждый момент времени

получается надо сделать выборку, добавив поле, которое равно сумме delta всех предыдущих записей....

SELECT time as time1, delta, (SELECT SUM(SELECT delta FROM tbl WHERE time <= time1) as current .... что-то типа такого

Dmitriy
19.10.2017
08:06:19
Приветствую.

Oracle: так я получаю текущий audsid select sys_context('USERENV', 'SESSIONID') from dual;

А вот так я могу получить историю буквально за месяц select * from v$active_session_history

Где можно найти полную историю за все время?

Ilia
19.10.2017
08:10:40
Историю чего, ? Разберись...

v$active_session_history может тоже отсутствовать, на сколько я знаю. СУБД же не может тебе за всю историю существования все сессии хранить.

Google
Dmitriy
19.10.2017
08:12:49
Ну вот смотри, в таблицах при инсерте также вставляется audsid. Мне нужно по этому ид вычилсять кто вставил данную запись

Ilia
19.10.2017
08:14:19
Это либо надо аудит системный вести, либо самому аудит делать , записывать каждый ченж в БД

Dmitriy
19.10.2017
08:14:34
Без включения аудита оракл хранить историю?

Ilia
19.10.2017
08:14:46
Историю чего?

Dmitriy
19.10.2017
08:15:27
ну этих audsid, ну я уже понял что походу либо сами вставлять либо вкл. аудит да?

Ilia
19.10.2017
08:15:50
Ну вот смотри, в таблицах при инсерте также вставляется audsid. Мне нужно по этому ид вычилсять кто вставил данную запись
SID сохранять довольно бессмысленно, сессия кончится, и SID-а нет, останется только циферки....

ну этих audsid, ну я уже понял что походу либо сами вставлять либо вкл. аудит да?
Ты русский язык изучал в школе? Внятно объяснить, что тебе надо, можешь?

Dmitriy
19.10.2017
08:17:03
А вот эта хня sys_context('USERENV', 'SESSIONID') она всегда уникальна?

Ilia
19.10.2017
08:17:51
Это идентификатор текущей сессии. Единомоментно он уникален. Сессия кончилась — всё, его нет. Началась новая — она может быть с тем же SID.

Dmitriy
19.10.2017
08:18:19
Ты русский язык изучал в школе? Внятно объяснить, что тебе надо, можешь?
История мне нужна, какой пользователь это сделал.

Ilia
19.10.2017
08:18:29
История мне нужна, какой пользователь это сделал.
Это либо надо аудит системный вести, либо самому аудит делать , записывать каждый ченж в БД

В ORA есть встроенный системный аудит, который записывает все операции, в том числе даже доступ. НО НЕ сами изменённые данные. Это надо делать самому.

Dmitriy
19.10.2017
08:21:34
Ну а системный аудит если его включить, он насколько долго хранит историю? это настраивается?

Ilia
19.10.2017
08:22:39
Да, настраивается. Совсем глубокие детали я не знаю.

Ilia
19.10.2017
08:24:16
Знаю, что там настраивается, что записывать, какой вид доступа к БД, можно записывать ВСЁ. Разумеется, можно и настраивать, как долго это хранить. Также могу сказать, что это создаёт СЕРЬЁЗНУЮ дополнительную нагрузку на СУБД.

Dmitriy
19.10.2017
08:26:57
а вот про эту табличку чет можешь сказать? select * from SYS.AUD$;

Google
Ilia
19.10.2017
08:33:01
Ну вроде это как раз аудита таблица.

Точно не знаю.

Dmitriy
19.10.2017
08:34:15
AUDSID Уникальный идентификатор сессии за всё время жизни экземпляра базы данных Oracle. на сколько это соответствует действительности? я планирую сделать свой аудит (таблица в которой будет audsid, имя пользователя и дата коннекта) Что мне за id взять? Стоит ли брать audsid?

А в таблицах которые будут "отслеживаться" будет поле с этим id (`sys_context('USERENV', 'SESSIONID')`) и по нему вытаскивать кто вставил/изменил

Ilia
19.10.2017
08:45:56
А в таблицах которые будут "отслеживаться" будет поле с этим id (`sys_context('USERENV', 'SESSIONID')`) и по нему вытаскивать кто вставил/изменил
Я наверное перепутал переменные окружения. я про SID говорил, но в принципе это мало что меняет.

Алексей
19.10.2017
08:46:40
AUDSID Уникальный идентификатор сессии за всё время жизни экземпляра базы данных Oracle. на сколько это соответствует действительности? я планирую сделать свой аудит (таблица в которой будет audsid, имя пользователя и дата коннекта) Что мне за id взять? Стоит ли брать audsid?
Это значение уникально от момента старта инстанса до его останова. После перезагрузки базы ты можешь теорeтически получить такой же audsid. бери уж лучше тогда scn select current_scn from v$database;

Алексей
19.10.2017
08:49:53
да, on logon

Проверил инфу насчет audsid - он берется из сиквенса, там максимум 2 млрд значений может быть. После этого опять в 1 сбросится.

Алексей
19.10.2017
09:00:11
не должно быть

Rishat
19.10.2017
09:04:54
База 16 ядер ram 16 , хост с sysbench 4 ядра 4 гига

Sergey
19.10.2017
09:05:51
База 16 ядер ram 16 , хост с sysbench 4 ядра 4 гига
А если клиента перенести к базе? Получится такое же падение производительности?

Rishat
19.10.2017
09:07:28
Нет возможности , согласно плану архитектуры приложения это разные хосты , если бы можно так было сделать необходимость в ssl или openvpn отпала бы сама собой

Ilia
19.10.2017
09:08:57
Нет возможности , согласно плану архитектуры приложения это разные хосты , если бы можно так было сделать необходимость в ssl или openvpn отпала бы сама собой
Вам надо это приложение в ту же сеть вляпать. Шифрование трафика как угодно будет тормозить, если трафик большой.

KOT
19.10.2017
09:09:16
База 16 ядер ram 16 , хост с sysbench 4 ядра 4 гига
Не, не верно вопрос понят. В камне есть встроенные инструкции для шифрования? 50% это слишком много, 3-5% это норма

Sergey
19.10.2017
09:12:23
Не, не верно вопрос понят. В камне есть встроенные инструкции для шифрования? 50% это слишком много, 3-5% это норма
50% - это не затраты, это падение производительности (если я правильно понял) Мы в аналогичной архитектуре наблюдали 4x-5x падение производительности.

Google
Алексей
19.10.2017
09:14:23
На мой взгляд для аудита заюзать штатные процедуры Оракла. Потому что ваша процедура будет скорее всего грузить базу сильнее, чем штатная.

KOT
19.10.2017
09:14:47
50% - это не затраты, это падение производительности (если я правильно понял) Мы в аналогичной архитектуре наблюдали 4x-5x падение производительности.
Стоп... А на что уходят ресурсы? Сколько открыто соединений? Сколько серверов коннектятся у вас? Пул соединений есть? Тут не само шифрование нагадило, сколько генерация хандшэйкинга на каждый запрос

Rishat
19.10.2017
09:16:26
Уточнение хост и база являются квм виртуалками , каких либо процессорных инструкций касаемо шифрования я не обнаружил

Тк пока это тестовый стенд

KOT
19.10.2017
09:17:42
А итоговый тоже будет виртуалкой или дедиком?

Admin
ERROR: S client not available

Rishat
19.10.2017
09:21:13
Нет онли дедики

KOT
19.10.2017
09:44:47
Тогда и тестируй так же

Александр
19.10.2017
11:12:33
https://www.percona.com/blog/2017/09/19/proxysql-improves-mysql-ssl-connections/
это же для php в основном проблема

Maxim ??
19.10.2017
11:14:03
эт еще почему?

Александр
19.10.2017
11:14:11
почитал выше, зачем openvpn если достаточно любого туннелирования (тот же IPSEC отдельно)

эт еще почему?
ну он же постоянно переподсоединяется

и много ресурсов тратиться именно на повторные подключения к БД

Maxim ??
19.10.2017
11:14:52
ну он же постоянно переподсоединяется
а это уже как напишешь приложение.

Александр
19.10.2017
11:15:13
ну я про веб приложения

там у php мало интриги

в целом в статье перконовской говориться именно про пересоединения к mysql

Google
Александр
19.10.2017
11:16:42
самый быстрый по производительности способ туннелирования (с шифрованием) в линуксе - ipsec, если я не ошибаюсь

интересно почему перкона его в сравнении не учитывает (и не нужно будет proxySQL)

KOT
19.10.2017
11:20:24
1 клиент, 1 сервер , 10 соединений
А соединения держатся открытыми или постоянно пересоздаются?

Rishat
19.10.2017
11:20:44
Rushan
19.10.2017
12:47:52
Добрый день! Подскажите плз, что я не так делаю: select * from publications pub join (select * from instances where instances.IdOfPublication = pub.IdOfPublication limit 1) inst on pub.IdOfPublication = inst.IdOfPublication where pub.IdOfPublication = 1 Где-то делаю глупость, не пойму где )

смысл в том, чтобы вытащить у приджойненной таблицы первое совпадение

Vladislav
19.10.2017
12:51:05
первое случайное совпадение

ох уж эти ваши ахтунги...

Vitality
19.10.2017
12:51:15
+

Vladislav
19.10.2017
12:52:11
почему нельзя сделать просто джойн и лимит? зачем подзапрос?

KOT
19.10.2017
12:54:03
первое случайное совпадение
Да ещё бы и успеть во время ?

Rushan
19.10.2017
12:54:17
это просто сокрщенно, на самом деле тут ещё перед этим 5 таблиц крепится джойнится)

Vladislav
19.10.2017
12:54:45
сокращено написан неоптимизированный бред

думаю, что в полной версии он аналогичный

Rushan
19.10.2017
12:56:49
а как мне соптимизировать ?

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