アプリケーションは魔法のようにクエリを生成しないので、これを引き起こしているアプリケーションのどこかに間違いがある可能性が高いと思います。これを追跡するために使用できるいくつかの提案があります。 MySQLを使用しているので、PHPを使用していると思いますので、例として使用します。
次のように、アプリケーションのすべてのクエリの前にコメントを追加してみてください。
$sqlSelect = "/* file.php, class::method() */";
$sqlSelect .= "SELECT * FROM foo ";
$sqlSelect .= "WHERE criteria";
コメントはクエリログに表示されます。ある種のデータベースAPIラッパーを使用している場合は、次のメッセージを自動的に追加できる可能性があります。
function query($sql)
{
$backtrace = debug_backtrace();
// The function that executed the query
$prev = $backtrace[1];
$newSql = sprintf("/* %s */ ", $prev["function"]);
$newSql .= $sql;
mysql_query($newSql) or handle_error();
}
ラッパーを使用せず、クエリを直接実行する場合は、runkit拡張機能と関数 runkit_function_rename mysql_query(または使用しているもの)の名前を変更し、クエリをインターセプトします。