+ All Categories
Home > Documents > Oracle Database 12c: от эволюции к...

Oracle Database 12c: от эволюции к...

Date post: 15-Jul-2020
Category:
Upload: others
View: 11 times
Download: 0 times
Share this document with a friend
60
Oracle Database 12c: от эволюции к революции Игорь Мельников Oracle CIS
Transcript
Page 1: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Oracle Database 12c: от эволюции к революции

Игорь Мельников

Oracle CIS

Page 2: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 2

The following is intended to outline our general product direction. It is

intended for information purposes only, and may not be incorporated into

any contract. It is not a commitment to deliver any material, code, or

functionality, and should not be relied upon in making purchasing

decisions. The development, release, and timing of any features or

functionality described for Oracle’s products remains at the sole discretion

of Oracle.

Page 3: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 3

План

Transaction Guard и Application Continuity как развитие

Transparent Application Failover

Адаптивное оптимизация SQL-запросов

PL/SQL-функции внутри SQL-запросов

Перемещение данных (секций и файлов) “на лету “ - в

online

Автоматизация управления жизненным циклом

информации (ILM)

Page 4: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 4

Transaction Guard и Application

Continuity

Page 5: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 5

Неизвестное состояние транзакции Текущая ситуация

Транзакция фиксируется в БД

и результат возвращается

серверу приложений.

Серверы

приложений

Серверы БД

Пользователь

Page 6: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 6

Неизвестное состояние транзакции Текущая ситуация

Сбой в инфраструктуре может

привести к тому, что сервер

приложений никогда не получит

ответ от БД.

Серверы

приложений

Серверы БД

Пользователь

Page 7: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 7

Transparent Application Failover (TAF)

Успешно произошло подключение к СУБД

Появилась еще в Oracle Database Client 8.0.6

Page 8: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 8

Transparent Application Failover (TAF)

Успешно произошло подключение к СУБД

Появилась еще в Oracle Database Client 8.0.6

Page 9: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 9

Transparent Application Failover (TAF)

Сбой узла: приложение автоматически

переключилось на второй узел

Переключает приложение на другой узел Oracle RAC

Page 10: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 10

Возможности TAF

TAF сохраняет или восстанавливает:

– Соединение между клиентом и сервером

– Подготовленные SQL команды

– Активные курсоры (команда select), начавшие возвращать

результат выполнения

TAF не сохраняет и не защищает:

– Активные транзакции (ORA-25402 transaction must roll back)

– Серверные переменные PL/SQL пакетов

– Состояние сессии пользователя (команды alter session)

Page 11: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 11

Oracle Database 12c: Transaction Guard

Предоставляет информацию о результате выполнения COMMIT

API , который «знает» о

каждой транзакции

Без Transaction Guard повтор

транзакции может привести к

логическим ошибкам

С Transaction Guard

приложение корректно

обрабатывает ситуацию

возникновения ошибки

Прозрачно используется для

Application Continuity

Серверы

приложений

Серверы БД

Пользователь

Page 12: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 12

Oracle Database 12c: Transaction Guard API для разработчиков

Транзакция

Client Driver

Start

Transaction

Database

Commit? Commit

SQL, PL/SQL или RPC

Resultset

SQL, PL/SQL или RPC

Communication failed

Время

Page 13: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 13

Oracle Database 12c: Application Continuity Скрывает плановые и внеплановые простои

Повторяет транзакции

восстанавливая приложение от

ошибки

Когда это возможно: маскирует

ошибки железа, ПО, систем

хранения

Освобождает от трудоемкого

программирования перехвата

ошибок

Повышает продуктивность работы

пользователей

5. Ответ

приложению

1. Транзакция

2. Вызовы к БД

Oracle Database 12c

4. Повтор операций

3. Ошибка

Page 14: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 14 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Oracle Database 12c: Application Continuity Как устроен Application Continuity изнутри

Page 15: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 15

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 16: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 16

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 17: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 17

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 18: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 18

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Call 1

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 19: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 19

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Call 1

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 20: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 20

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Call 1

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 21: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 21

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Call 1

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 22: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 22

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Call 1

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 23: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 23

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Call 1

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 24: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 24

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Call 1

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Call 2

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 25: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 25

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Call 1

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Call 2

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 26: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 26

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Call 1

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Call 2

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 27: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 27

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Call 1

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Call 2

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 28: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 28

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Call 1

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Call 2

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 29: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 29

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Call 1

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Call 2

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 30: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 30

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Call 1

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Call 2

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 31: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 31

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Call 1

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Call 2

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 32: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 32

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Call 1

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Call 2

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 33: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 33

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Call 1

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Call 2

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 34: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 34

Application Continuity JDBC-драйвер повтора (JDBC Replay Driver)

Call 1

Application Proxy 1

Proxy 2

RAC

Database

Instance1

Instance2

Instance3

Call 2

Connection

Replay Context

Oracle JDBC Driver

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Page 35: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 35

Владелец последовательности просто выполняет

– либо:

Application Continuity Сохранение результата недетерминированных функций для повтора

SQL> GRANT [KEEP DATE TIME | KEEP SYSGUID].. [to USER]

SQL> GRANT KEEP SEQUENCE.. [to USER] on [sequence object];

SQL> REVOKE KEEP SEQUENCE [from USER] on [sequence object];

SQL> ALTER SEQUENCE.. [sequence object] [KEEP|NOKEEP];

SQL> CREATE SEQUENCE.. [sequence object] [KEEP|NOKEEP];

Page 36: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 36

Traditional Database Service Deployments В чем различие между TAF и Application Continuity?

TAF

– OCI, OCCI, JDBC Thin/OCI

– Повторяет только

операторы SELECT

– Для контекста нужно

определять callback

– Все проверки и действия

происходят только на

клиенте

Application Continuity

– Пока только в JDBC Thin

– Повторяет все виды запросов (SQL,

PL/SQL)

– Интегрирован с Transaction Guard

– Для контекста нужно определять

callback

– Сохранение результатов систем.

Недерминированных функций для

безопасного повтора

Page 37: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 37

Page 38: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 38

Адаптивные планы

Метод соединения (join)

Метод распределения

данных в параллельном

запросе

Адаптивная

статистика

Cобирается в время

компиляции запроса

Собирается в момент

выполнения

Oracle 12c: Adaptive Query Optimization

Adaptive Query

Optimization

Adaptive Plans

Adaptive

Statistics

Join

Methods

Parallel

distribution

Methods

At

compile

time

At run

time

Page 39: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 39

Адаптивные планы

Метод соединения (join)

Метод распределения

данных в параллельном

запросе

Адаптивная

статистика

Cобирается в время

компиляции запроса

Собирается в момент

выполнения

Oracle 12c: Adaptive Query Optimization

Adaptive Query

Optimization

Adaptive Plans

Adaptive

Statistics

Join

Methods

Parallel

distribution

Methods

At

compile

time

At run

time

Page 40: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 40

Запрос: Найти все продукты с ценой 15 , которые в заказе присутствует более 1 раз

Возможны два метода соединения:

Nested Loops

Hash Join

Oracle 12c: Adaptive Join Methods Пример

Page 41: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 41

Альтернативная часть

плана (sub-plan)

формируется заранее

Sub-plan сохраняется в

этом же курсоре

Статистика собирается

перед тем как перейти к

соединению

Строки буферизуется

перед тем как выбрать

метод соединения

Adaptive Join Methods Выбор метода соединения “на лету”

Table scan

Order _items

NESTED LOOPS

Index Scan

Prod_info_ind

Statistics Collector

HASH JOIN

Table scan

Prod_info

Строки из order_items буферизуются до соединения,

если их число меньше порогового значения то

выбирается Nested Loop, иначе – Hash Join

Page 42: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 42

Новый уровень dynamic

sampling – 11 (включен по

умолчанию)

Решение об

использовании dynamic

sampling принимается на

основе сложности

предиката, текущей

статистики и времени

выполнения запроса

Динамическая статистика

разделяется между

разными запросами

Oracle 12c: Dynamic Statistics

Page 43: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 43

Oracle 12c: Adaptive Statistics

В ходе выполнения запроса оптимизатор сравнивает текущую

статистику с полученной в ходе выполнения

Если статистики сильно различаются, то для последующего

выполнения будет выбран другой план

Переоптимизация использует статистику полученную в

предыдущих выполнениях запроса

Впервые эта технология появилась в 11g Rel2 под названием

“Cardinality Feedback”

Re-optimization

Page 44: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 44

PL/SQL внутри SQL

Page 45: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 45

Затраты на переключение между SQL/PL/SQL До 12с: затраты на переключение контекста между SQL и PL/SQL VM

Хранимая PL/SQL-функция вызывается внутри SQL-запроса

Накладные расходы - На переключение в PL/SQL и передачу параметров

- На переключение в SQL-движок и возврат результатов

SELECT

DISTINCT my_package.get_domain(catalog_url)

FROM

orders;

Page 46: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 46

Вызовы PL/SQL в SQL-запросах Oracle 12с: тело функции прямо в запросе

WITH

FUNCTION get_domain(url VARCHAR2) RETURN VARCHAR2 IS

pos PLS_INTEGER;

len PLS_INTEGER;

BEGIN

pos := INSTR(url, 'www.');

len := INSTR(SUBSTR(url, pos + 4), '.') - 1;

RETURN SUBSTR(url, pos + 4, len);

END;

SELECT DISTINCT get_domain(catalog_url) FROM orders;

Уменьшение затрат на переключение контекста SQL<->PL/SQL

Выше быстродействие: предпочтительно, чтобы не было вложенных

PL/SQL вызовов

Page 47: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 47

Oracle Database 12c PL/SQL Oracle 12с: новая директива (прагма) компиляции

Для функций, которые будут выполняться в SQL, введена новая

директива компилятора PRAGMA UDF:

CREATE FUNCTION get_domain(url VARCHAR2) RETURN VARCHAR2 IS

PRAGMA UDF;

pos PLS_INTEGER;

len PLS_INTEGER;

BEGIN

pos := INSTR(url, 'www.');

len := INSTR(SUBSTR(url, pos + 4), '.') - 1;

RETURN SUBSTR(url, pos + 4, len);

END;

SELECT DISTINCT get_domain(catalog_url) FROM orders;

Page 48: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 48

Перемещение данных в Online

Page 49: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 49

Перемещение файлов в Online Перемещение файлов “на лету”

SQL> ALTER DATABASE RENAME FILE ‘/ssd_data/hot.dbf TO ‘/sas_data/hot.dbf’;

… …

ORA-01511: error in renaming log/data files

ORA-01121: cannot rename database file 5 – file is in use or

recovery

SQL> ALTER DATABASE MOVE DATA FILE ‘/ssd_data/hot.dbf TO

‘/sas_data/hot.dbf’ REUSE;

SQL> ALTER DATABASE MOVE DATA FILE ‘/ssd_data/hot.dbf TO ‘+sas_data’ KEEP;

SQL> ALTER DATABASE MOVE DATA FILE 5 TO ‘+sas_data’ KEEP;

11g

11g

Page 50: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 50

Перемещение файлов в Online Перенос файлов на ASM и обратно

FileSystem Storage

Tablespace HR: 3 data files

File 1 File 2 File 3

ASM Storage

Tablespace HR: Diskgroup A

MOVE

ONLINE

1 2

ASM Storage

Tablespace APP: Diskgroup B

1 FileSystem Storage

Tablespace APP: 3 data files

2

MOVE

ONLINE

Page 51: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 51

Перемещение файлов в Online Перенос файлов на дешевый и емкий носитель

High Cost Storage (SSD)

Tablespace HR: 3 data files

Low Cost Storage (SATA)

Tablespace HR: 3 data files

MOVE

ONLINE

Uncompressed Storage

Tablespace HR: 3 data files

Highly Compressed Storage

Tablespace HR: 3 data files

MOVE

ONLINE

Page 52: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 52

Операция MOVE PARTITION ONLINE

Полностью

прозрачна для

приложений

Поддерживается

DML и запросы в

момент переноса

секции

Автоматическая

перестройка

глобального

индекса

Oracle 12c: новое в секционировании Перемещение секций в online

Jan2012 Aug2012 Sep2012 Oct2012

Nov2012 Dec2012

Page 53: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 53

Операция MOVE PARTITION ONLINE

Полностью

прозрачна для

приложений

Поддерживается

DML и запросы в

момент переноса

секции

Автоматическая

перестройка

глобального

индекса

Oracle 12c: новое в секционировании Перемещение секций в online

Jan2012 Aug2012 Sep2012 Oct2012

Nov2012 Dec2012

Page 54: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 54

Пример:

Просто сжатие секции с сохранением всех индексов:

ALTER TABLE ORDERS MOVE PARTITION ORD_P1

ROW STORE COMPESS ADVANCED

UPDATE INDEXES ONLINE;

Oracle 12c: перемещение секций в online

Перемещение в другой tablespace c сжатием и с сохранением

глобальных индексов на “лету”:

ALTER TABLE ORDERS MOVE PARTITION ORD_P1

ROW STORE COMPESS ADVANCED

UPDATE GLOBAL INDEXES ONLINE;

Page 55: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 55

Автоматизация управления

жизненным циклом

информации (ILM)

Page 56: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 56

Automatic Data Optimization

Текущий квартал Текущий год Предыдущие годы

OLTP Отчетность Архивные

данные

Row Store

для OLTP

Compressed Column Store для аналитики

10x сжатие 15x сжатие

По мере “остывания” данных, Automatic Data Optimization

автоматически перемещает данные и может их сжимать на лету

Archive Compressed Column Store с максимальным сжатием

SSD

HDD

15000RPM

HDD

7200RPM

Page 57: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 57

Oracle Database 12c Release 1

Очень много, на первый взгляд небольших, но очень практичных

новшеств, например:

– Адаптивная оптимизация запросов

– Повтор транзакций после сбоя (Application Continuity)

– PL/SQL в SQL-запросах

– перемещение файлов и секций в Online

Полная автоматизация операций ILM – Automatic Data Optimization

Заключение

Page 58: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 58

Увидимся в Oracle Database 12c!

SQL> SELECT * FROM next_topic;

ERROR at line 1:

ORA-00028: your session has been killed

Page 59: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 59

Graphic Section Divider

Page 60: Oracle Database 12c: от эволюции к революцииlib.custis.ru/images/e/e6/5_Melnikov_12c.pdf · 2013-11-06 · Oracle Database 12c: Application Continuity Скрывает

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 60


Recommended