Использование флага debug вашей библиотеки часто является самым простым решением. Но вы зависите от библиотеки, которая может лгать вам или, по крайней мере, скрывать некоторые вещи, которые она будет делать (например, psycopg молча меняет уровень изоляции по умолчанию).
На стороне СУБД вы всегда можете активировать ведение журнала. Хорошо, что вы получите точный запрос SQL независимо от того, что делает ваша клиентская библиотека. В этом отношении он лучше, чем флаг «отладки» библиотеки. Но в некоторых СУБД операторы журналирования могут быть очень медленными (это имеет место в PostgreSQL).
Другое решение - использовать перехватчик в сети, если у вас достаточно прав. Wireshark может декодировать протоколы многих СУБД и представлять фактический запрос SQL.
Вкл. PostgreSQL , активация ведения журнала выполняется в postgresql.conf
с помощью:
log_statement = 'all' # none, ddl, mod, all
Я обычно использую также:
log_connections = on
log_disconnections = on
log_duration = on
log_hostname = on