# How fast was what?

- ## Breakdown by statement and method:

  $ DBI_PROFILE=6 test.pl (only part of output is shown here)
  'UPDATE prices SET price=? WHERE prod_id=?' =>
  'execute' =>
  0.000951s
  'prepare' =>
  0.000404s

- ## Some key points

  - Only profiles ‘top level’ calls from application, not ‘recursive’ calls from within DBI/DBD.
  - Timing data is collected and merged into a $h->{Profile}{…}{…} data tree
  - All handles share the same data tree by default - giving one overall set of results
  - The ‘path’ through the tree to where the data is merged-in can be dynamically controlled
  - By default $dbh method calls are usually associated with the $dbh->{Statement} string
  - DBI::Profile can be subclassed (e.g., DBI::ProfileDumper for mod_perl)
  - Applications can add their own timing data
  - More features than I can fit on the slide...

Previous slide | Next slide | Back to first slide | View graphic version