Информация о книге

5-85582-251-6

Главная  » Научно-техническая литература » Информационные технологии. Компьютеры » Базы данных » Oracle » Oracle: Эффективное проектирование приложений

Кайт Т., Oracle: Эффективное проектирование приложений

Лори, 2008 г., 5-85582-251-6


Описание книги

Эта книга предназначена для всей команды разработчиков Oracle - группы людей, осуществляющих стопроцентный контроль над работой системы. В состав этой команды входят создатели модели данных, разработчики и штат администраторов базы данных. Подобный взгляд противоречит известному мифу о том, что администраторы базы данных полностью контролируют и отвечают за все аспекты работы приложений. Проведем аналогию с автогонками для того, чтобы понять ошибочность этого старого представления. Администратор базы данных (DBA) - это рабочий, меняющий колеса, проверяющий работу двигателя и другие параметры машины. Если пригнать этому рабочему (DBA) Lincoln Navigator (большой грузовик) и сказать, что он будет принимать участие в гонках с Indy 500, то что произойдет? Безусловно, администратор все проверит и удостоверится, что колеса могут двигаться максимально быстро, но он не сможет ничего сделать для того, чтобы машина ехала со скоростью, большей, чем 100 миль в час. В действительности после того, как машина была спроектирована и создана, администратор не так уж много может сделать (а теперь замените машину приложением).

Ключевые слова


  Oracle 


Поделиться ссылкой на книгу



Содержание книги

Глава1 Правильный подход к созданию
приложений
Работа в команде
Роли администраторов базы данных и
разработчиков
Чтение документации
Руководство к руководствам
Путеводитель по чтению
Избегайте синдрома черного ящика
Выбор между независимостью и зависимостью от
базы данных
Опасности синдрома черного ящика
Это база данных, а не свалка данных
Использование первичного и внешнего ключей
Проверка издержек ссылочной целостности
Создание тестовой среды
Тестирование с использованием репрезентативных
данных
Не стоит производить тестирование с одним
пользователем
Не стоит производить тестирование в идеальных
условиях
Проектирование производительности: не
настраивайте производительность . .
Не стоит использовать универсальные модели
данных
Проектирование эффективной модели данных
Определяйте цели производительности в самом
начале
Используйте понятную, специализированную
систему показателей . . . .
Собирайте и регистрируйте показатели во времени
Не стоит что-то делать только потому, что "все
знают, что это нужно" . .
Об оценке производительности снова и снова
Краткосрочная оценка производительности
Долгосрочная оценка производительности
Инструментирование системы
Трассировка asktom.oracle.com
Инструментальное средство удаленной отладки
Использование DBMS_APPLICATION_INFO
Использование DEBUG.F в PL/SQL
Настройка SQLJTRACE в приложении
Использование стандартных API
Построение собственной подпрограммы
Слово "аудит" не является непристойным
Вопрос авторства
Следует остерегаться универсального "лучше"
Подозрительные коэффициенты и другие мифы
Не стоит искать коротких путей
Чем проще, тем лучше
Рассмотрение альтернативных методов
Стоит позволить базе данных делать то, для чего
она предназначена
Использование поставляемой функциональности
Мы слышали, что возможность X работает
медленно
Мы слышали, что применять средство X очень
сложно
Мы не хотим
Мы не знаем
Мы хотим быть независимыми от базы данных
Итоги
Глава 2. Инструменты для настройки
производительности
SQL-Plus
Установка SQL'Plus
Настройка среды SQL'Plus
Читайте документацию!
EXPLAIN PLAN
Установка EXPLAIN PLAN
Использование EXPLAIN PLAN
Как читать план запроса
Возможности EXPLAIN PLAN
Использование DBMS_XPLAN и V$SQL_PLAN
AUTOTRACE
Установка AUTOTRACE
Использование AUTOTRACE
Форматирование выходных данных AUTOTRACE
Исследование выходных данных AUTOTRACE
Сведения, содержащиеся в выходных данных
AUTOTRACE
TKPROF
Включение TKPROF
Запуск TKPROF
Чтение отчета TKPROF
TKPROF для всех
Runstats
Установка Runstats
Использование Runstats
Statspack
Установка Statspack
Использование Statspack
Ошибки в применении Statspack
Краткий обзор работы Statspack
DBMS_PROFILER
Назначение профайлера
Источники информации по профайлеру
JDeveloper (и отладка)
Итоги
Глава 3. Архитектурные решения -
Совместно используемый сервер и выделенный
сервер
Как работает соединение с выделенным сервером
Как работает соединение с совместно
используемым сервером
Неправильные представления о соединении
совместно используемого
сервера
Подведение итогов
Преимущества кластеризации
Принцип работы RAC
Преимущества использования RAC
Подведение итогов по кластеризации '
Применение секционирования
Концепция секционирования
Мифы о секционировании
Причины использования секционирования
Подведение итогов по секционированию
Использование параллельных операций
Миф о параллельных операциях
Параллельное администрирование
Параллельный запрос
Параллельный DML
DIY-параллелизм
Подведение итогов по параллельной обработке
Итоги
Глава 4. Эффективное администрирование
Использование SPFILE для запуска базы данных
Сложности с применением PFILE
Принципы работы SPFILE
Преобразование базы данных для использования
SPFILE
Сохранение изменений системных параметров
Устарел ли PFILE?
Помогите, поврежден мой файл SPFILE, и я не могу
запустить базу данных
Подведение итогов по SPFILE
Разрешите Oracle управлять базой данных
Область применения OMF
Принципы работы OMF
Подведение итогов по OMF
Восстановление данных
Указания по резервному копированию
Подведение итогов по дублированию и
восстановлению
Использование локально управляемых табличных
пространств
Почему устарело DMT?
Следует применять управляемые системой LMT,
если неизвестно,
насколько большими будут размеры объектов
Следует использовать экстенты одинакового
размера,
если известен максимальный размер объекта
Некоторые предосторожности относительно LMT
Подведение итогов по LMT и DMT
Разрешите Oracle управлять пространством в
сегменте
Списки свободных мест и группы списков
свободных мест
Управление списками свободных мест с помощью
PCTFREE и PCTUSED . .
Применение ASSM
Подведение итогов по ASSM
Разрешите Oracle управлять сегментами отката
Установка UNDO .RETENTION
Предостережение по поводу применения
табличного пространства UNDO .
Подведение итогов по работе с табличным
пространством UNDO
Итоги
Глава 5. Обработка операторов
Типы операторов SQL
Выполнение команд
Анализ
Оптимизация и генерация источника строк
Выполнение
Подведение итогов по выполнению операторов
Запросы - от начала до конца
Быстрый запрос
Медленный запрос
Согласованные чтения
Операторы изменения данных DML - от начала до
конца
Обработка DDL
Использование переменных привязки
Преимущества использования переменных привязки
Использование переменных привязки в Java и VB
Из каждого правила существуют исключения
Считывание переменных привязки
Как можно меньше анализа
Стоимость анализа
Использование PL/SQL для сокращения разбора
Изъятие SQL из триггеров для сокращения анализа
Однократная подготовка, многократное
выполнение
Итоги
Глава 6. Эффективное применение оптимизатора,
основанного на стоимости
Недостатки RBO
Настройка работы стоимостного оптимизатора
Настройка параметров OPTIMIZER JNDEX.CACHING
и OPTIMIZERJNDEX_COST_ADJ
Использование системной статистики
Оптимизация использования СВО
Использование параметра COMPATIBLE для
обновлений
Применение параметра
DB_FIIE_MULTIBL0CK_READ_C0UNT
для снижения стоимости полного сканирования _
Установка параметра HASHJOIN_ENABLED
для управления соединениями методом
хеширования
Установка параметра
OPTIMIZER_DYNAMIC_SAMPLING
для динамического сбора статистики
Установка параметра OPTIMIZERJEATURES_ENABLE
для управления выбором возможностей
Использование параметра
OPTIMIZER_MAX_PERMUTATIONS
для управления перестановками
Использование параметра OPTIMIZER_MODE для
установки режима . . . . Параметры
QUERY_REWRITE_ENABLED и
QUERY_REWRITEJNTEGRITY . . Параметры
BITMAP_MERGE_AREA_SIZE, SORT_AREA_SIZE
и HASH_AREA_SIZE для управления памятью PGA
Параметр STAR_TRANSFORMATION_ENABLED
Установка других параметров, воздействующих на
оптимизатор
Использование события 10053 для трассировки
выбора стоимостного
оптимизатора
Итоги
Глава 7. Проектирование эффективной схемы
Базовые принципы проектирования схемы
Применение целостности данных
Использование адекватного типа данных
Оптимизация схемы данных для наиболее часто
выполняемых запросов
Типы таблиц
Таблицы, кластеризованные с помощью индекса на
основе В'-дерева . . . .
Создание кластеров
Использование кластеров
Подведение итогов по кластерам
Таблицы с индексной организацией (ЮТ)
Использование таблиц с индексной организацией в
качестве более
компактной альтернативы ассоциативным таблицам

Использование таблиц с индексной организацией
для совместного размещения данных, вставляемых
в случайном порядке
Подведение итогов по таблицам с индексной
организацией
Внешние таблицы
Настройка внешних таблиц
Изменение внешних таблиц
Использование внешних таблиц для прямой
загрузки
Использование внешних таблиц для параллельной
прямой загрузки . .
Использование внешних таблиц для слияния
Обработка ошибок
Методы индексации
Использование индексов, основанных на функции, -
правильный
подход
Использование доменных индексов
Сжатие . . ^-^ -.
Сжатие индексного ключа
Использование сжатия для таблиц только для
чтения и таблиц
для преимущественного чтения
Подведение итогов по сжатию
Итоги
Глава 8. Эффективное применение языка SQL
Что требуется для написания эффективного SQL
Способы доступа к данным
Полное сканирование
Полное сканирование и число чтений множества
блоков . . .
Доступ по ROWID
Сканирование индекса
Сканирование кластера
Соединения
Вложенный цикл
Соединение методом хеширования
Соединение сортировкой-слиянием
Декартово соединение
Антисоединения
Полное внешнее соединение
Особенности физической схемы
Использование возможностей языка SQL
Псевдостолбец ROWNUM
Скалярные подзапросы
Аналитические функции
Не нужно настраивать производительность
отдельного запроса
Понимание вопроса
Пример, подтверждающий концепцию
Краткий обзор других методик SQL
Итоги
Глава 9. Эффективное программирование на PL/SQL
Выбор PL/SQL
PL/SQL - самый эффективный язык обработки
данных . . . Возможности переноса и повторного
использования PL/SQL .
Следует писать как можно меньше кода
Не следует выполнять это процедурно
Весь код должен умещаться на экране
Использование пакетов
Преимущества применения пакетов
Разрыв цепочки зависимых соединений
Подведение итогов по применению пакетов
Использование статического SQL
Преимущества статического SQL
Поиск возможностей для замены динамического SQL
Подведение итогов по применению статического
SOL
Массовая обработка
Эффект, достигаемый при массовой обработке
Использование массовой обработки для
ETL-операций
Подведение итогов по массовой обработке
Возврат данных
Преимущества ссылочного курсора
Использование ссылочного курсора для возврата
результирующего
набора
Использование атрибутов %TYPE и %ROWTYPE
Определение типов записей, исходя из таблицы
Определение типов записи, исходя из курсора
Определение типов данных, исходя из столбца
Использование права вызывающего
Права вызывающего и множественные схемы
Критерии для программы, выполняющейся
с правами вызывающего
Эффективная работа по выполнению поиска
Выборка единственной строки для поиска
Выполнение поиска с помощью массовой обработки
Выполнение поиска с помощью единственного
оператора
Подведение итогов по выполнению поиска
Использование автономных транзакций
Критерии для автономных транзакций
Влияние автономных транзакций на целостность
данных
Выбор между явным и неявным курсором
Использование неявного курсора для выборки
единственной строки
Применение неявного курсора для
результирующего набора
С ограниченным числом строк
Подведение итогов по применению явных/неявных
курсоров ....
Итоги
Глава 10. Итак, возникла проблема
Определите, что изменилось
Сегодня же начните собирать архив
Работа детектива
Изменяйте элементы по одному
Изменяйте элементы только при наличии веских
причин
Определите цель
Подтверждайте гипотезы
Обеспечьте возможность отмены изменений
Создайте тестовый пример
Требования к тестовому примеру
Тестовый пример должен быть как можно меньше
Итоги


Об авторе

Кайт Т.
Меня зовут Том Кайт. Я работаю на компанию Oracle, начиная со времен версии 7.0.9 (или с 1993 г. — для тех, кто не ведет отсчет времени по версиям Oracle). Но c самим продуктом Oracle я имею дело еще с версии 5.1.5 (однопользовательская версия для DOS, распространявшаяся на дискетах в 360 Кбайт и стоившая 99 долларов). Прежде чем перейти в компанию Oracle, более шести лет я проработал специалистом по интеграции систем, строя крупномасштабные гетерогенные базы данных и приложения, в основном для военных и правительственных организаций. В то время мне приходилось много работать с СУБД Oracle, точнее, оказывать помощь тем, кто использовал базы данных Oracle. Мне приходилось непосредственно контактировать с заказчиками, либо определяя требования и строя их системы, либо чаще помогая в их перестройке и настройке (часто термин “настройка” является синонимом термина “перестройка”). Кроме того, я тот самый Том, который ведет колонку “Ask Tom” (“Спросите у Тома”) в журнале Oracle Magazine, где я отвечаю на вопросы по базам данных и инструментальным средствам Oracle. Обычно в течение одного дня на сайте http://asktom.oracle.com я получаю и даю ответы на десятки вопросов. Каждые два месяца я публикую “избранное” в журнале (все заданные вопросы можно найти в Интернете; естественно, они сохраняются в базе данных Oracle). Кроме того, я веду технические семинары по многим вопросам, которые нашли свое отражение в этой книге. В целом очень много своего времени я трачу, помогая людям успешно работать с базой данных Oracle. Ах да, в свободное время я строю приложения и разрабатываю программное обеспечение в самой компании Oracle Corporation.

Последние поступления в рубрике "Oracle"



Oracle PL/SQL Language: Pocket Reference Oracle PL/SQL Language: Pocket Reference Dawes B., Feuerstein S.

Be more productive with the Oracle PL/SQL language. The fifth edition of this popular pocket reference puts the syntax of specific PL/SQL language elements right at your fingertips, including features added in Oracle Database 12c....

Oracle для профессионалов. Архитектура, методики программирования. Руководство Oracle для профессионалов. Архитектура, методики программирования. Руководство Кайт Т.

В третьем издании продолжается исследование применения баз данных Oracle для построения масштабируемых приложений, которые эффективно функционируют и создают корректные результаты. Том Кайт и Дарл Кун придерживаются простой философии: вы можете......

Doctor Who: Ghosts of India Doctor Who: Ghosts of India Morris M.

India in 1947 is a country in the grip of chaos - a country torn apart by internal strife. When the Doctor and Donna arrive in Calcutta, they are instantly swept up in violent events. Barely escaping with their lives, they discover that the city is......

Если Вы задавались вопросами "где найти книгу в интернете?", "где купить книгу?" и "в каком книжном интернет-магазине нужная книга стоит дешевле?", то наш сайт именно для Вас. На сайте книжной поисковой системы Книгопоиск Вы можете узнать наличие книги Кайт Т., Oracle: Эффективное проектирование приложений в интернет-магазинах. Также Вы можете перейти на страницу понравившегося интернет-магазина и купить книгу на сайте магазина. Учтите, что стоимость товара и его наличие в нашей поисковой системе и на сайте интернет-магазина книг может отличаться, в виду задержки обновления информации.