Обновить
7.85

Oracle *

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

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

Разбиение строки по разделителю. Немного про CONNECT BY

Время на прочтение5 мин
Количество просмотров68K
Здравствуйте!

Я работаю PL/SQL разработчиком. Есть задача собирать некоторые данные для метрик, чтобы отслеживать загрузку систем. Есть некоторая функция, которая вызывается с параметром, состоящим из списка ID.

1,2,3,4…1001,1002,1003…

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

Лицензионная политика Oracle выталкивает аналитику на Hadoop

Время на прочтение2 мин
Количество просмотров7.5K
Крупный бизнес и кровавый энтерпрайз уже давно нашли замену взрослым рсубд на задачах DWH и аналитики. DWH массово движется в сторону DataLake и Hadoop. Выглядит, что и небольшим компаниям уже нет особого смысла запускать аналитику на серьезной рсубд. С ростом кол-ва ядер доступных даже небольшому бизнесу пытаться лицензировать полноценную редакцию взрослой субд типа Oracle смысла мало. Standard редакция Oracle хоть и лицензируется по сокетам, но при этом вырезан важнейший функционал. Во первых в standard редакции нет partitioning
Читать дальше →

Прозрачная авторизация для приложения на Oracle Weblogic Server

Время на прочтение6 мин
Количество просмотров15K
В данной статье расскажу, как мы перешли с NTLM на Kerberos авторизацию для приложений на Oracle Weblogic Server, тем самым упростив пользователям вход, убрав необходимость вводить пароль. Все пользователи, а также сервер приложения находятся в одном домене, так же ранее была настроена доменная авторизация для приложений Weblogic сервера. Все конфигурации были проверены на WLS 12.1.2.
Читать дальше →

100500 способов кэширования в Oracle Database

Время на прочтение21 мин
Количество просмотров26K
Рассказывать, какие есть кэши, что такое Result Cache, как он сделан в Oracle и в других базах данных не очень интересно и довольно шаблонно. Но все приобретает совершенно другие краски, когда речь идет о конкретных примерах. Александр Токарев (shtock) построил свой доклад на Highload++ 2017 исходя из кейсов. И именно опираясь на кейсы, рассказал, когда может быть удобен самодельный кэш, в чем боль server-side Result Cache и как заменить его клиентским, и вообще вывел ряд полезных советов по настройке Result Cache в Oracle.


О спикере: Александр Токарев работает в компании DataArt и занимается вопросами, связанными с базами данных как в части построения систем «с нуля», так и оптимизации имеющихся.

Начнем с нескольких риторических вопросов. Вы работали с Oracle Result Cache? Вы верите, что Oracle — это база данных, удобная на все случаи? По опыту Александра большинство людей на последний вопрос отвечает отрицательно, на сто суровых прагматиков приходится один мечтатель. Но благодаря его вере двигается прогресс.

Кстати, у Oracle уже 14 баз данных — пока 14 — что будет в будущем, неизвестно.

Как уже говорилось, все проблемы и решения будут проиллюстрированы конкретным кейсами. Это будет два кейса из проектов DataArt, и один сторонний пример.

Backend stories MeetUp

Время на прочтение1 мин
Количество просмотров3.2K
Привет, Хабр!

Мы решили собрать очередную встречу разработчиков, на этот раз поговорим о backend.

Когда: 21 июня, четверг, с 19:00.
Где: Москва, ул. Большая Полянка, д.2/10, стр. 1 (Corporate Innovations Hub).



Регистрация на событие открыта, подробности – под катом.
Читать дальше →

Можно ли использовать Tibero вместо Oracle. И нужно ли

Время на прочтение9 мин
Количество просмотров9.8K
В этой статье я расскажу вам о том, как всерьез задумался об альтернативе Oracle. А как же Postgre, скажете вы? Да, но есть нюансы. Сперва разберемся с вопросом «Почему Oracle?».
Бизнес логика у нас в БД. В книге Oracle для профессионалов Том Кайт пишет
При разработке приложений баз данных я использую очень простую мантру:

если можно, сделай это с помощью одного оператора SQL;
если это нельзя сделать с помощью одного оператора SQL, сделай это в PL/SQL;
если это нельзя сделать в PL/SQL, попытайся использовать хранимую процедуру на языке Java;
если это нельзя сделать в Java, сделай это в виде внешней процедуры на языке C;
если это нельзя реализовать в виде внешней процедуры на языке C, надо серьезно подумать, зачем это вообще делать...
и в проектировании систем я следую этому правилу. Особенно радуют объектные типы в Oracle, с их помощью сложная бизнес логика красиво и удобно реализуется по всем канонам ООП.

Oracle стоит дорого. Купить его и не использовать все, что в нем есть, будет ошибкой.
И еще, всегда есть фактор команды и компетенций. Если у вас команда десять лет разрабатывает все в Oracle, переучиваться на Postgre может быть болезненно.

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

Уже несколько раз мне попадались публикации про корейский продукт Tibero, якобы создаваемый для замены Oracle. А нынче у них аттракцион невиданной щедрости — лицензии на Standard раздают для разработчиков практически бесплатно, за доллар на сокет. Итак, разбираемся: что на данный момент могут предложить корейцы. С автомобилями ведь у них, уже (почти) получилось!
Читать дальше →

Нефтегазовая дилемма: в поиске альтернативных СУБД

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

Как известно, в начале этого года американская корпорация Oracle в соответствии с требованиями правительства США об ужесточении санкций в отношении российских нефтегазовых компаний изменила условия предоставления им своих продуктов и услуг. Введен запрет как на новые сделки, так и на продление существующих контрактов. Эти ограничения непосредственно касаются многих нефтегазовых структур, включая предприятия «Газпрома», «Роснефти», «Лукойла» и «Сургутнефтегаза». Под санкции попали 283 российских компании.
Читать дальше →

DevConf: перспективные базы данных для highload

Время на прочтение6 мин
Количество просмотров10K
DevConf 2018 уже на следующей неделе! В прошлом году Юрий Насретдинов провел интересный обзор перспективных систем хранения данных для highload. Видео с докладом доступно на странице доклада. А для хабра-читателей предлагаю краткий пересказ.

В начале расскажу как нужно подходить к выбору технологии для highload-проекта.

  • В первую очередь, должно быть понимание как оно работает. Не только сильные, но и слабые стороны.
  • Знание как это мониторить и бэкапить. Без хороших инструментов для этого, эту технологию рано использовать в продакшене.
  • Рано или поздно системы «падают»(это нормальная, штатная ситуация) и нужно знать что делать в этом случае.
Читать дальше →

Что нового в DataGrip 2018.1

Время на прочтение4 мин
Количество просмотров12K
Привет! В этом релизном цикле некоторые улучшения появились ещё в минорных обновлениях. Но, так как о них на Хабре мы не пишем, я расскажу в этом посте обо всём новом с момента предыдущего релиза.

image

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

Вопросы совместимости Tibero и Oracle. Часть 2. Разработка Java приложений

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

Мы продолжаем цикл статей разработчиков приложений для баз данных — Часть 1. Условная компиляция PL/SQL. Эта статья затронет тему использования Tibero в Java приложениях использующих JDBC и Hibernate, а также фреймворк Spring Roo.

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

Почему ставить наиболее селективные колонки в префикс составного индекса – это не всегда хорошо

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

tl;dr В этой статье мы рассмотрим случай, когда лучше переместить самый селективный атрибут из префикса составного индекса в суффикс.


А также рассмотрим, что такое pipeline и как с его помощью select-ить данные уже отсортированными.


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

Пользовательские агрегатные и оконные функции в PostgreSQL и Oracle

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

В этой статье мы посмотрим, как в двух системах создавать пользовательские агрегатные и оконные (в терминологии Oracle — аналитические) функции. Несмотря на различия в синтаксисе и в целом в подходе к расширяемости, механизм этих функций очень похож. Но и различия тоже имеются.

Надо признать, что собственные агрегатные и оконные функции встречается довольно редко. Оконные функции вообще по каким-то причинам традиционно относят к разряду «продвинутого» SQL и считают сложными для понимания и освоения. Тут бы разобраться с теми функциями, которые уже имеются в СУБД!

Зачем тогда вообще вникать в этот вопрос? Могу назвать несколько причин:

  • Хотя оконные функции объективно сложнее обычных агрегатных, но ничего запредельного в них нет; это абсолютно необходимый инструмент для SQL-разработчика. А создание собственной оконной функции, даже совсем простой, позволяет лучше разобраться с тем, как работают стандартные.
  • Оконные и агрегатные функции — прекрасный способ совместить процедурную обработку с декларативной логикой. В некоторых ситуациях получается выполнить сложные действия, оставаясь в рамках парадигмы решения задачи одним SQL-запросом.
  • Да и просто интересная тема, а уж тем более интересно сравнить две системы.

Пример, на котором будем тренироваться — подсчет среднего, аналог стандартной функции avg для типа numeric (number в Oracle). Мы напишем такую функцию и посмотрим, как она работает в агрегатном и оконном режимах и может ли она вычисляться несколькими параллельными процессами. А в заключение поглядим на пример из реальной жизни.
Читать дальше →

Как мы делали олимпиаду по SQL (окончание)

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

Продолжаю рассказ о том, как мы делали олимпиаду по SQL. Это продолжение предыдущей статьи, в которую всё просто не уместилось.


Краткое содержание предыдущей серии: прошло два заочных тура олимпиады в декабре 2016 и марте 2017 соответственно, где претенденты на победу прошли жёсткий отбор как с теорией, так и с практикой применения SQL в базах данных Oracle. Далее про третий тур — очный финал олимпиады в Сочи в начале июня 2017 г.

Читать продолжение

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

Вопросы совместимости Tibero и Oracle. Часть 1. Условная компиляция PL/SQL

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

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

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

Как мы делали олимпиаду по SQL

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

В самом начале осени 2016 года руководство поставило мне задачу подготовить техническую часть олимпиады по SQL. Обсудив ситуацию с коллегами, в том числе с бывшими, я был ткнут (ткнён?) в статью, где в декларативном стиле на SQL решалась задача по построению кратчайшего выхода из лабиринта. Собрав в одну кучку части запроса и запустив его на настоящей базе, я прошептал "магия!.." и понял, что олимпиаде быть.


Думаю, что типичный читатель Хабра на олимпиадах хоть раз да бывал, но скорее в роли участника, а не организатора. Я тоже бывал на разных, и мне всегда было удивительно, почему на одних олимпиадах интересно, а на других тоска смертная. Могу показать, как выглядит этот театр с другой стороны занавеса, и как я старался, чтобы эта олимпиада оказалась из тех, которые интересные. Интриги, скандалы, расследования — ничего этого не будет. Зато расскажу как готовились задания, что от них ожидали и что получалось в результате.

В кроличью норку сюда

Apache Ignite — кеш для баз данных

Время на прочтение9 мин
Количество просмотров15K
В Apache Ignite можно определить именованный кеш данных для постоянного хранилища, загрузить в него данные и далее выполнять различные манипуляции с ними.

Можно выполнять операции get/put как c Map, например в java, эти операции имеют название сквозного чтения, записи в постоянное хранилище (write-through and read-through). Т.е. после того как кеш загружен при выполнении операции get объект будет взят их него, а не из базы, а при записи он изменится в кеше и будет записан в хранилище данных. Если при попытке взятия объекта его не будет в кеше он будет вначале в него записан. Понятно что операции чтения уже будут из памяти кеша и очень быстро. Все это актуально для операций get/put. Для других операций поиска, например для поиска объекта не по ключу есть — Query, как быстрее находить данные в кеше?, работа с транзакциями, все это ниже в статье…
Читать дальше →

Apache Ignite vs Oracle СУБД

Время на прочтение3 мин
Количество просмотров9.6K
Apache Ignite – распределенная база данных в памяти, подобные БД получают распространение и хочется сравнить с тем что уже есть и зарекомендовало себя, например реляционная СУБД Oracle. Ignite имеет широкие возможности распределенных вычислений, также есть поддержка SQL на уровне ANSI-99, в производительности SQL и хочется сделать некоторое сравнение. Настройка БД будет в обоих случаях во многом по умолчанию, в случае Oracle это XE, а в случае Ignite это два узла(node) на одном компьютере. Компьютер i5 7400 (4-ядра) 3.5Ггц, 8Гб ОЗУ, SSD диск.
В качестве тестовых данных буду использовать данные КЛАДР (~223 тыс. записей) в качестве среды выполнения запросов DBeaver в котором настроены два подключения к Ignite и Oracle. И первое что сделаю импортирую данные в таблицы, Данные КЛАДР из DBF переведу в CSV, а затем средствами DBeaver выполню импорт в таблицы.
Читать дальше →

Опыт обновления Oracle 11.2.0.4 до 12c

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


Всех приветствую. Я представитель отдела по развитию биллинговых систем, в региональном операторе связи. Хочу поделиться опытом обновления Oracle до версии 12c (12.2.0.1)
(Почему-то многие путают процесс апгрейда с миграцией, вот здесь доходчиво расписано когда и в каких случаях употреблять то или иное значение). Все мероприятия происходили в прошлом году.

Организационные мероприятия


С начала года начали организационные подготовительные работы, в первую очередь необходимо было развернуть тестовую зону. Нет, тестовая зона у нас имелась, только Oracle в ней развернут под SUSE. А в промышленной среде Oracle у нас установлен на серверах с платформой IA-64, и HP-UX в качестве ОС, развертывание же HP-UX в виртуальной среде оказалось тем еще квестом — HP-UX в качестве гостевой ОС поддерживает только одна VM — Integrity Virtual Machines, которая должна быть установлена на сервере с той же архитектурой. В итоге решили проводить работы на production standby-db-сервере.
Читать дальше →

Oracle – табличные конвейерные функции

Время на прочтение3 мин
Количество просмотров54K
В промышленных системах часто требуется выполнить преобразования данных с использованием pl/sql кода с возможностью обращения к этим данным в sql запросе. Для этого в oracle используются табличные функции.
Читать дальше →

Как управлять секциями в БД Oracle и не сойти с ума

Время на прочтение4 мин
Количество просмотров8.8K
Мы уже рассказывали о том, почему секционирование баз данных очень важно для производительности DLP-системы и как мы реализовывали его в PostgreSQL. В этой статье речь пойдет об Oracle.

Специфика использования СУБД в DLP-решениях состоит в том, что объем данных прирастает очень быстро. Их невозможно держать в оперативном архиве, и долговременное хранение – это необходимость в компании численностью свыше хотя бы 50 человек. При этом оперативный архив наполняется так быстро, что отдавать информацию в долгосрочный архив приходится раз в 2 недели или чаще. Использование только встроенных средств СУБД требует знаний и опыта. Это главная сложность, и она, в общем-то, очевидна «на берегу».

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


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

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