Программирование >>  Oracle 

1 [ 2 ] 3 4 5 ... 469


разработчикам. Идея в том, что вы не можете себе позволить рассматривать СУБД как черный ящик, просто отвечающий на запросы и самостоятельно обеспечивающий требуемую масштабируемость и производительность.

Глава 2. Архитектура. СУБД Oracle - весьма сложная система. При каждом подключении к базе данных или выполнении команды UPDATE в фоновом режиме работает целый набор процессов, гарантирующих устойчивую работу приложений и поддержку целостности данных. Например, СУБД поддерживает достаточный объем информации для восстановления данных в исходное состояние при необходимости. Она кэширует данные и в случае необходимости повторно использует их. И так далее. В большинстве случаев все это происходит незаметно (по крайней мере, для разработчика), но при возникновении проблем половина успеха зависит от знания того, где искать их причину.

В этой главе описаны три основных компонента архитектуры Oracle: структура памяти (в частности, глобальная системная область - System Global Area), физические процессы и набор файлов (фалы параметров, файлы журнала повторного выполнения...). Знание архитектуры Oracle принципиально важно для понимания уникального способа реализации ряда возможностей в Oracle и его влияния на приложения.

Глава 3. Блокирование и одновременн1й доступ. Различные СУБД выполняют

одни и те же операции по-разному (то, что хорошо работает в SQL Server, может гораздо хуже работать в Oracle), и понимание реализации механизмов блокирования и управления одновременным доступом в Oracle жизненно важно для создания успешно работающих приложений.

В этой главе описан базовый подход к этим механизмам, используемый в СУБД Oracle, типы применяемых блокировок (ЯМД, ЯОД, защелки...) и проблемы, возникающие при некорректной реализации блокирования (взаимные блокировки, блокирование-доступа и эскалация блокировок). В разделе, посвященном управлению одновременным доступом, описываются предоставляемые СУБД Oracle функции, которые позволяют контролировать доступ пользователей к базе данных и ее изменение.

Глава 4. Транзакции. Транзакции - фундаментальное свойство всех баз данных; именно они отчасти отличают базу данных от файловой системы. И тем не менее их часто понимают неправильно, а многие разработчики даже не подозревают, что вовсе их не используют. В этой главе описано, как правильно использовать транзакции в СУБД Oracle. Кроме того, автор обращает внимание на ряд плохих привычек , приобретаемых при разработке приложений для других СУБД. В частности, рассматривается понятие неделимости транзакции и ее влияние на выполнение операторов в Oracle. Затем описываются операторы управления транзакциями (COMMIT, SAVEPOINT, ROLLBACK), ограничения целостности и распределенные транзакции (протокол двухфазной фиксации). Наконец, рассматривается ряд реальных проблем использования транзакций: их регистрация и роль журнала повторного выполнения и сегментов отката.



22 Введение

Структуры и утилиты базы данных

Глава 5. Повторное в1полнение и откат. Можно сказать, что разработчику не требуется столь же детально, как АБД, понимать работу журнала повторного выполнения и сегментов отката, но разработчик должен представлять их значение для базы данных. Обсудив назначение журнала повторного выполнения, мы опишем, что конкретно делает оператор COMMIT. Мы также рассмотрим ряд проблем, в частности объем генерируемой информации в журнале повторного выполнения, отключение журнализации, а также проанализируем использование сегментов отката.

В разделе главы, посвященном откату, мы сначала рассмотрим, какие операторы генерируют наибольший и наименьший объем данных для отката, а затем перейдем к SQL-оператору set transaction. Он обычно используется для задания большого сегмента отката для операции с большим объемом изменений. Затем мы займемся печально знаменитой ошибкой ORA-01555 snapshot too old, рассмотрим причины ее возникновения и способы предотвращения.

Глава 6. Таблиц!. Oracle сейчас поддерживает несколько типов таблиц. В этой главе рассмотрены все типы таблиц - произвольно организованные (обычные, нормальные таблицы), организованные по индексу, входящие в индексный кластер, входящие в хеш-кластер, вложенные, временные и объектные - и описано, когда, как и почему имеет смысл использовать тот или иной тип. В большинстве случаев произвольно организованных таблиц вполне достаточно, но вы должны понимать, когда другие типы могут оказаться более подходящими.

Глава 7. Индексы. Индексы - критический компонент проекта приложения. Правильная реализация индексов требует глубокого знания данных, их распределения и способов их использования. Слишком часто индексы считают второстепенными структурами при разработке приложений, и от этого снижается их производительность.

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

Глава 8. Импорт и экспорт. Средства импорта и экспорта - одни из самых старых инструментальных средств Oracle, используемые для извлечения таблиц, схем или всего определения базы данных из одного экземпляра Oracle и переноса их на другой экземпляр или в другую схему. Тем не менее, многие разработчики не знают, как правильно их использовать. Мы рассматриваем проблемы экспорта больших объемов информации, разделения и переноса данных, и использования этих средств при резервном копировании или реорганизации данных. Глава заканчивается описанием потенциальных ловушек и проблем при использовании средств экспорта и импорта данных.



Производительность

Глава 10. Стратегии и средства настройки. Это одна из моих любимых тем, и в данной главе я детально описываю свой подход к настройке производительности приложений Oracle, а затем предлагаю удобное практическое руководство по применяемым средствам и методам. Начальный раздел посвящен настройке приложений, включая такие темы, как связываемые переменные и синтаксический анализ, утилиты SQL TRACE, TIMED STATISTICS и TKPROF, пакет DBMS PROFILER и важность наличия средств журнализации в приложениях. После полной настройки приложений можно переходить к базе данных, в частности к группе утилит StatsPack и представлениям V$, широко используемым при настройке.

Глава 11. Стабилизация плана оптимизатора. Разработчики, использующие

Oracle 8i (и более новые версии), теперь могут сохранять набор подсказок серверу , известный как план оптимизатора и детально описывающий, как лучше выполнять в базе данных определенный SQL-оператор. Это дает несомненные преимущества с точки зрения производительности, и мы детально описываем способ генерации таких шаблонов (outlines) и управление ими.

Расширенные возможности SQL

Глава 12. Аналитические функции. Некоторые вопросы об информации в базе данных задают часто, но реализующие их запросы сложно написать на обычном языке SQL (кроме того, такие запросы не всегда быстро работают). Сервер Oracle 8.1.6 впервые предоставил аналитические функции. Эти функции добавляют расширения языка SQL, упрощающие создание такого рода запросов и существенно повышающие производительность по сравнению с обычным SQL-запросом. В этой главе описан принцип работы аналитических функций, рассматривается полный синтаксис (включая конструкции функции, фрагмента и окна), а затем даются полные практические примеры использования этих функций.

Глава 13. Материализованн1е представления. Некоторые агрегирующие запросы должны для получения ответа обрабатывать терабайты данных. Последствия с точки зрения производительности очевидны, особенно если речь идет о часто выполняемом запросе - необходимость обработки огромного объема данных при каждом его выполнении. При использовании материализованных представлений мы просто делаем основную часть работы заранее - собираем

Глава 9. Загрузка данн1х. Эта глава посвящена утилите SQLLDR и описывает

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



1 [ 2 ] 3 4 5 ... 469

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.002
При копировании материалов приветствуются ссылки.
Яндекс.Метрика