Как найти все объекты, которые запрашивают таблицу в DB2 - PullRequest
0 голосов
/ 01 января 2019

Я хочу найти все объекты (хранимые процедуры, представления и т. Д.), Которые делают запросы к каждой таблице в DB2, размещенной в IBM iSeries.Есть ли способ отследить это за период времени, скажем, 1 месяц.

1 Ответ

0 голосов
/ 02 января 2019

Вы можете просмотреть план кеша.Это не совсем то, о чем вы просите, но я считаю, что оно должно дать вам необходимую информацию.Кэш плана - это кэш всех операторов SQL, которые были выполнены, вместе с информацией о производительности.Вы можете отфильтровать кэш плана по нескольким параметрам, включая дату выполнения и ссылки на объекты.

Это интерактивный инструмент, доступный в System i Navigator или более недавно в iACS.В iACS вы можете осуществлять поиск в кэше планов следующим образом:

  1. Перейдите в базу данных -> Центр производительности SQL.
  2. На вкладке Plan Cache нажмите кнопку Show Statements.

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

Если вы ищетеПрограмма, которая ссылается на данную таблицу, может использоваться командой DSPPGMREF.Эта команда позволяет вам захватывать (в файле в вашем случае) все объекты, на которые ссылается данная программа.Пока вы запускаете команду над всеми библиотеками, которые содержат программы, которые вас интересуют, вы можете запросить выходную таблицу, чтобы найти каждую программу, которая ссылается на данную таблицу (кроме динамических запросов).

...