Особливості використання таблиць, організованих за індексом, Інші СУБД, Бази даних, статті

У цьому випуску ми розглянемо деякі аспекти використання таблиць, організованих за індексом (IOT). Повторне використання простору в таблицях, організованих за індексом Мене цікавить, як повторно використовувати простір в таблиці, організованої за індексом (Index Organized Table – IOT) після видалення істотної кількості рядків.

Вставка в кілька таблиць Oracle, Інші СУБД, Бази даних, статті

“Multi table insert” або вставка одним запитом в кілька таблиць. Напевно багатьом не вистачало такої фішки, хто як реалізовував її, але не знали, що це можна реалізувати засобами Oracle. Сьогодні зустрів замітку в блозі “System Engineering and RDBMS”, в якій описувалися конструкції, що дозволяють робити вставки в кілька таблиць одним запитом. Відразу скажу, що все […]

Використання декількох індексів для виконання запиту, Інші СУБД, Бази даних, статті

У цьому випуску ми розглянемо деякі особливості використання індексів у Oracle. Максимальна кількість індексів для запиту Коли в запиті є два і більше умови з перевіркою на рівність, можна використовувати кілька індексів. Oracle буде “об’єднувати” (зливати, merge) індекси під час виконання, повертаючи рядки, які знайдені за обома індексами. Наприклад, при виконанні запиту:

Прискорення вставки, Інші СУБД, Бази даних, статті

Том, Я б хотів знати, як найкраще виконати наступні вставки. У мене є таблиці t1, t2, t3 і x1, x2 і x3:У таблиці t1 – Приблизно 400000 рядківУ таблиці t2 – Приблизно 1000000 рядків

Ефективне “зміна і вставка” (update + insert = upsert), Інші СУБД, Бази даних, статті

Для реалізації логіки upsert (змінити дані, якщо вони існують / вставити, якщо їх ще немає) при пакетній обробці я використовую такі підходи: спробувати виконати вставку, а при порушенні обмеження первинного ключа обробити виняткову ситуацію і змінити відповідні дані. спробувати змінити дані, перевірити значення sql%rowcount і якщо воно дорівнює 0 – вставити відповідні дані.

Управління простором усередині блоку даних в СУБД Oracle, Інші СУБД, Бази даних, статті

Метою статті є опис процесів, які відбуваються при модифікації вмісту блоку даних. Матеріал носить в основному теоретичний характер і може бути цікавий тим, хто прагне краще зрозуміти внутрішні алгоритми СУБД Oracle. Весь матеріал отриманий досвідченим шляхом і не претендує на повноту і абсолютну достовірність. Експерименти ставилися на звичайній heap-таблиці без індексів, версія Oracle – 9.2.0.6. […]

USING – ключове слово PL / SQL у версії 9i, Інші СУБД, Бази даних, статті

Ця стаття присвячена двом особливостям роботи PL / SQL-машини, яка у версіях 9.x об’єднана з SQL-машиною. Цікаві особливості, які можуть спливти при перенесенні програмного забезпечення на нову версію сервера Oracle… За мотивами відповіді Тома Кайта на питання, задані 15 червня 2003.

Індексування обраних рядків, Інші СУБД, Бази даних, статті

Ця коротка стаття присвячена індексуванню рядків таблиці, що задовольняють деякій умові. Чи можна індексувати тільки обрані рядки? Привіт, Том! Можливо, я відстав від часу – все ще використовую версію 8.1.7, – але мені просто цікаво, чи не можна створити індекси тільки по обраним рядках. Наприклад, коли в індексується стовпці багато порожніх значень і, як я […]

Запит співпадаючих і найбільш близьких рядків, Інші СУБД, Бази даних, статті

Том! Я створюю звіт, в якому треба порівнювати записи зі старої і нової систем. Однак немає гарантії, що для кожного запису зі старої системи знайдеться точний збіг. Якщо точно збігається рядка немає, мені потрібно вибирати “найбільш близьку” запис, в якій збігаються два заданих поля. Якщо такого запису немає, значить, відповідність не знайдено. Нижче представлений спрощений […]

Зміна з’єднання, Інші СУБД, Бази даних, статті

Ця стаття присвячена “хитрим” операторам UPDATE, Що змінює дані в одній таблиці на основі даних з іншої. Попутно обговорюються причини виникнення помилки ORA-01779 при виконанні таких дій шляхом зміни з’єднання. За мотивами чергового відповіді Тома Кайта.