Если вы используете DB2 для Linux, UNIX и Windows, существуют сложные средства трассировки, называемые мониторами событий , которые встроены в базу данных для сбора подробной информации о рабочей нагрузке SQL, отправляемой вашим приложением. Если SQLAlchemy неэффективно обращается к DB2, вы увидите другую серию событий, захваченных монитором событий оператора. Другая возможность состоит в том, что обе версии программы используют данные DB2 примерно одинаково, но SQLAlchemy тратит больше времени «вне DB2», выделяя внутренние объекты для хранения результатов. Я использую мониторы событий операторов, которые пишут в таблицы, чтобы я мог искать все виды проблем и шаблонов, поэтому я включил ссылку на утилиту DB2, которая значительно упрощает определение монитора событий и таблиц, которые будут содержать его выходные данные. После этого вам просто нужно будет
SET EVENT MONITOR YourMonitorName STATE 1
, чтобы запустить его, и
SET EVENT MONITOR YourMonitorName STATE 0
чтобы выключить его. Отключение этой части очень важно, поскольку каждый оператор SQL, выполняемый при включенном мониторе, генерирует от 3 до 5 строк данных в таблице монитора событий.