Псевдосекционирование Цель Стандартный подход при использова - нии partitioning view и его недостатки Усовершенствованный подход Псевдосекционирование.

Презентация:



Advertisements
Похожие презентации
PL/SQL Триггеры (INSERT, UPDATE, DELETE). Определение Три́ггер базы данных (англ. trigger) это хранимая процедура особого типа, которую пользователь не.
Advertisements

«ИЗМЕНЕНИЕ ДАННЫХ В БД» Выполнил: студент 722 группы Специальности Информационные системы (по отрослям) Токарев Виктор.
Технические аспекты проекта в ТД «Копейка» Наталья Яковлева консультант по программным продуктам Oracle Центра технической поддержки Компании РДТЕХ.
Бланк запроса. Создание списка специальностей Вид при конструирования запросов.
Система контроля прав доступа При помощи процедур и триггеров в MySQL.
Процедуры Базы данных: учебный курс Некоторые операции, рассматриваемые как неделимые, трудно выразить с помощью одного запроса к БД. Примеры: занести.
Обработка исключений Гудов А.М., Завозкин С.Ю
Особенности использования TimesTen In-Memory Database в высоконагруженной среде Михаил Гранкин, QIWI.
Язык SQL Операторы манипулирования данными. Операции манипулирования данными DELETE операция удаления записей INSERT операция добавления или ввода новых.
ПЛИСКО ВЯЧЕСЛАВ. Удобная работа с базой данных в PHP.
Triggers для mysql. Что есть триггер? Триггер - это хранимая процедура особого типа, исполнение которой обусловлено наступлением определенного события.
Программируемый клиент ORACLE Технология Pro C/C++
Построение запросов в Access. Преимущества запросов Они позволяют собирать воедино информацию из нескольких таблиц, учитывая связи, установленные между.
Базы данных. Введение Базы данных обеспечивают хранение информации. Доступ к базе данных осуществляется через специальную программу - систему управления.
БАЗЫ ДАННЫХ ЛЕКЦИЯ 12. тема: ОСНОВЫ ЯЗЫКА SQL Общие сведения SQL структурированный язык запросов (Structured Query Language)
Познакомиться с основными принципами работы с символьными величинами Научиться применять процедуры и функции для их обработки.
СУБД Access Запросы Автор: Тутыгин В.С.. Назначение запросов Запросы обеспечивают простой доступ к определенному подмножеству записей одной или нескольких.
PL/SQL Курсоры. Курсор – специальный элемент, связанный с SQL-оператором SELECT. Объявление курсора происходит в секции объявления базового блока. Работа.
Настройка запроса по образцу: четыре способа корректировки плана запроса без изменения кода Деев Илья, «Иннова-Системс»
Содержание: 1. Управление данными. а) Извлечение данных команда SELECT; б) Полный список разделов. 2. Раздел SELECT. а) Синтаксис раздела SELECT; б) Ключевые.
Транксрипт:

Псевдосекционирование Цель Стандартный подход при использова - нии partitioning view и его недостатки Усовершенствованный подход Псевдосекционирование – «за» и «против»

Цель - «сost-оптимизация» ВерсияЦена покупки (техподд. 1 год ) Техподдержка в год EE + partitioning$ $12980 SE$ $ 3850 SE One $ $ 1276 Секционирование требует EE. Секционирование требует Partitioning Option. Разница в стоимости покупки и поддержки на 1 год ( ) на 1 процессор:

Стандартный partitioning view Отдельные таблицы-секции (например, для каждого месяца) Констрейнты для каждой таблицы Индекс для колонки-ключа для каждой таблицы View, объединяющее таблицы скрипт 1

Недостатки стандартного подхода Pruning таблиц-секций только при задании литералов в условии запросов Необходимость построения индекса по полю секционирования при использовании bind-переменных Лишние индексные чтения из ненужных секций. скрипт 2

Усовершенствованный подход Эффективное чтение данных с исключением ненужных «секций» Эффективная вставка данных Эффективное обновление и удаление Превращение большой таблицы в «секционированную» без использования двойного объема табличного пространства.

Усовершенствованный подход : исключение секций Идея – andrey_anonymous, sql.ru ( Добавление колонки view со значением- константой Особенности планов запросов Демонстрация эффективности исключения «секций» скрипт 3

Усовершенствованный подход : эффективная вставка данных Multitable insert в процедуре вставки: insert first when … then insert into tbl1 when … then insert into tbl2 when … then insert into max_tbl Select i_arg1, i_arg2, … from dual; скрипт 4

Усовершенствованный подход: обновление и удаление строк Добавление колонки с ROWID Добавление колонки с названием таблицы Использование instead of trigger Процедуры обновления и удаления данных с доступом по ROWID Снижение эффективности при массовой обработке данных (срабатывание строчного триггера). Среды OLTP и DWH. скрипт 5

Эффективный перенос данных при секционировании Обработка исходной таблицы по экстентам или диапазонам ROWID Перенос данных от последнего экстента к первому Delete данных из обработанного экстента. Не хватает truncate table TBL extent Использование shrink для уменьшения HWM исходной таблицы скрипт 6

«За» и «Против» «Секционирование» в SE! «Секционирование» в EE без расходов на лицензии по секционированию. Построение дополнительных и удаление ненужных индексов на отдельных «секциях» Возможность быстрого исключения и добавления таблиц-секции во view

«За» и «Против» Необходимость в поддержке псевдо - секционирования в коде Сложность плана (требуется больше памяти в library cache) Накладные расходы при обновлении и удалении данных через instead of trigger Проблемы со сложными запросами Сложности при использовании хинтов

Выводы Считайте Взвешивайте все «за» и «против» Тестируйте