More Related Content
Similar to Oracle database In-Memory - новая технология обработки в памяти
Similar to Oracle database In-Memory - новая технология обработки в памяти (20)
More from Andrey Akulov (20)
Oracle database In-Memory - новая технология обработки в памяти
- 2. Oracle Database In-Memory -
новая технология обработки в
памяти
Игорь Мельников
Ведущий консультант
Oracle СНГ
2 Декабря, 2014 г.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
- 3. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
План
Введение
Использование Oracle Database In-Memory
In-Memory Advisor
Oracle Database In-Memory и Oracle TimesTen
Опыт использования
1
2
3
4
5
- 5. Оперативная память: тенденции и влияние
Сегодня память быстрее, дешевле и ее объем больше
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Объемы памяти растут
2002 256 MB/DIMM
2012 16 GB/DIMM
Стоимость падает
2002 $0.2/MB
2012 $0.009/MB
Память значительно
быстрее
Disk
5ms – скорость
доступа
DRAM
100ns –
скорость
доступа
64x больше емкости 25x дешевле 50,000х быстрее
Ускорение OLTP и DW приложений, больше пользователей, больше данных
DRAM:
2012 100 GB/DOM 2012 $0.0005/MB Flash
0.25ms –
скорость
доступа
Flash: 400x больше емкости 400x дешевле 20x быстрее
- 6. Oracle In-Memory Database
Лучшие технологии для работы в памяти
• In-Memory Parallel Query
• Client SQL/PL/SQL Result
• Server SQL/PL/SQL Result
• In-Memory Column Store for
DW
• Columnar Compression
• Columnar Processing
• Cache Fusion Optimizations
• In-Memory Parallel Query
Optimizations
• In-Memory Storage Index on
Exadata Storage
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
12c Release 1
• Big Memory Cluster
& 2x more index compression on
Exadata
• Rowset Processing
• In-Memory Column Store for
Unstructured Data
• OLTP Wide Table Compression
• HCC Row Level Locking
Приложение
работает с
памятью без
изменений!
Комбинация DRAM, Flash и HDD
Быстрой памяти и стоимости дисков
Без ограничений на размер БД
• 20+ years of scale-up
optimizations
• 10+ years of scale-out
optimizations
• Prefix Index Compression
• Bitmap Index Compression
• Basic & IOT Table
Compression
• And much more
• OLTP Compression
• Unstructured Data
Compression
Cache
Cache
Pre-2007 2007 2008 2009 2012
- 7. Противоречие которое длится десятилетия
Строчный формат и поколоночный
Приходится выбирать один формат и идти на компромиссы
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Row
OLTP-операции работают быстрее со
строчным форматом
– Быстрая обработка нескольких строк, много колонок
Column
Аналитика работает быстрее с
колоночным форматом
– Отчет о сумме продаж по штату
– Быстрая обработка нескольких колонок, много строк
ORDER
SALES
SALES
S
T
A
T
E
- 8. Oracle Database In-Memory
Новая технология обработки в памяти
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
8
- 9. Oracle In-Memory Columnar Сache
DRAM
Pure Columnar
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Данные в представлении по
колонкам без генерации
redo-информации
Минимальные затраты на
изменения – даже для OLTP-
транзакций
Данные загружаются в кэш
при старте экземпляра БД
- 10. Oracle In-Memory: отдельный кэш в SGA
Instance
SGA
Redo log
buffer cache
In-Memory
Columnar
Cache
• Динамический параметр INMEMORY_SIZE
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Instance
SGA
Redo log
buffer cache
Shared pool
Library
cache
Data Dict.
cache
In-row
Database
buffer cache
PMON SMON DBWR LGWR CKPT Others
SQL ALTER SYSTEM SET inmemory_size=32G SCOPE=SPFILE;
- 11. In-Memory Option: Оба формата в памяти СУБД
Sales Sales
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
И строчный и поколоночный
формат хранения в памяти для
одних и тех же данных/таблиц
Данные одновременно активны и
транзакционно согласованы
В 100 раз быстрее аналитика
отчетность: поколоночный формат
В 2 раза быстрее OLTP: строчный
формат
Column
Format
Memory
Row
Format
Memory
OLTP Analytics
- 12. Почему сканирование в In-Memory быстрее чем в
буферном кэше?
SELECT COL4 FROM MYTABLE;
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
12
X
X
X
X
X
РЕЗУЛЬТАТ
Буферный кэш
Строчный формат
- 13. Почему сканирование в In-Memory быстрее чем в
буферном кэше?
SELECT COL4 FROM MYTABLE;
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
13
RESULT
In-Memory кэш
Колоночный формат
РЕЗУЛЬТАТ
X
X
X
X
- 14. Включение columnar-кэширования для таблицы или
mview
• Включение columnar-кэширования для группы столбцов таблицы
• Кэшироваться может не вся таблица, а только часть столбцов!
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
SQL ALTER TABLE cities
INMEMORY
INMEMORY (Id, Name, Country_Id, Time_Zone)
NO INMEMORY (Created, Modified, State);
Table altered.
SQL ALTER MATERIALIZED VIEW cities_mv INMEMORY;
Materialized view altered.
•Служебные столбцы – не
участвуют в отчетах:
нужны только для бизнес-
логики
- 15. Изменение плана запроса
SQL-оптимизатор перестраивает план запроса
SQL SELECT count(*) FROM cities;
Execution Plan
----------------------------------------------------------
Plan hash value: 2756775702
---------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)|
---------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 0 (0)|
| 1 | SORT AGGREGATE | | 1 | |
| 2 | TABLE ACCESS INMEMORY FULL| CITIES | 1 | |
---------------------------------------------------------------------
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
- 16. Сканирование миллиарда строк в секунду на
процессорном ядре
Пример: Найти все продажи в штате CA
In-Memory Column Store
Sales State column
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
“CA”
SIMD
Compare all
values in 1
cycle
Сравнение
всех
значений за
один цикл
Загрузка
значений
множества
штатов
Vector
Register
более чем
в 100 раз
быстрее
• Каждое процессорное ядро
сканирует одну колонку
При сканировании
используются быстрые
векторные SIMD-инструкции
Миллиарды строк в секунду
сканируются одним ядром
CPU
- 17. Сканирование и объединение данных из нескольких
таблиц
Пример: Найти все продажи в outlet-магазинах
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Продажи
Магазины
Type=outlet
T
Y
P
E
Storeid
in
15,38,64
S
T
O
R
E
I
D
A
M
O
U
N
T
Конвертирует join в
быстрые сканы колонок
Joins выполняются в 10 раз
быстрее
Sum
- 18. Мгновенная генерация отчетов: доли секунд
Пример: Показать тенденции продаж
обуви в outlet магазинах
In-Memory
Report Outline
Stores
Products
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Sales
Sales
Динамически создает в
памяти объект-отчет
Объект заполняется во время
сканирования таблицы
продаж
Отчеты строятся в 20 раз
быстрее без заранее
созданных кубов
- 19. Cжатие столбцов в columnar-кэше
Метод сжатия Описание
• NO MEMCOPRESS • Данные не сжимаются
• MEMCOMPRESS FOR DML • Метод сжатия оптимизированный для DML-
операций
• MEMCOMPRESS FOR QUERY LOW • Метод по умолчанию.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
• MEMCOMPRESS FOR QUERY HIGH
• MEMCOMPRESS FOR CAPACITY HIGH
• MEMCOMPRESS FOR CAPACITY LOW
- 20. OLTP работает медленно из-за аналитических индексов
Таблица
1 - 3
OLTP
индекса
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
10 - 15
аналитических
Большинство индексов в OLTP
индексов
(например, в ERP) базах строится
только для аналитических запросов
Индексы хорошо подходят для
предсказуемых запросов (и в
памяти, и на диске)
Вставка одной строки в таблицу
приводит к обновлению 10-15
аналитических индексов:
Медленно!
Поколоночное
хранение в памяти
- 21. Oracle In-Memory – высокая доступность
Data Guard GoldenGate
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Представление по столбцам в
памяти не влияет на формат данных
на диске: datafiles, logging, backup,
recovery, и т.д.
Все технологии, в том числе ASM,
RAC, DG, GG работают прозрачно
для In-Memory Option
Защита от любых видов ошибок
На уровне железа
Логические ошибки
приложения (Flashback)
RAC
ASM
RMAN
- 22. Oracle In-Memory в RAC
• Управление распределением объектов в кэше между узлами RAC:
– AUTO DISTRIBUTE – синхронизацией кэша управляет СУБД (поведение по
умолчанию)
– DUPLICATE – (exa-only) кэши принудительно синхронизируются между узлами
RAC (2 копии chunk-а кластер)
– DUPLICATE ALL – (exa-only) кэши одинаковы на всех узлах RAC
– DISTRIBUTE BY ROWID RANGE, DISTRIBUTE BY
PARTITION, DISTRIBUTE BY SUBPARTITION
SQL ALTER TABLE cites INMEMORY
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
DUPLICATE;
Table altered.
In Memory
Column
Store
In Memory
Column Store
In Memory
Column Store
In Memory
Column Store
- 23. Полный синтаксис кэширования таблицы
Мощный и гибкий синтаксис
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
SQL ALTER TABLE cities
INMEMORY
PRIORITY CRITICAL
DUPLICATE
INMEMORY MEMCOMPRESS FOR CAPACITY HIGH (Country_Id, Time_Zone)
INMEMORY MEMCOMPRESS NO (Id, Name, Name_Eng)
NO INMEMORY (Created, Modified, State);
Table altered.
- 24. Storage Index в In-Memory Columnar Store
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Хранит минимальное
и максимальное
значение столбца в
каждом экстенте
памяти кэша
Прозрачно исключает
ненужные
сканирования
столбцов, например:
WHERE prod_id 14
AND prod_id 29
- 25. In-Memory Option - архитектура
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Space Manager
Управляет памятью в In-
Memory Column Store
(create, extend, drop)
Загружает данные в кэш
Transaction Manager
Обеспечивает
согласованность данных в
In-Memory Column Store с
буферным кэшем
Обеспечивает
версионность
- 26. Для каких приложений подходит In-Memory Option?
• Если в приложении есть много запросов сканирующих много строк с
фильтрами такими как: “=, , , и IN”
• Запрашивает всего лишь несколько столбцов, напр: 5 столбцов из 100
столбцов таблицы
• Приложение часто делает соединение большой факторной таблицы с
таблицей измерений, с фильтром по таблице измерений
• Типы приложений предпочтительные для использования In-Memory
Option: хранилища данных (DataWarehouse) и cмешанного типа
(Mixed Application)
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
- 27. Oracle Database In-Memory и TimesTen
TimesTen In-Memory Database
• Встраиваемая БД для приложений
• Экстремальная быстрая производительность
для OLTP-нагрузки (время ответа -
микросекунды)
• Адаптивный кэш для интегрированной системы
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Application
Application
Application
Oracle Exalytics
Oracle Database In-Memory Option
• Масштабируемая обработка данных в памяти
для любых видов нагрузки, в том числе и
смешанной (OLTP и DWH)
- 28. OEM Cloud Control 12c R4 - IMC Store Central
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Public
- 29. Oracle In-Memory Advisor
Советчик настройки Oracle In-Memory
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
29
- 30. M6-32 – ЕКС Online для 7 терр. банков
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 30
- 31. Крупный российский заказчик – внутренняя финансовая система (в 162 раза!)
http://www.comdi.com/Oracle/OracleDay2014/
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 31
- 32. Крупный российский системный интегратор – (в 1157 раза!)
http://www.comdi.com/Oracle/OracleDay2014/
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 32
- 33. Заключение: Oracle Database In-Memory
• Экстремальная производительность для OLTP и хранилищ
данных на актуальных данных
• Прозрачное масштабирование по CPU и RAM
• Прозрачно для всех технологий СУБД Oracle
Все преимущества обработки в памяти
без изменения кода приложений!
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |