powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / от новичка на DB2
8 сообщений из 8, страница 1 из 1
от новичка на DB2
    #34959812
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброе время суток.
Я разработчик на Sybase ASE. Меня подключили к проекту на DB2. Для начала мне дали процедуру и попросили её прооптимизировать :-0

У меня есть несколько вопросов.
Вопрос 1. Как в DB2 без графики получить метаданные. Интересуют поля таблиц, индексы, тексты процедур, зависимости между объектами?
В терминах Sybase ASE или MSSQL меня интересует DB2 аналог sysobjects, sp_help, sp_helptext, sp_depends и.т.п.

Вопрос 2. Когда нужно создавать Explain tables для анализа access plan и когда можно обойтись без них?


Вопрос 3. Если нужно проанализировать access plan процедуры, какие бы вы посоветовали неграфические утилиты?

Пожалуйста поделитесь боевым опытом.

Заранее огромное спасибо
...
Рейтинг: 0 / 0
от новичка на DB2
    #34960345
тлгдшлм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смотри схему SYSCAT, там все понятно.
Оптимизировать надо запросы а не процедуры можешь посмотеть на SQL PL Profiler что-бы понять что у тебя самое тормозаное в процедуре.
...
Рейтинг: 0 / 0
от новичка на DB2
    #34960859
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. SYSCAT SCHEMA
2.
Надо содавать, если вы хотите помотреть план запроса.
Для каждого пользователя это делается 1 раз.
3.
Нет понятия access plan процедуры.
Есть access plan'ы отдельных команд.
Под sql процедурой создается package с планами запросов статического sql.
Зависимость процедура->пакет - в SYSCAT.ROUTINEDEP .
Искать пакет по routineschema, specificname процедуры.
Анализируется утилитой db2expln .
Планы запросов динамического sql в процедуре будут падать в explain таблицы, если перед вызовами процедуры 1 раз сделать
set current explain mode yes
Доставать эти планы из explain таблиц надо утилитой db2exfmt .
...
Рейтинг: 0 / 0
от новичка на DB2
    #34962543
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное спасибо!

Мне удалось запустить db2xpln как для запросов так и для анализа процедур (через пакаджи) и вывести планы в текстовые файлы.

В приложении с которым я работаю часть практикуется передача выборки данных из процедуры в процедуру через временные таблицы; например процедура 1 создаёт временную таблицу и вызывает процедуру 2
которая эту таблицу заполняет. Далее вызывается процедура 3 которая выполняет запрос с участием этой временной таблицы.

В связи с этим вознили вопросы:

1. Считается ли подобная практика нормальной. Встречалась ли она кому-нибудь из вас?
2. Как проанализировать процедуру 3? db2expln -package Pxxxx вместо плана будет содержать ошибку SQLSTATE 42704, что совершенно логично т.к. временная таблица создаётся в начале цепочки вызовов процедур.
Создание пустой таблицы в процедуре 3 наверное большого смысла иметь не будет, т.к. план должен зависеть от количества записей в ней.

Заранее очень благодарен за ответы.
...
Рейтинг: 0 / 0
от новичка на DB2
    #34962606
Фотография Hunterik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как уже писал Вам nkulikov, для анализа узких мест ваших процедур вы можете воспользоваться SQL PL Profiler-ом...
Вот ссылка .
Данная программка позволит время выполнения отдельных мест ваших процедур и сделать определенные выводы.
Вот ещё интересная ссылочка .
С неё можно попасть сюда ...
И вообще - прогуляйтесь по DeveloperWorks... Интересные вещи пишут.
...
Рейтинг: 0 / 0
от новичка на DB2
    #34962667
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HunterikКак уже писал Вам nkulikov, для анализа узких мест ваших процедур вы можете воспользоваться SQL PL Profiler-ом...
Вот ссылка .
Данная программка позволит время выполнения отдельных мест ваших процедур и сделать определенные выводы.
Вот ещё интересная ссылочка .
С неё можно попасть сюда ...
И вообще - прогуляйтесь по DeveloperWorks... Интересные вещи пишут.

У нас очень строго с установкой софта. Про SQL PL Profiler ещё утром прочитал и озадачился пробиванием разрешения на то чтобы его поставить.

За ссылки большое спасибо. Обязательно посмотрю.

Кто-нибудь может сказать является практика обмена временными таблицами между процедурами нормальной?
...
Рейтинг: 0 / 0
от новичка на DB2
    #34962805
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KruУ нас очень строго с установкой софта. Про SQL PL Profiler ещё утром прочитал и озадачился пробиванием разрешения на то чтобы его поставить.

За ссылки большое спасибо. Обязательно посмотрю.

Кто-нибудь может сказать является практика обмена временными таблицами между процедурами нормальной?Для разработки и отладки процедур есть Developer Workbench . Поставьте лучше его и фикс к нему.
Также есть IBM Data Studio .
Такая практика обмена временными таблицами является вполне нормальной.
В данный момент получить план статического запроса с участием временной таблицы в процедуре возможно только, если пересоздать процедуру.
При этом перед командой создания надо выполнить
Код: plaintext
call set_routine_opts('EXPLAIN ALL');
Т.е. изменить окружение компиляции, чтобы скомпилировать процедуру в особенном режиме.
При каждом выполнении процедуры, собранной в таком режиме, планы всех динамических и статических с инкрементальным связыванием (статический запрос, использующий временную таблицу, попадает в это определение) запросов попадут в explain таблицы.
...
Рейтинг: 0 / 0
от новичка на DB2
    #34965846
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein KruУ нас очень строго с установкой софта. Про SQL PL Profiler ещё утром прочитал и озадачился пробиванием разрешения на то чтобы его поставить.

За ссылки большое спасибо. Обязательно посмотрю.

Кто-нибудь может сказать является практика обмена временными таблицами между процедурами нормальной?Для разработки и отладки процедур есть Developer Workbench . Поставьте лучше его и фикс к нему.
Также есть IBM Data Studio .
Такая практика обмена временными таблицами является вполне нормальной.
В данный момент получить план статического запроса с участием временной таблицы в процедуре возможно только, если пересоздать процедуру.
При этом перед командой создания надо выполнить
Код: plaintext
call set_routine_opts('EXPLAIN ALL');
Т.е. изменить окружение компиляции, чтобы скомпилировать процедуру в особенном режиме.
При каждом выполнении процедуры, собранной в таком режиме, планы всех динамических и статических с инкрементальным связыванием (статический запрос, использующий временную таблицу, попадает в это определение) запросов попадут в explain таблицы.

Огромное спасибо.
С установкой софта трудно. Нет возможности ждать пока разрешат. Так что придётся обходиться утилитами командной строки и DВArtisan.
Код: plaintext
call set_routine_opts('EXPLAIN ALL');
обязательно попробую.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / от новичка на DB2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]