Могу ли я просмотреть все операторы SQL, отправленные через соединение ODBC?

Я работаю со сторонним приложением, которое использует ODBC для подключения и изменения базы данных. Во время определенных режимов отказа конечные результаты не такие, как я ожидаю. Чтобы лучше понять это, я хотел бы каким-то образом проверить все операторы, отправленные в базу данных. Есть ли способ сделать это с помощью ODBC?

Я знаю, что с JDBC я мог бы использовать http://www.p6spy.com/, чтобы просмотреть все отправленные заявления, например при отладке спящего режима. p6spy — это «прокси-драйвер», который записывает отправленные команды и перенаправляет их реальному драйверу JDBC.

Другой возможностью может быть сниффер протокола, который будет перехватывать операторы по сети. Хотя я не уверен, включает ли ODBC стандартный проводной протокол или указывает только API.

Кто-нибудь знает о существующих инструментах, которые позволили бы мне сделать любую из этих вещей? В качестве альтернативы, есть ли другой подход, который я мог бы использовать?


person Dave Cameron    schedule 20.04.2010    source источник


Ответы (3)


ODBC указывает, как ваша программа взаимодействует с локальным драйвером, а не как локальный драйвер взаимодействует с удаленной базой данных. Ваша идея прокси-драйвера верна, вам просто нужно найти его.

person Matthew Flaschen    schedule 20.04.2010

Вы пробовали трассировку, встроенную в ODBC? В администраторе источников данных ODBC есть вкладка трассировки. Насколько я помню, полученная информация довольно подробна.

person Shannon Severance    schedule 20.04.2010

Я думаю, что легче читать журналы на стороне SQL, какой бы ни была база данных. Например, включение монитора на SQL Server или просмотр логов в MySQL. Кажется, что использование сниффера принесет больше проблем, чем пользы, но я думаю, это зависит от доступных инструментов. Какую СУБД вы используете?

person MJB    schedule 20.04.2010
comment
Мы используем DB2. Меня интересует только трафик, исходящий от одной машины за раз. Они также обычно разделяются по схеме, которую редактируют, поэтому можно использовать журналы из одной схемы. - person Dave Cameron; 20.04.2010
comment
Ну, я использовал DB2 в качестве программиста, но никогда не был администратором баз данных, поэтому ничего конкретного о логах сказать не могу. Но это звучит как достойное место для поиска. - person MJB; 20.04.2010