Архив для Категории 'Oracle new features'

Oracle 11g: direct path read при непараллельном сканировании таблиц (TABLE ACCESS FULL)

Наряду с привычным механизмом многоблочного чтения (событие ожидания db file scattered read) при непараллельном сканировании таблиц в Oracle 11g используется direct path read793845.1 High ‘direct path read’ waits in 11g:

«В версии 11g измененились  модели выбора (heuristics) между direct path reads и операцией чтения блоков данных через буферный кэш при сканировании таблиц (serial table scans).
В 10g, при сканировании больших таблиц использовался  буферный кэш, что теперь не является единственным возможным вариантом.  В Oracle 11g выбор метода доступа между direct path и обычным чтением через кэш основывается на размере таблицы, db_cache_size, shared_pool_size и других параметрах.
Direct path reads быстрее, чем scattered reads и меньше влияет на другие процессы, т.к. исключается механизм latches

Читать далее ‘Oracle 11g: direct path read при непараллельном сканировании таблиц (TABLE ACCESS FULL)’

Predicate pushdown for outer-joined views with GROUP BY

Что стоит учитывать при использовании в запросах типа

select xo.object_id, xo_view.result_count
from xxx_objects xo
left join (select object_id, count(*) as result_count
           from xxx_objects group by object_id) xo_view
on xo_view.object_id = xo.object_id
where xo.object_name = 'XXX_OBJECTS'

использующих outer join с обзорами (view), содержащими group by.
Или  об ограничениях механизма join predicate push-down (JPPD) в версиях Oracle, предшествующих Oracle11g.
Читать далее ‘Predicate pushdown for outer-joined views with GROUP BY’

Oracle 11g on Linux NFS server: direct NFS client

Oracle 11g Release 1 RAC On Linux Using NFS подробно описывает процесс установки, включая конфигурацию Linux NFS Server на x86_64 сервер.

Конфигурация Direct NFS Client

cd $ORACLE_HOME/lib
mv libodm11.so libodm11.so_stub
ln -s libnfsodm11.so libodm11.so

$ORACLE_HOME/dbs/oranfstab для использования 2-х сетевых интерфейсов

server:  MyNFSServer
path:  nas10
path:  nas192
export: /u4nfs/oradata mount: /u01/oradata
export: /u4nfs2/oradata2 mount: /u01/oradata2

ВАЖНО, для функционирования Direct NFS client нужно экспортировать файловую систему NFS для файлов данных Oracle нужно с опцией insecure (позволяет монтировать NFS клиентами, не использующими резервированныйдля NFS сетевой порт) в файле /etc/exports:

/u4nfs/oradata  *(rw,sync,no_wdelay,insecure_locks,no_root_squash,insecure)

Только после этого можно увидеть данные в DNFS обзорах:

select * from v$dnfs_servers;
select * from v$dnfs_files;
select * from v$dnfs_channels;
select * from v$dnfs_stats;

И главное – ощутить мощь Oracle Direct NFS: скорость чтения-записи увеличивается в 1,5-2 раза.

Но, (при использовании в качестве NFS хранилища Linux NFS server, установленный на ПК) скорость записи даже с использованием Oracle Direct NFS всё равно жутко медленная :(

Тестовая конфигурация

Конфигурация тестового NFS сервера: Intel Celeron 2 Ghz, 1GB RAM, 2xSATA HDD, 2×1Gb NIC. Из дисков сделан mdadm RAID-0 (chunksize=64KB – оптимальный размер, протестировано в сравнении с chunksize 16KB и 256KB).

Опции экспорта NFS раздела /etc/exports:

(rw,async,insecure_locks,no_root_squash,insecure)

async – нерекомендованная Oracle опция экспорта NFS, установлена для скорости.

Опции монтирования NFS раздела /etc/fstab:

rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768

рекомендованный Oracle параметр actimeo=0 (отключает кэширование атрибутов файлов на клиенте, см. обсуждение опций NFS and Oracle – Mount options – noac, actimeo, forcedirectio, et al.) также опущен для скорости.

Параметр db_writer_processes = 2 по количеству сетевых соединений с сервером (увеличение снижает скорость записи).

В результате при выполнении операции datafile create|resize ~ 6 MB/s, при операции create table as select ~2 MB/s.

ОЧЕНЬ МЕДЛЕННО

При этом запись на NFS том средствами ОС ~ 35 MB/s – вполне удовлетворительна по производительности при использовании только одного сетевого интерфейса.

Приходится признать, что ПК+Linux – неподходящий NFS сервер для недорогого Oracle RAC решения, нужно пробовать рекомендованное Oracle оборудование NetApp.

Cube-Organized Materialized Views

Интересная статья Дэна Вламиса Accelerating Data Warehouses в Oracle magazine за май-июнь 2008 года посвящена обсужденнию одного из нововведений Oracle 11g – Cube-Organized Materialized Views – материализованные представления на основе Oracle OLAP кубов . Точнее, Oracle OLAP кубы, представленные для SQL приложений, как материализованные представления. С возможностями query rewrite и обновления через MV refresh api.

Логическое и логичное развитие концепции Materialized Views, которым очень не хватало возможности query rewrite для SQL запросов с переменными условиями на основе доступа (через новую операцию доступа к данным CUBE SCAN в плане выполнения) к агрегированым значениям в ОДНОМ предварительно загруженном и просчитанном иерархически сгруппированном массиве данных (OLAP кубе), с одной стороны.

С другой стороны, если добавить появившуюся возможность доступа к данным Oracle 11g OLAP кубов через SQL интерфейс (автоматически генерируемые OLAP views) безо всякого использования OLAP API – то можно предположить, что процесс интеграции технологии «Oracle Express» (приобретённой в 1995 году у IRI software) в Oracle RDBMS можно считать свершившимся фактом.

Красивое решение.

P.S. Легальное использование этих приятных возможностей потребует лицензирования Oracle 11g Enterprise Edition + OLAP option