Рубрика «oracle» - 6

Java теперь платная? Развенчиваем слухи (или нет?) - 1Уже 2 дня как вступили в силу изменения лицензионной политики Oracle на распространение сборок Java SE. В среде разработчиков-слоупоков начали носится кошмарные слухи.

Что произошло

В середине 2018 года Oralce объявил, что собирается изменить лицензионную политику. 16 апреля 2019 года изменение вступило в силу. Теперь все опубликованные после этой даты сборки Java SE можно использовать бесплатно только для личных нужд и с целью разработки. Для использования в коммерческих целях (в том числе для продакшена) надо оформить платную подписку у Oracle.

Что-а-а?

Oracle выстрелил себе в ногу и убивает Java? Нет, не убивает, нет не выстрелил. Давайте быстро разберемся, что это означает в практическом плане, без этих ваших GPL, BCL, WTF…
Читать полностью »

Недавно я с удивлением обнаружил, что, оказывается, толковых туториалов по Oracle Application Express (он же APEX, он же апекс, но не путать с языком apex, который используется в Salesforce) в природе не существует.

Это не самая распространенная технология, конечно, но, тем не менее, довольно востребованная. Есть десятки блогов об апексе (англоязычные, в основном), пара тысяч вопросов на Stackoveflow, специальный раздел по апексу на официальных форумах оракла, сам апекс существует уже 15 лет и все время развивается. Я был уверен, что и хороших туториалов полно. Но нет!

Мне тут же пришла в голову гениальная мысль восполнить этот пробел.

Оглавление

Почему существующие туториалы — плохие
Вводная информация
Обзор IDE
    App builder
        Страница приложения
        Shared Components
        Page Designer
    SQL Workshop
        Object Browser
        SQL Commands

Читать полностью »

Полное руководство по switch-выражениям в Java 12 - 1

Старый добрый switch был в Java с первого дня. Мы все используем его и привыкли к нему — особенно к его причудам. (Кого-нибудь еще раздражает break?) Но теперь все начинает меняться: в Java 12 switch вместо оператора стал выражением:

boolean result = switch(ternaryBool) {
    case TRUE -> true;
    case FALSE -> false;
    case FILE_NOT_FOUND -> throw new UncheckedIOException(
        "This is ridiculous!",
        new FileNotFoundException());
        // as we'll see in "Exhaustiveness", `default` is not necessary
    default -> throw new IllegalArgumentException("Seriously?!");
};

В switch появилась возможность возвращать результат своей работы, который можно присвоить переменной; вы также можете использовать синтаксис в стиле "лямбда", который позволяет избавиться от сквозного прохода по всем case, в которых нет оператора break.

В этом руководстве я расскажу Вам обо всем, что необходимо знать о switch-выражениях в Java 12.

Читать полностью »

Внутри команды нужно разработать свои стандарты и правила, а оформление документации — это одно из главных правил работы в команде.

Ну, поехали…

Ссылка на сам инструмент pldoc.

По ссылки хорошо все расписано как работать и формировать документацию, но чтобы было проще приведу примеры и скрипты.

Устанавливаем(распаковываем архив) и создаем в корне run.bat

rmdir /s /q "%TOMCAT_HOME%/Tomcat 7.0/webapps/plsqldoc"
call ..pldoc.bat -verbose -doctitle 'Api shema' -d '%TOMCAT_HOME%/Tomcat 7.0/webapps/plsqldoc' -url jdbc:oracle:thin:@host:port:SID -user API_DOC -password API_DOC -sql SCAPI.%%%%,API.%%%%,SALE.%%%%,BILLING_API.%%%%,BATCH.%%%%,
pause

где:

  • -d '%TOMCAT_HOME%/Tomcat 7.0/webapps/plsqldoc' — папка куда будет формировать документация;
  • -url jdbc:oracle:thin:@host:port:SID сервер базы данных откуда браться данные;
  • -sql API.%%%%T%%%%,SALE.A%%%%,BILLING_API.%%%%
    API.%%%%T%%%% — брать все объекты схемы API содержащие букву Т;
    SALE.A%%%% — брать все объекты схемы SALE начинающиеся на букву Т;
    BILLING_API.%%%% — брать все объекты схемы BILLING_API;

Запускаем и получаем готовую документацию, по правилам оформления pl/sql кода описанному ниже.
Читать полностью »

Что делать, если надо работать с данными, которые по объему еще не Big data, но уже больше того, что умещается в памяти компьютера и для которых достаточно возможностей Excel? Для любителей велосипедостроения ответ очевиден – нужно писать что-то свое (да, мы не ищем легких путей).

Но как быть, если код, написанный тобой в прошлом, ужасен и не дает тебе возможности развивать проект? Отставить в сторонку старые наработки, дать дорогу новому, вечному и светлому (да-да, и тут тоже без вариантов).

ASH Viewer: перезагрузка - 1

Цитата из кф Матрица: “Достаточно одной таблетки, Нео”. Режиссер: братья и сестры Вачовски. 1999. США
Читать полностью »

От переводчика: Решение перевести эту статью пришло не само собой — скорее это вынужденная мера :). К нам, как к вендорам фреймворка CUBA, обращаются с этим вопросом с завидной регулярностью. Безусловно, для нас это тоже крайне важная тема, и в ответ на последние изменения мы подняли тестовые стенды как на Oracle JDK, так и на OpenJDK — эта мера на данный момент ограждает наших пользователей от непредвиденных лицензионных трат. Однако, эта тема еще не закрыта, и мы продолжаем внимательно следить за развитием событий, и, кто знает, возможно нам придется добавлять стенды для еще каких сборок JDK уже в следующем году...

Статья под катом подкупает тем, что она лаконично описывает проблематику и наиболее популярные JDK с их особенностями.

Читать полностью »

В «Ростелекоме», как и в любой крупной компании, имеется корпоративное хранилище данных (ЦХД). Наше ЦХД постоянно разрастается и расширяется, мы строим на нем полезные витрины, отчеты и кубы данных. В какой-то момент мы столкнулись с тем, что некачественные данные мешают нам при построении витрин, получаемые агрегаты не сходятся с агрегатами систем источников и вызывают непонимание бизнеса. Например, данные с Null значениями в внешних ключах (foreign key) не соединяются с данными других таблиц.

Автоматизация качества данных корпоративного хранилища - 1

Мы понимали, что для обеспечения уверенности в качестве данных нам нужен регулярный процесс сверок. Конечно, автоматизированный и позволяющий каждому из технологических уровней быть уверенным в качестве данных и их сходимости, как по вертикали, так и по горизонтали. В итоге мы параллельно рассмотрели три готовые платформы для управления сверками от различных вендоров и написали свою собственную. Делимся опытом в этом посте.
Читать полностью »

Автор статьи – Виктор Варламов, OCP.
Оригинал статьи опубликован 07.07.2017.
Отдельное спасибо автору перевода — brutaltag.

В нашей системе подготовки отчетности обычно выполняются сотни длительных запросов, которые вызываются различными событиями. Параметрами запросов служат список клиентов и временной интервал (дневной, недельный, месячный). Из-за неравномерных данных в таблицах один запрос может выдать как одну строку, так и миллион строк, в зависимости от параметров отчета (у разных клиентов — различное количество строк в таблицах фактов). Каждый отчет выполнен в виде пакета с основной функцией, которая принимает входные параметры, проводит дополнительные преобразования, затем открывает статический курсор со связанными переменными и в конце возвращает этот открытый курсор. Параметр БД CURSOR_SHARING выставлен в FORCE.
В такой ситуации приходится сталкиваться с плохой производительностью, как в случае повторного использования плана запроса оптимизатором, так и при полном разборе запроса с параметрами в виде литералов. Связанные переменные могут вызвать неоптимальный план запроса.
Читать полностью »

И снова добрый вечер!

Запускаем второй поток нашего нового курса «Реляционные СУБД», который мы чуть дотюнили по итогам первого прогона: дополнительные занятия по кластерам MySQL и Postgres, оказался востребованным docker и ещё разные «доработки напильником». Так что ждите открытые уроки (в которые вынесли часть старых тем) и интересные материалы. Сегодня мы покопаемся в техниках Oracle.

Поехали.

Bitmap-индексы Oracle сильно отличаются от стандартных индексов B-дерева. В bitmap-структурах создается двухмерный массив со столбцом для каждой строки в индексируемой таблице. Каждый столбец представляет отдельное значение в bitmap-индексе. Этот двухмерный массив показывает каждое значение индекса, умноженное на количество строк в этой таблице.

Oracle распаковывает bitmap (со скоростью извлечения строки) в буфер данных ОЗУ для быстрого сканирование на предмет совпадения значений. Эти совпадающие значения передаются Oracle в виде списка Row-ID, и значения Row-ID могут напрямую обращаться к необходимой информации.

Техники Bitmap-индекса Oracle - 1Читать полностью »

В повседневной деятельности администраторам баз данных Oracle требуется отслеживать существенное количество метрик в части пропускной способности, нагрузки, роста СУБД, хостов СУБД, дисковых подсистем и т.д. Все эти данные бережно собираются и складируются системами мониторинга. Чтобы информация не лежала мертвым грузом, ее можно использовать для прогнозирования в части вопросов сайзинга и даже проактивного мониторинга. В этом посте мы продемонстрируем как это делать.

Как использовать методы наименьших квадратов для оценки ресурсов и мониторинга баз Oracle - 1
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js