Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
от новичка на DB2
|
|||
|---|---|---|---|
|
#18+
Всем доброе время суток. Я разработчик на 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 процедуры, какие бы вы посоветовали неграфические утилиты? Пожалуйста поделитесь боевым опытом. Заранее огромное спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 22:24 |
|
||
|
от новичка на DB2
|
|||
|---|---|---|---|
|
#18+
Смотри схему SYSCAT, там все понятно. Оптимизировать надо запросы а не процедуры можешь посмотеть на SQL PL Profiler что-бы понять что у тебя самое тормозаное в процедуре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 10:28 |
|
||
|
от новичка на DB2
|
|||
|---|---|---|---|
|
#18+
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 . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 12:32 |
|
||
|
от новичка на DB2
|
|||
|---|---|---|---|
|
#18+
Огромное спасибо! Мне удалось запустить db2xpln как для запросов так и для анализа процедур (через пакаджи) и вывести планы в текстовые файлы. В приложении с которым я работаю часть практикуется передача выборки данных из процедуры в процедуру через временные таблицы; например процедура 1 создаёт временную таблицу и вызывает процедуру 2 которая эту таблицу заполняет. Далее вызывается процедура 3 которая выполняет запрос с участием этой временной таблицы. В связи с этим вознили вопросы: 1. Считается ли подобная практика нормальной. Встречалась ли она кому-нибудь из вас? 2. Как проанализировать процедуру 3? db2expln -package Pxxxx вместо плана будет содержать ошибку SQLSTATE 42704, что совершенно логично т.к. временная таблица создаётся в начале цепочки вызовов процедур. Создание пустой таблицы в процедуре 3 наверное большого смысла иметь не будет, т.к. план должен зависеть от количества записей в ней. Заранее очень благодарен за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 21:52 |
|
||
|
от новичка на DB2
|
|||
|---|---|---|---|
|
#18+
Как уже писал Вам nkulikov, для анализа узких мест ваших процедур вы можете воспользоваться SQL PL Profiler-ом... Вот ссылка . Данная программка позволит время выполнения отдельных мест ваших процедур и сделать определенные выводы. Вот ещё интересная ссылочка . С неё можно попасть сюда ... И вообще - прогуляйтесь по DeveloperWorks... Интересные вещи пишут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2007, 23:21 |
|
||
|
от новичка на DB2
|
|||
|---|---|---|---|
|
#18+
HunterikКак уже писал Вам nkulikov, для анализа узких мест ваших процедур вы можете воспользоваться SQL PL Profiler-ом... Вот ссылка . Данная программка позволит время выполнения отдельных мест ваших процедур и сделать определенные выводы. Вот ещё интересная ссылочка . С неё можно попасть сюда ... И вообще - прогуляйтесь по DeveloperWorks... Интересные вещи пишут. У нас очень строго с установкой софта. Про SQL PL Profiler ещё утром прочитал и озадачился пробиванием разрешения на то чтобы его поставить. За ссылки большое спасибо. Обязательно посмотрю. Кто-нибудь может сказать является практика обмена временными таблицами между процедурами нормальной? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2007, 01:08 |
|
||
|
от новичка на DB2
|
|||
|---|---|---|---|
|
#18+
KruУ нас очень строго с установкой софта. Про SQL PL Profiler ещё утром прочитал и озадачился пробиванием разрешения на то чтобы его поставить. За ссылки большое спасибо. Обязательно посмотрю. Кто-нибудь может сказать является практика обмена временными таблицами между процедурами нормальной?Для разработки и отладки процедур есть Developer Workbench . Поставьте лучше его и фикс к нему. Также есть IBM Data Studio . Такая практика обмена временными таблицами является вполне нормальной. В данный момент получить план статического запроса с участием временной таблицы в процедуре возможно только, если пересоздать процедуру. При этом перед командой создания надо выполнить Код: plaintext При каждом выполнении процедуры, собранной в таком режиме, планы всех динамических и статических с инкрементальным связыванием (статический запрос, использующий временную таблицу, попадает в это определение) запросов попадут в explain таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2007, 11:13 |
|
||
|
от новичка на DB2
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein KruУ нас очень строго с установкой софта. Про SQL PL Profiler ещё утром прочитал и озадачился пробиванием разрешения на то чтобы его поставить. За ссылки большое спасибо. Обязательно посмотрю. Кто-нибудь может сказать является практика обмена временными таблицами между процедурами нормальной?Для разработки и отладки процедур есть Developer Workbench . Поставьте лучше его и фикс к нему. Также есть IBM Data Studio . Такая практика обмена временными таблицами является вполне нормальной. В данный момент получить план статического запроса с участием временной таблицы в процедуре возможно только, если пересоздать процедуру. При этом перед командой создания надо выполнить Код: plaintext При каждом выполнении процедуры, собранной в таком режиме, планы всех динамических и статических с инкрементальным связыванием (статический запрос, использующий временную таблицу, попадает в это определение) запросов попадут в explain таблицы. Огромное спасибо. С установкой софта трудно. Нет возможности ждать пока разрешат. Так что придётся обходиться утилитами командной строки и DВArtisan. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 16:39 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=34962606&tid=1604185]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 299ms |

| 0 / 0 |
