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

 

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

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

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


¦ Собственные запросы к таблицам с данными плана. Этот подход для меня является наилучшим, поэтому я подробно опишу его в данном разделе. Если вы уже знаете, как находить ответы на основные вопросы о плане выполнения (то есть порядок соединения, методы соединения и методы доступа к таблицам),
78

3. Просмотр и интерпретация планов выполнения

используя другие инструменты, возможно, вам не понадобится этот раздел, и вы сможете прекрасно работать уже знакомыми вам методами.

Подготовка

DB2 помещает данные плана выполнения в семь таблиц.

¦ EXPLAININST AN CE

¦ EXPLAINSTREAM

¦ EXPLAINO BJ ЕСТ

¦ EXPLAINARGUMENT

¦ EXPLAINOPERATOR

¦ EXPLAINPREDICATE

¦ EXPLAIN_ST ATEM ENT

Чтобы создать эти таблицы, запустите сценарий EXPLAIN. DDL, расположенный в подкаталоге mi SC каталога sql lib, будучи подключенным к схеме, в которой вам потребуются эти таблицы. В каталоге mi Sc подключитесь к серверу баз данных и активизируйте схему, принадлежащую пользователю, под именем которого вы будете создавать планы выполнения. В командной строке Unix выполните команду: db2 -tf EXPLAIN.DDL

Таблицы плана DB2 содержат информацию об иерархии данных для каждого плана выполнения; наверху иерархии находится EXPL AI N I NSTANCE, в которой для каждого плана выполнения существует отдельная строка. Когда вы удаляете строку из EXPLAIN INSTANCE, происходит каскадное удаление сведений об этом плане выполнения из других таблиц. Обычно ваши планы выполнения хранятся в таблицах в схеме, принадлежащей пользователю, под именем которого вы зарегистрированы. Например, вы подключились при помощи такой команды:

CONNECT ТО ServerJIame USER UserJIame USING SomePassword:

В этом случае вы, вероятно, выбрали схему, содержащую данные приложения, поэтому можете запускать запросы для получения этих данных:

SET SCHEMA Appl Jchema:

Однако последнее действие никак не повлияет на то, где создаваемые вами планы выполнения утратят силу. Они все также хранятся в ЕХРЬАШтаблицах в схеме User_Name.

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

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

1. Удалите все строки из таблицы плана выполнения верхнего уровня EXPLAIN_INSTANCE в схеме, которую вы используете для хранения планов выпол-
Чтение планов выполнения в DB2

79

нения (обычно это схема, принадлежащая пользователю, в качестве которого вы зарегистрированы). Операция DELETE в таблице EXPLAIN_INSTANCE автоматически выполняет каскадное удаление данных плана выполнения из остальных шести таблиц.

2. Создайте записи плана выполнения при помощи оператора SQL EXPLAIN PLAN FOR Настраиваемый_оператор>.

3. Выведите план выполнения на экран любым из нескольких предусмотренных в DB2 способов, описанных ранее под заголовком «Чтение планов выполнения DB2».

4. Очистите результаты вашей работы при помощи ROLLBACK.

Я продемонстрирую этот процесс на плане выполнения для простого запроса:

SELECT Last_Name. First_Name. Salary FROM Employees

WHERE Manager_ID=137

ORDER BY Last_Name. First_Name:

Далее вы видите реальное содержимое сеанса DB2 для ручного определения плана выполнения нашего запроса с общими паролями и именами:

$ db2 +с -t

(с) Copyright IBM Corporation 1993.1997 Command Line Processor for DB2 SDK 5.2.0

You can issue database manager commands and SQL statements from the command prompt. For example:

db2 => connect to sample db2 => bind sample.bnd

For general help, type: ?.

For command help, type: ? command, where command can be

the first few keywords of a database manager command. For example:

? CATALOG DATABASE for help on the CATALOG DATABASE command

? CATALOG for help on all of the CATALOG commands.

To exit db2 interactive mode, type QUIT at the command prompt. Outside interactive mode, all commands must be prefixed with 'db2‘.

To list the current command option settings, type LIST COMMAND OPTIONS.

For more detailed help, refer to the Online Reference Manual.

db2 => CONNECT TO Server_Name USER User_Name USING SomePassword:

Database Connection Information

Database server = DB2/SUN 5.2.0

SQL authorization ID = USER_NAME

Local database alias = SERVER_NAME

db2 => SET SCHEMA Appl_Schema:

DB20000I The SQL command completed successfully. db2 => DELETE FROM USER_NAME.EXPLAIN_INSTANCE:

DB20000I The SQL command completed successfully.

db2 => EXPLAIN PLAN FOR SELECT Last_Name. First_Name. Salary FROM Employees

db2 (cont.) => WHERE Manager_ID=137

db2 (cont.) => ORDER BY Last Name. First Name:
80

3. Просмотр и интерпретация планов выполнения

DB20000I The SQL command completed successfully.

db2 => SELECT 0.0perator_ID. S2.Target_ID. 0.OperatorJype

db2 (cont.) => S.Object_Name. CAST(O.Total_Cost AS INTEGER) Cost
Предыдущая << 1 .. 33 34 35 36 37 38 < 39 > 40 41 42 43 44 45 .. 161 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100