Как стать автором
Поиск
Написать публикацию
Обновить
6.55

Oracle *

Система управления базами данных

Сначала показывать
Порог рейтинга
Уровень сложности

Свежий взгляд на код Oracle VM VirtualBox

Время на прочтение13 мин
Количество просмотров33K
Виртуальные машины — важный инструмент в арсенале разработчика программного обеспечения. Мой интерес к коду VirtualBox вызван личным использованием этого продукта для проверки открытых проектов, а также для других разных задач, связанных с использованием нескольких операционных систем. Первая проверка этого проекта состоялась в 2014 году, тогда описание около 50 ошибок едва уместилось в двух статьях. C выходом Windows 10 и VirtualBox 5.0.XX, на мой взгляд, стабильность работы программы заметно ухудшилась. Поэтому я решил проверить проект ещё раз.
Читать дальше →

HTML и CSS в Oracle Application Express. Часть 1

Время на прочтение7 мин
Количество просмотров24K
В этой статье я хотел бы немного рассказать о том, как работать с HTML и CSS в апексе.
Я несколько раз уже слышал о случаях, когда от использования апекса отказывались по причине того, что «это некрасиво». Обычно проблема была в том, что в апексе есть какая-никакая верстка по дефолту, а все средства для работы с ней запрятаны довольно далеко и в глаза не бросаются, из-за чего кажется, что то, что в нем заложено по дефолту — это потолок его возможностей. Я, как настоящий фанат апекса, просто не смог пройти мимо. «Красиво» в апексе сделать тоже можно, если знать как.
Постараюсь сделать статью полезной сразу для двух категорий людей. Первая — это PL/SQL разработчики, которые только начинают осваивать апекс и веб-разработка для которых — пока еще темный лес. Вторая — веб-разработчики, которые с версткой давно на «ты», и перед которыми стоит задача: «вот апекс, надо сделать красиво». Сразу хочу предупредить, что я сам принадлежу к первой категории апекс-разработчиков.

Читать дальше →

Oracle IaaS и PaaS — все для вас

Время на прочтение7 мин
Количество просмотров5.3K
Облачные вычисления сегодня крайне актуальны для всего ИТ-рынка. Ведущие ИТ-компании видят огромные перспективы этого направления, а аналитические агентства, такие как IDC и Forrester, предсказывают рост рынка облачных вычислений в направлениях виртуализации, платформы как сервиса, приложений как сервиса и т. д. И ИТ-гиганты, и компании меньшего масштаба вкладывают серьезнейшие ресурсы в это направление, активно развивают его, а значит, мы вполне можем относиться к облачным технологиям как к одному из основных направлений развития ИТ и ИТ-продуктов в обозримом будущем.
Читать дальше →

Symantec Backup Exec: восстановление Oracle, установленного на Linux

Время на прочтение3 мин
Количество просмотров7.2K
В первой части было описано, как сделать резервную копию БД Oracle установленной на Linux средствами Symantec Backup Exec, теперь рассмотрим как из этой копии восстановить данные. Как и с резервным копированием не все так просто и очевидно.
Читать дальше →

Версионирование базы данных на лету

Время на прочтение6 мин
Количество просмотров28K
Здравствуйте, меня зовут Евгений, и я веб разработчик. Несколько лет назад мне перепала функция DBA (Database Administrator), я получил по этому поводу несколько сертификатов и решал соответствующие задачи. Я давно хотел описать задачу версионирования базы данных, но мне казалось, что для этого должны быть какие-то беспроигрышные варианты, которые хорошо знают умелые дяди, а я просто чего-то недопонимаю. Вчерашнее собеседование и последующий поиск по тематическим ресурсам показал, что это не так, и задача действительно сложна, актуальна и не решается однозначно. Разберём её по пунктам.

Что мы версионируем


Мы используем контроль версий только для DDL (Data Definition Language) запросов. Сами данные нас не интересуют. Почему? Рассмотрим два крайних случая.

  1. Данных мало (скажем, менее 50 мегабайт). В этом случае, мы можем просто периодически делать полный дамп базы и смело складывать его в репозиторий.
  2. Данных много (больше гигабайта). В этом случае версионирование нам мало поможет, всё равно разобраться в этом будет довольно проблематично. Целесообразно в данном случае использовать стандартную схему с бекапами и архив логом, которая позволяет нам получить целостную версию базы на любой момент во времени.

Читать дальше →

Oracle станет участником презентации программы «Единая фронтальная система»

Время на прочтение2 мин
Количество просмотров3.1K
Корпорация Oracle выступит партнером конференции «Единая фронтальная система», которая пройдет 6 февраля 2016 в event-холле Цифровой Октябрь. Мероприятие ориентировано на Java/Javascript разработчиков, архитекторов, системных аналитиков и специалистов информационной безопасности.

Читать дальше →

Обработка запросов в Oracle и PostgreSQL: следствия одного решения

Время на прочтение21 мин
Количество просмотров35K
Обработка запросов SQL и  в Оракле, и в Постгресе имеет много общего. Так или иначе, надо выполнить синтаксический разбор, проверить семантику (для чего потребуется метаинформация, и не важно, называется ли это «словарь данных» или «системный каталог»), выполнить какие-то преобразования, построить оптимальный план выполнения (в обеих системах основанный на стоимости, а следовательно требующий заранее собранной статистики).

Но есть одно-единственное существенное различие, которое коренным образом меняет весь подход к обработке. Речь, конечно, о том, что Оракл использует глобальный кэш разобранных запросов, а Постгрес сохраняет запросы локально.

В статье мы попытаемся проследить, как из-за разницы в одном архитектурном решении логически следует совершенно разная идеология работы в запросами в двух СУБД.

Приведенные примеры (которые выполнялись на версиях Oracle 11.2 XE и PostgreSQL 9.4) содержат время выполнения запросов. Нас интересуют только относительные величины: во сколько раз изменилось время выполнения после внесения в запрос тех или иных изменений. При этом абсолютные цифры могут отличаться на порядки в зависимости от аппаратуры, нагрузки и настроек. Чтобы не давать повод для бессмысленных выводов на их основании, все абсолютные значения в статье отмасштабированы так, чтобы один из запросов составлял в обеих системах 10 секунд.
Читать дальше →

Создаем плагин региона для Oracle Application Express

Время на прочтение8 мин
Количество просмотров7.9K
Данная статья предназначается всем тем, кто плотно работает с Oracle Application Express (в просторечии — APEX, а то и просто апекс). А так же тем, кто что-то слышал и подумывает начать использовать его в работе. После прочтения статьи, я надеюсь, у вас прибавится желания сделать это.

Вводная информация


Предполагается, что читатель знаком (или познакомится вскоре после прочтения) хотя бы в общих чертах со следующими вещами:

  • Что такое SQL и PL/SQL, и чем они друг от друга отличаются
  • Какие объекты бывают в СУБД Oracle и зачем они нужны (таблицы, пакеты, вью)
  • Основные компоненты приложения апекса: страница, регион, итем, процесс и т. д., как их создавать и удалять
  • Основы администрирования апекса: как создать в оракле таблицу, пакет, вью и как потом сделать их доступными для своего приложения
  • Как использовать значение итема в качестве параметра SQL-запроса

Ничего сверхсложного в этих пунктах нет, всеми этими вещами на базовом уровне можно более-менее овладеть за месяц неспешной работы. Пример предназначен для пятой версии апекса, которая вышла чуть меньше года назад.
Читать дальше →

Symantec Backup Exec: резервное копирование Oracle, установленного на Linux

Время на прочтение5 мин
Количество просмотров11K
Backup Exec – надежная система резервного копирования, корпоративного уровня. Установка и настройка этого продукта уже была описана ранее на хабре, сложностей никаких нет все просто и интуитивно понятно. Большим плюсом этого средства резервного копирования является, то что эта программа может бэкапить практически все ПО используемое на предприятии, перечислим основные возможности копирования:
• Способно копировать Windows, Linux, Macintosh;
• VMWare и ESX
• Домены Active Directory
• Состояние системы (System state)
• Фермы Microsoft Sharepoint
• Microsoft Exchange
• Базы данных MSSQL и Oracle, также Oracle Real Application Clusters
• Пользовательские ресурсы
• И многое другое.
Читать дальше →

Что нам стоит КИС построить: собираем xRM на конвейере

Время на прочтение10 мин
Количество просмотров13K
Вы заметили, какой популярностью пользуются конструкторы: от детских игровых наборов и шаблонов сайтов до готовых панелей и срубов для строительства? И дело тут совсем не в элементе геймификации — вся прелесть конструктора в том, что пользователь получает набор качественных «блоков» от профессионалов и создаёт своё, уникальное решение на этой надёжной базе. Вся подготовительная, сложная, черновая работа ложится на поставщика (разработчика) базовых элементов, а пользователю остаётся соединить свои умения с готовыми частями решения и создать дом, конструкцию, сайт, CRM под себя. Несколько лет назад наша команда задумалась над этим феноменом — так появился генератор информационных систем, который успели оценить и клиенты, и партнёры.
Читать дальше →

Как мигрировать в Oracle Java Cloud за 1,5 часа?

Время на прочтение5 мин
Количество просмотров4.5K
Сегодня все крупнейшие разработчики программного обеспечения предлагают публичные облачные сервисы. Компания Oracle не сразу включилась в эту гонку, но сегодня уже догнала и обгоняет остальных игроков рынка. Легенда Кремниевой долины, один из основателей корпорации Оракл, Ларри Эллисон недавно сказал, что по росту продаж облачные сервисы Oracle сейчас демонстрируют такую динамику, какую не показывали продажи Oracle Database в лучшие времена. Так что теперь все внимание компании сконцентрировано на облаках.


Читать дальше →

Oracle Database 12c: настройка производительности

Время на прочтение7 мин
Количество просмотров26K

Database Time


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


Читать дальше →

7 ошибок ETL-разработчика

Время на прочтение11 мин
Количество просмотров61K
Проекты хранилищ данных уже давно являются частью IT-инфраструктуры большинства крупных предприятий. Процессы ETL являются частью этих проектов, однако разработчики иногда совершают одни и те же ошибки при проектировании и сопровождении этих процессов. Некоторые из этих ошибок описаны в этом посте.
Читать дальше →

Ближайшие события

Sublime text для PL/SQL разработчика

Время на прочтение6 мин
Количество просмотров24K
Хотелось рассказать о том, как многими любимый Sublime Text можно использовать как неплохое средство для разработки на PL/SQL.

Хотелось бы начать с того, для чего нужен был этот велосипед, ведь есть вроде бы много других IDE для работы с SQL и в частности Oracle PL/SQL, такие как Toad for Oracle, SQL Navigator, PL/SQL Developer и даже бесплатный Oracle SQL Developer, однако у большинства из них есть несколько недостатков по сравнению с текстовыми редакторами типа Emacs, SciTe, Vim, Notepad++, Sublime Text и т.д.

Перечислю некоторые из них, данный список сугубо субъективный:

  • “Тяжеловесность” каждой IDE, это выражается не только в размере дистрибутива, но и общими ощущениями, наличием множества не нужных функций, кнопок, отзывчивостью и т.д.
  • Большинство приемлемых IDE являются платными, или условно бесплатными с ограниченным функционалом.
  • Хотелось бы кроссплатформенность, под это требование из приведенных IDE попадает только Oracle SQL Developer.
  • Функционал редактирования текста. В большинстве из них есть только базовые методы по работе с текстом: это набор текста, copy-paste, подсветка синтаксиса. Ни о каких “CTRL+D” как Sublime Text речи и не идет.
  • Простота расширения, практически все IDE закрыты, никакой поддержки самописных пагинов и т.д.

Есть еще один пункт, но он больше относится к организации проектов и задач на рабочем месте. Хотелось бы немного затронуть эту тему, так как организация на проектах наложила свой отпечаток на настройку Sublime Text.
Читать дальше →

Кадры высокого полета — облачный HR и большие данные

Время на прочтение7 мин
Количество просмотров3.9K
Эта статья — не о больших данных. Мы рассмотрим возможность использования Big Data для эффективного развития трудовых ресурсов, а значит, и наиболее эффективного развития организации в целом. И начнем мы с тенденций, складывающихся в области работы с персоналом во всем мире сегодня.


Читать дальше →

Параллельная обработка большого селекта в нескольких сессиях

Время на прочтение10 мин
Количество просмотров22K
Представьте: есть селект, который возвращает записи, каждую из которых нужно обработать, и то ли много записей, то ли обработка каждой записи занимает много времени, а процесс обработки одной записи не зависит от процессов других записей.
Классический пример для того, чтобы задействовать многопоточность или в случае баз данных выполнять обработку в нескольких сессиях. В Оракле для этого используется hint /*+ parallel() */ и pipelined functions. Это здорово, но если у вас Oracle standard edition(где parallel не работает) или вы хотите обработать не каждую запись по отдельности(из соображений, что лучше накопить работу, а потом в bulk, одним ударом, выполнить), а поделить весь вывод селекта на куски и каждый обработать отдельно?
Читать дальше →

Настраиваем связку Apache Zeppelin + Oracle

Время на прочтение6 мин
Количество просмотров14K
Давно ищу удобный инструмент для выполнения ad hoc SQL-запросов в БД Oracle, с возможностью быстрого построения различных типов графиков на полученных данных. Все, что может облегчить оперативное создание отчетов, как говорится «на лету». Совсем недавно наткнулся на вот такой инструмент как Apache Zeppelin. Короткий обзор возможностей в документации на сайте и демо-видео показал, что это штука достаточно интересная и имеет смысл более плотно исследовать ее и настроить доступ из Apache Zeppelin к СУБД Oracle.


Читать дальше →

Ускоряем OSB

Время на прочтение4 мин
Количество просмотров4.7K
Статья подготовлена Дмитрием Овчаренко, архитектором Департамента прикладных финансовых систем компании «Инфосистемы Джет»

Предвидя проблему


Приступая к разработке прокси-сервиса на Oracle Service Bus, следует принимать во внимание условия использования этого сервиса. Например, если разрабатываемый процесс будет участвовать во множестве популярных операций или использоваться большим числом пользователей. В случае, например, запроса информации для первой страницы после логина пользователя на сайте следует сразу придерживаться соображений оптимального кода с точки зрения производительности.

В процессе написания трансформаций и всех обращений к путям внутри сообщения не поленитесь указать [1] после каждого узла в XPath

$Get_Client_Info_Output/ns1:ListOfContact[1]/ns1:Contact[1]/ns1:rName[1]

Это позволит обрабатывать выражение как обращение к единичным элементам структуры, а не к множественным, как это подразумевается в общем случае.
Читать дальше →

Регулярные выражения Oracle. Опасный диапазон

Время на прочтение4 мин
Количество просмотров47K


Разработчик Oracle, часто использующий в коде регулярные выражения, особенно на базах с православными настройками, рано или поздно может столкнуться с явлением, которое, кроме как мистикой, никак не назовешь. Длительные поиски причин возникновения проблемы могут привести к потере веса, аппетита и спровоцировать различного рода психосоматические расстройства — все это я сейчас и попробую предотвратить. А поможет мне в этом функция regexp_replace. Она может иметь до 6 аргументов:

REGEXP_REPLACE (
  1. исходная_строка,
  2. шаблон,
  3. заменяющая_строка,
  4. позиция начала поиска совпадения с шаблоном (по умолчанию 1),
  5. номер вхождения шаблона в исходную строку (по умолчанию 0 – все вхождения),
  6. модификатор (пока что темная лошадка)
)
Возвращает измененную исходную_строку, в которой все вхождения шаблона заменены значением, переданным в параметре заменяющая_строка. Зачастую пользуются короткой версией функции, где заданы 3 первых аргумента, что бывает достаточно для решения многих задач. Я тоже так сделаю. Допустим, нам нужно в строке 'MASK: lower case' замаскировать все строчные символы звездочками. Для задания диапазона строчных символов должен подойти шаблон '[a-z]'. Проверяем

select regexp_replace('MASK: lower case', '[a-z]', '*') as result from dual

Ожидание
+------------------+
| RESULT           |
+------------------+
| MASK: ***** **** |
+------------------+

Реальность
+------------------+
| RESULT           |
+------------------+
| *A**: ***** **** |
+------------------+

Если на вашей базе это явление не воспроизвелось, значит вам пока повезло. Но чаще начинаются копания в кодировках, конвертации строк из одного набора символов в другой и со временем наступает примерно такое состояние
Читать дальше →

Oracle, типичные задачи SQL. Гарантированный выбор

Время на прочтение3 мин
Количество просмотров24K


На носу выборы, а это значит, что сегодня мы будем выбирать губернатора. А точнее назначать барьер прохождения кандидатов в следующий тур. Но сначала надо определиться с терминами.

Что такое гарантированный выбор в SQL? Допустим, что в условии запроса к таблице выполняется сравнение какого-либо поля с какой-нибудь переменной. В зависимости от значения этой переменной запрос может вернуть строки из таблицы, а может и не вернуть их вовсе. Если выпадает такое значение переменной, что строки из таблицы не возвращаются, то для этого случая надо специально сгенерировать заранее определенный левый результат. То есть в любом случае общий запрос должен гарантированно что-нибудь да вернуть. Сам термин взят отсюда. Однако задача усложняется тем (а может и наоборот, упрощается), что вместо одной простой ячейки со значением, нам нужно гарантировано вернуть полноценную строку.

Привожу данные центризбиркома. Первый тур голосования закончился с такими результатами
Читать дальше →

Вклад авторов