Thursday, August 15, 2013

12c on Exadata



Стали известны некоторые подробности того, как будет работать 12с на Экзадате, вот несколько Экзадата-специфических особенностей.
Главное направление развития - улучшение OLTP на Экзадате.
Как пишет Оракл: Database 12.1 enhancements for Exadata are focused on OLTP and Consolidation

- Hardware оптимизировано под OLTP Messaging
            СУБД сможет напрямую работать с Infiniband (Database calls InfiniBand hardware directly)

- Smart Scan сможет работать с типом данных LOB
            – Smart Scan offload for small CLOBs (< 4KB)
            – Like expressions, e.g. like(html, ‘Exadata’)
            – Pattern Matching, e.g. regexp_like()
            – Smart Scan works for compressed and encrypted CLOBs

- HCC now has row level locking for better OLTP
Блокировки на уровне строк позволяют совместить плюсы OLTP-производительности и HCC-компрессии (ранее при DML блокировался целый HCC compression unit).

- HCC будет работать с типами данных Spatial и Oracle Text
            – One Oil & Gas company saw over 40X compression for a spatial table
            – Enabled by Direct Load support for tables with Domain and Functional Indexes

- OLTP Compression станет возможной для таблиц с 254 и более столбцами

- Network Resource Manager
            OLTP-задачи чувствительны к сетевым задержкам и загрузке сети.
            Это особенно заметно в консолидированных средах.
            Поэтому в 12с на Экзадате будет работать NRM, который позволит задать приоритеты на пользование сетью.
            Ряд настроек будут встроены в Экзадату изначально, например, запись в редо лог файлы имеет наивысший приоритет (чтобы гарантировать высокую скорость транзакций)
            Бэкапы будут иметь более низкий приоритет изначально.

- IORM сможет задавать приоритеты для PDB  (БД, работающих в контейнере)
  Приоритет можно задать для JOB, для SQL, для USER, для SERVICE и т.д.

- ASM rebalance offloaded to Exadata
            Серверы хранения будут обмениваться данными напрямую, не загружая операциями IO серверы БД

Проект по созданию тестового комплекса в банке ВТБ24



http://corp.cnews.ru/news/line/index.shtml?2013/08/14/539163 

"тестовый комплекс предназначен для предварительной отработки всех изменений, которые будут вноситься в ключевые действующие информационные системы и аппаратную часть ИТ-инфраструктуры банка"


"Первоначально решение предполагает наличие семи тестовых контуров. Каждый контур соответствует существующей продуктивной инфраструктуре и содержит тестовые среды нескольких десятков ключевых информационных систем банка, а при необходимости в контур можно подключать дополнительные системы. В настоящий момент в среднем на каждый контур приходится от 6 до 30 тестовых сред."


Комментируем: Современные банки (как и многие другие организации) все больше становятся ИТ-компаниями, т.е. выполняют большие объемы ИТ-работ, вместо того, чтобы заниматься своим прямым бизнесом. Разработали концепцию, схемы, регламенты:



"Одной из ключевых задач проекта стала подготовка концепции тестовой инфраструктуры, после чего были разработаны схемы организации тестовых сред и принципы работы тестовых контуров, бизнес-процессы, регламенты организации тестирования. Затем был спроектирован и развёрнут программно-аппаратный комплекс, соответствующий задачам проведения комплексного функционального тестирования требуемого качества и объема.

Современная ИТ-инфраструктура страдает большим разнообразием - слишком большое количество комбинаций железа и  и ПО: - разные аппаратные платформы - x86-64, Power, Itanuum,
- разные версии ОС на них
- разные версии прошивок и драйверов
- разные варианты конфигурации


В этих условиях для выявление причины проблем и ее устранения заказчику придется пообщаться с большим количеством вендоров, каждый из кооторых быстро заявит, что проблема на стороне другого вендора, а в его софте все хорошо.
Т.е. проблема совместной работы софта разных производителей и возникающие в связи с этим проблемы - это проблема заказчика.

В этом плане использование Экзадаты имеет определенные преимущества за счет того, что количество вариантов минимально и Оракл принимает на себя ответственность за совместную работу СУБД+Линукса+Драйверов+железа.

Monday, August 12, 2013

12c - first tests

We have the Exalytic machine and created 3 DBs in it: one -11.2.0.3 and two 12.1.0.1 - one in container (CDB) and one non-CDB.
We put all datafiles from all DBs on the same file system.
We aligned all parameter for all DBs - sga_max_size, pga_aggregate_target, processes, redo log file sizes ... and so on.
Codepage was CL8MSWIN1251 in all 3 DBs.
Forcelogging and other v$database params were aligned.

Then we run some tests.

The test for PL/SQL:



SET TIMING ON;    
             
declare a number := 0;               
begin   for i in 1 .. 1e9           
   loop a := a + 1; end loop;                   
end;                           
/
                  
declare a number := 0;    
begin   for i in 1 .. 1e9
   loop a := a + 1/3; end loop;        
end;                
/                   
 

The test for SQL:
- created one table and measured population time (INSERT) and SELECT time with select:



create table test tablespace users as
select ...
from dual connect by rownum <= 2e6;




set timing on
select count(*),sum(client_id)/1e7,sum(length(NAME))/1e7,sum(account)/1e7, min(birthday) from test; -- this run was rejected
select count(*),sum(client_id)/1e7,sum(length(NAME))/1e7,sum(account)/1e7, min(birthday) from test;
select count(*),sum(client_id)/1e7,sum(length(NAME))/1e7,sum(account)/1e7, min(birthday) from test;
select count(*),sum(client_id)/1e7,sum(length(NAME))/1e7,sum(account)/1e7, min(birthday) from test;




Then we updated a number of rows manually and deleted some rows manually and wrote down our results.


The results are:

- PL/SQL +1 run 53-55 sec in 11.2 and 43-44 in 12c.
- PL/SQL +1/3 rim 150-155 sec in 11.2 and 

- SQL 11.2 SELECT time is 1.34-1.38 sec, 12c is 0.56-0.58 sec.
- Update,Delete is 3,32 in 11.2 and 4,08 in 12c.

So, we clearly see the about 15-20% improvement in PL/SQL and about 2 times faster the SELECT and about 30% faster DML.

The DBMS_RANDOM become 3 times slower.
But we hope, it become more random.

Any comments ?

Does DEALLOCATE UNUSED or SHRINK SPACE will free space occupied by LOB segment?

Lets check how it works. My env is DB 19.20@Linux-x64 1) I created the table with 4 LOB columns of 4 different LOB types: BASICFILE BLOB, BA...