Как стать автором
Обновить
4
0

Oracle APEX developer

Отправить сообщение
Подход с метриками, логами и мониторинг, это конечно хорошо, но не считает ли уважаемая публика, что без static analysis tool понимание что, где, когда работает, не может быть полным. А если что-то работает раз в полгода, так и не поймаешь. Мне интересно знает ли кто-то об оффлайновых инструментах анализа кода. Я вижу, eugenebb, что то делал. Может, поделитесь, какого рода это было? Я думаю, что мы все работаем с легаси и проблема развития и переделки того, что уже никто не может объяснить как написано, становится все актуальней.
Скоро систему, написанную на Angular и Meteor будут считать легаси, а ей всего три годика от роду… А подумайте банковских системах, которые содержат миллионы строк на КОБОЛЕ?
Честное слово, иногда диву даешься, читая комментарии. Человек потратил время, написал что-то, нет обязательно найдется умный, начнет учить как надо было бы… Спасибо за статью.
Мы написали подобный продукт, который пытается ответить на те же вопросы, которые подняты в статье.
Добавьте к Информатике необходимость искать зависимости в коде PL/SQL в базе Оракл и аппликациях на Оракл формах, файлах Word. Кроме того, ведь важно как используется таблица, ведь для этого Вы выполняете поиск.
Может, я хочу знать где делается Update или селект поля.
В случае Информатики, Вы не хотите знать где и как используется поле: lookup/source/target/, может Pre/Post SQL?
Я не очень понял, какой загрузчик вытаскивает данные из репозитория Информатики?
Мы написали селекты из таблиц репозитория.
Построили иерархию
Workflow
Session
Mapplet
Mapping
Lookup
Source
Target
Expression
Мы также извлекаем данные из словаря Oracle, при помощи JDAPI получаем в том же формате данные из Оракл форм и отчетов и все это грузится в наш репозиторий и тогда можно получить один ответ где и как используется таблица в Информатике/PL/SQL пакете/форме.
Очень важно удобно показать зависимость. К сожалению, я не очень увидел как и что вы показываете, могу ли я на любом отрезке связи увидеть, какого рода эта связь.
Извините, за такой длинный комментарий, но мы пытались дать архитектору системы наиболее полный ответ. Поймите, здесь очень много дальнейших шагов, на мой взгляд, Вы прошли первые несколько на этом пути.
Успехов Вам.
Наш продукт можно посмотреть здесь(ODA Oracle Dependencies Analyzer)
Я не пиарюсь, не дай бог, просто посмотрите на наш опыт.
Кроме того, сервер базы — это обычно сильный компьютер с несколькими ядрами, а точно есть зависимость между параллельностью процессов и многоядерностью.
1. Я думаю, что Oracle лучше разберется с параллельностью сессий, он это делал хорошо еще когда Явы не было. И кроме того, когда с данными работают максимально близко(внутри самой базы), я считаю это здоровей всего.
2. Тут решение за Вами. В моем случае, все равно, то, что отработало, второй раз не попадет в селект, но если важно, можно придумать как реагировать на падение одного или нескольких процессов. Лучше всего отлавливать exception в Jave…
Вы неправы, это как раз имеет отношение к pipelined функциям. Посмотрите У Барлесона
dbms_parallel_execute работает начиная с 11g Release 2. Том Кайт предлагал параллелизм в ранних версиях тоже делать вручную. Вот ссылка. Мой метод — это один из возможных. Кроме того, речь идет об pipelined функциях, это другая реализация параллелизма, не только деление на порции, но и обработка каждой строки. По поводу DBMS INFO, это только для красоты, можно включать при отладке, чтобы посматривать, как идут процессы.
Зависимость между количеством ядер и сессий не прямая. Oracle и OS распределяют сами. Я, конечно, не могу сказать точно как, сужу по результату. Давал и 150 сессий — работало, правда без особого улучшения по сравнению с 25, но и не умирало. Тут ведь и обращения к дискам и swap памяти. Самое простое поиграть с параметром на вашей машине, благо, это очень просто…
Я писал, мне было удобно, что это Java.
Программа вытаскивает из форма весь PL/SQL и сохраняет его в своем репозитории.
Я так же сохраняю весь PL/SQL хранимый в ДБ(процедуры, пакеты, view...).
Это позволяет дать общий ответ, где и как используется объект ДБ в коде.
И если сравнивать, время выполнения, то работа XML несравнимо дольше. это я вижу. Я даже вынужден использовать multi threading и обрабатывать несколько файлов RDF одновременно, а в случае форм, которые я обрабатываю jdapi можно принять 700 форм минут за 40, что приемлимо.
Но я же вам не анекдот рассказал. Если бы я хотел пошутить, я бы сказал:«Однажды лошадь зашла в бар...».
Я хотел получить комментарий по существу вопроса.
Про доступ, я вас не понимаю. Понятно, что обращение к процедуре не может быть у всякого. Но это вы в своей системе определяете, кому ее можно вызывать, собственно, как и права на все остальные действия. Процедура только автоматизирует создание файла. Вы не должны тратить усилия на написание Excel, и поверьте написать это не так просто. А вызывайте ее хоть из Python…
По поводу, как это может быть имплементировано с систему, можете посмотреть несколько картинок
www.samtrest.com/rm/demo.htm
Request manager for any forms application
доступ на чтение из базы с клиентского места. Фраза не очень понятна(как впрочем и Месье знает толк в извращениях…)
Вам не нужен доступ на чтение, вам нужен грант на выполнение. Процедура уже в базе.
Я намеренно все сделал в пакете, который находится в базе. Это как движок. Обращение к процедуре из любой аппликации, только передай параметры.
Понятно, что пользователь не обращается к ней напрямую. В нашей системе есть форма, где администратор заносит текст селекта и определяет, какие параметры будут ему передаваться. Кстати, там можно определить и тип запроса(отчет, Excel, процедура, скрипт shell). И есть форма, где пользователь задает параметры. Похоже на concurrent manager в Oracle ERP. Для того, чтобы ввести отчет в систему после отладки селекта нужно потратить минут 10 на определение параметров.
По моему, очень важно искать зависимость программного кода и объектов БД
Посмотрите: ODA
Обозреватель зависимостей объектов БД
www.samtrest.com
Заточен на Oracle,PL/SQL, Informatica, но не только…

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность