Способы доступа к данным в Oracle – Optimizer Access Paths

TABLE FULL SCAN – полное сканирование таблицы TABLE ACCESS BY ROWID – доступ по rowid TABLE ACCESS INMEMORY FULL – In-Memory Column Store INDEX FULL SCAN – просмотр листовых блоков индекса INDEX FAST FULL SCAN – просмотр листовых блоков индекса и получения данных без обращения к таблице INDEX RANGE SCAN – при указании диапазона значений […]

SQL – Joins

Декартово произведение (прямое произведение, Cartesian product) – множество, элементами которого являются всевозможные упорядоченные пары элементов исходных множеств (Cartesian product A × B is the set of all ordered pairs (a, b) where a ∈ A and b ∈ B.) Кортеж — упорядоченный набор фиксированной длины (A tuple is an ordered list of elements) inner join […]

SQL Text expansion

SQL Text expansion – новая фича 12с, которая позволяет получить текст запроса который будет выполнен ораклом. К примеру запрос может содержать views, правила dbms_rls. Для того что бы узнать окончательный текст запроса

NULL это пусто, то есть ничего!

NULL это не значение, это его отсутствие, а отсутствие чего – не известно, по этому null=null или null!=null – нам НЕИЗВЕСТНО, да и вообще, сравнения чего-то с отсутствием чего-то дает в результате НЕИЗВЕСТНО, for ex. 5=null Итак, у нас кроме ДА, НЕТ, появляется третье состояние НЕ ЗНАЮ – нечёткая троичная логика В следующие условиях логика […]

Рекурсивные запросы в Oracle – with recursive – Common Table Expressions

WITH – рекурсивные запросы в oracle начиная с 11.2 WITH numbers ( n ) AS ( SELECT 1 AS n FROM dual — исходное множество — одна строка UNION ALL — символическое «объединение» строк SELECT n + 1 AS n — рекурсия: добавок к предыдущему результату FROM numbers — предыдущий результат в качестве источника данных […]

Иерархические запросы в oracle – Hierarchical Queries

START WITH – начало цикла CONNECT BY – условие (как while к примеру) при котором цикл будет работать PRIOR – оператор который отсылает нас к предыдущей записи (итерации) цикла LEVEL – псевдоситолбец (как и rownum) указывающий уровень отдаленности от начала цикла (так сказать инкремент) ORDER SIBLINGS BY – указывает нам сортировать внутри уровня что бы […]