Enabling logging only provides the barest of output, namely connections made and closed, and when sql commands are run, but nothing that is very informative. Is there a way, from the command line, to increase the logging level?
|
There's no more logging.You can try:
EXPLAIN [SQL] anySQL
EXPLAIN SQL anySQL provides SQL syntax analysis feature like INFORMATION_PARSER.sql table
For instance:
explain sql select RECNO(),vrrdnr,Vrrdvnr,STR(vrrdnr),STR(Vrrdvnr,2),STR(vrrdnr)+STR(Vrrdvnr,2),* from Voorraad where STR(vrrdnr)+STR(Vrrdvnr,2)='4567812';
EXPLAIN anySQL shows how the tables involved in the statement will be scanned by index scanned or sequential scan.
For instance:
explain select RECNO(),vrrdnr,Vrrdvnr,STR(vrrdnr),STR(Vrrdvnr,2),STR(vrrdnr)+STR(Vrrdvnr,2),* from Voorraad where STR(vrrdnr)+STR(Vrrdvnr,2)=' 4567812';
The INFORMATION_PARSER.sql provides SQL syntax analysis feature. For instance,
Note: Use "EXPLAIN SQL aSqlStatement" can get the same result.
sql = "SELECT * FROM INFORMATION_PARSER.sql WHERE SQL_COMMAND = ? and OBJECT_TYPE='TABLE'";
sql = "SELECT SQL_TYPE,OBJECT_TYPE,OBJECT_NAME FROM INFORMATION_PARSER.SQL WHERE SQL_COMMAND= ?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, "select * from a.test out; SELECT efg,3+2 as dd FROM ABC;update a set a=3;");
// pstmt.setString(1, "select EFG from a.test, test2 where test.b=test2.c");
// pstmt.setString(1, "select EFG from (select * from abc);select EFG from (select * from abc) as o;");
// pstmt.setString(1, "select EFG from a.test left join test2 where test.b=test2.c; SELECT A FROM B UNION SELECT C FROM D;");
ResultSet rs = pstmt.executeQuery();
|