Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Тоу Д. -> "Настройка SQL. Для профессионалов" -> 33

Настройка SQL. Для профессионалов - Тоу Д.

Тоу Д. Настройка SQL. Для профессионалов — СПб.: Питер, 2004. — 333 c.
ISBN 5-94723-959-0
Скачать (прямая ссылка): nastroykasqldlyaprof2004.djvu
Предыдущая << 1 .. 27 28 29 30 31 32 < 33 > 34 35 36 37 38 39 .. 161 >> Следующая


Резюме

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

В этой главе излагается основной материал, касающийся создания и чтения планов выполнения SQL-запросов. Он не является критичным, то есть вы не должны обязательно читать эту главу, чтобы понять материал остальных глав книги. Все производители серверов баз данных предлагают специальные инструменты создания и просмотра планов выполнения, зачастую обладающие удобным графическим интерфейсом. Также существуют популярные утилиты сторонних производителей, например TOAD. Если у вас есть доступ к таким хорошо документированным утилитам и вы знаете, как с ними работать, то эту главу можно пропустить или быстро просмотреть. Эта глава не предназначена для замены или дополнения специализированных утилит или их документации. Нет, я описываю самые основные методы создания и чтения планов выполнения, методы, которые гарантированно доступны вам вне зависимости от того, какие утилиты есть в вашем арсенале. Эти базовые методы особенно полезно знать, если вы работаете в разнотипных средах разработки, где нельзя рассчитывать на постоянное и немедленное наличие специализированных инструментов. Если у вас уже есть более сложные методы и вы умеете использовать их, то вам не потребуются мои методы (и, возможно, вы их не захотите изучать). За время моей работы с разнообразными серверами баз данных я никогда не беспокоился о наличии сложных инструментов. Я обнаружил, что если знать, какой план выполнения тебе нужен и как его получить, для эффективной работы всегда хватит простых инструментов, интегрированных в базу данных. Чтение плана выполнения — это лишь быстрая проверка, использует ли база данных действительно нужный разработчику план.

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

67

Чтение планов выполнения в Oracle

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

Подготовка

Oracle помещает данные плана выполнения в таблицу, которая обычно называется PLAN_TABLE. Если в схеме, которую вы используете для изучения планов выполнения, еще нет PLAN TABLE, создайте такую таблицу. Можно создать соответствующую текущим данным таблицу PLAN_TABLE при помощи сценария utlxplan.sql в каталоге rdbms/admin в ORACLЕ_Н0МЕ. Если 0RACLE_H0ME вам недоступна, то вполне подойдет PLAN_TABLE, созданная следующим сценарием:

CREATE TABLE PLAN TABLE(

STATEMENT ID VARCHAR2(30).
TIMESTAMP DATE.
REMARKS VARCHAR2(80).
OPERATION VARCHAR2(30).
DPTIONS VARCHAR2(30).
OBJECT NODE VARCHAR2(128)
OBJECT OWNER VARCHAR2(30).
OBJECT NAME VARCHAR2(30).
OBJECT INSTANCE NUMBER(3B).
OBJECT TYPE VARCHAR2(30).
OPTIMIZER VARCHAR2(255)
SEARCH COLUMNS NUMBER(38).
ID NUMBER(38).
PARENT ID NUMBER(38).
POSITION NUMBER(38).
COST NUMBER(38).
CARDINALITY NUMBER(38).
BYTES NUMBER(38).
OTHER TAG VARCHAR2(255)
OTHER LONG):

Процесс, лежащий в основе отображения планов выполнения

Для создания и отображения планов выполнения в Oracle с минимальным вмешательством в работу других пользователей, которые также могут работать с таблицей плана, используется 4-шаговый процесс из утилиты SQL*Plus.
Предыдущая << 1 .. 27 28 29 30 31 32 < 33 > 34 35 36 37 38 39 .. 161 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100