void *sqlite3_trace(sqlite3*, void(*xTrace)(void*,const char*), void*); void *sqlite3_profile(sqlite3*, void(*xProfile)(void*,const char*,sqlite3_uint64), void*);
These routines are deprecated. Use the sqlite3_trace_v2() interface instead of the routines described here.
These routines register callback functions that can be used for tracing and profiling the execution of SQL statements.
R-27599-07502:[The callback function registered by sqlite3_trace() is invoked at various times when an SQL statement is being run by sqlite3_step(). ] R-64629-41035:[The sqlite3_trace() callback is invoked with a UTF-8 rendering of the SQL statement text as the statement first begins executing. ] R-25587-45258:[Additional sqlite3_trace() callbacks might occur as each triggered subprogram is entered. The callbacks for triggers contain a UTF-8 SQL comment that identifies the trigger. ]
The SQLITE_TRACE_SIZE_LIMIT compile-time option can be used to limit the length of bound parameter expansion in the output of sqlite3_trace().
R-03236-28327:[The callback function registered by sqlite3_profile() is invoked as each SQL statement finishes. ] R-22309-26004:[The profile callback contains the original statement text and an estimate of wall-clock time of how long that statement took to run. ] R-43060-16536:[The profile callback time is in units of nanoseconds, however the current implementation is only capable of millisecond resolution so the six least significant digits in the time are meaningless. ] Future versions of SQLite might provide greater resolution on the profiler callback. Invoking either sqlite3_trace() or sqlite3_trace_v2() will cancel the profile callback.