Интересно, какие инструменты или системы позволяют хранить и обрабатывать логи с целью data analysis/mining?
Странно, мне показалось, что ваш стартап как раз и разрабатывает такие инструменты. Но я еще у своего родственника спрошу, вдруг это его стартап этим занимается.
Только за один день в компании может накапливается несколько миллионов лог-файлов. В одном файле может быть несколько миллионов записей/строк разной длины и содержания.
Ничего не путаете? Если даже одна строка будет состоять из 1 символа, это 1 ТБ в день. А символов будет как минимум два (1 просто символ, второй - перенос строки).
Сейчас везде хотят от разработчиков знаний DBA.
У разработчиков спрашивают про партиции
И рассказывают, разработчику о том, как они помогли, что теперь стало быстрее.
Говорят не про схемы, не про алгоритмы, а про хинты, индексы итд (временно решают проблему, откладывают ее)
И вы пришли искать у меня понимания, защиты и слов поддержки? Бесполезно, я тоже считаю, что разработчику надо знать про хинты, индексы и партиции.
Тем более что знать там надо не так уж и много. И вообще, лучше знать больше, чем меньше.
А типа TOAD, но с профайлером, чтобы удобно и графически анализировать?
Я ж говорю - Oracle Enterprise Manager. Удобно и графически. Погуглите скриншоты.
Во всех книгах пишут, что надо алгоритмы менять - это помогает.
В каких книгах? SQL - это вообще не про алгоритмы. Алгоритмы - это в императивных языках, где вы указываете процессору: возьми байт отсюда, сложи с тем байтом, положи туда. SQL - декларативный язык, вы на нем описываете, как должен выглядеть результат, а способ получения этого результата (какие байты откуда брать, куда и как перекладывать) СУБД выбирает без вашего участия. PL/SQL - это, конечно, императивный язык, но в нем обычно тормозят SQL-запросы.
Я вот, рад, что нашел системную таблицу
https://docs.oracle.com/cd/B19306_01/se ... m#i1588578
легко находить коды во всем проекте
может, для профилирования есть подобное
SELECT *
FROM ALL_SOURCE
WHERE upper(text) LIKE upper('%loc_work_get_open%');
Искать текст в исходниках может любая нормальная IDE, главное нагуглить, где там эта функция запрятана.
Может ткнете, где это найти. Или порядок действий(скрипты, которые все сделают сами).
Берете SID вашей тормозящей сессии, смотрите в
v$session какой запрос в данный момент выполняется (поле
sql_id), потом смотрите в
v$sql его текст, потом смотрите его план. Общая схема примерно такая. Это конечно при условии отсутствия детских ошибок (вы не используете
EXECUTE IMMEDIATE всуе и без параметров, не используете
for .. loop там где
можно нужно использовать
forall и т. д.).