DBIPROF(1)

✨ DBIPROF ✨

okay bestie, so this is dbiprof β€” the command-line client for DBI::ProfileData πŸ’… (from the User Contributed Perl Documentation, if you were wondering)


🌸 NAME 🌸

dbiprof β€” command-line client for DBI::ProfileData


πŸŽ€ SYNOPSIS πŸŽ€

Wanna see a report of the ten queries with the longest total runtime in the profile dump file prof1.out? Say less:

dbiprof prof1.out

Wanna see the top 10 most frequently run queries in the profile file dbi.prof (which is the default, iykyk):

dbiprof --sort count

And the same report but with 15 entries? Obsessed:

dbiprof --sort count --number 15

πŸ’– DESCRIPTION πŸ’–

So this tool is a command-line client for the DBI::ProfileData. It lets you analyze the profile data file produced by DBI::ProfileDumper and produce various useful reports. Basically it's giving data girlie πŸ’… and honestly? She ate.


✨ OPTIONS ✨

This program accepts the following options, no cap:

  • --number N β€” produce this many items in the report. Defaults to 10. But if you set it to "all" then literally every result is shown. all of them. periodt.
  • --sort field β€” sort results by the given field. Sorting by multiple fields isn't currently supported (patches welcome, bestie, the devs literally said so 🫢). The available sort fields are:
    • total β€” sorts by total time run time across all runs. This is the default sort. main character energy fr.
    • longest β€” sorts by the longest single run.
    • count β€” sorts by total number of runs.
    • first β€” sorts by the time taken in the first run.
    • shortest β€” sorts by the shortest single run.
    • key1 β€” sorts by the value of the first element in the Path, which should be numeric. You can also sort by "key2" and "key3" πŸ‘‘
  • --reverse β€” reverses the selected sort. So for example, to see a report of the shortest overall time:
dbiprof --sort total --reverse
  • --match keyN=value β€” consider only items where the specified key matches the given value. Keys are numbered from 1. For example, let's say you used a DBI::Profile Path of:
[ DBIprofile_Statement, DBIprofile_Methodname ]

And called dbiprof as in:

dbiprof --match key2=execute

Your report would only show execute queries, leaving out prepares, fetches, etc. filtering queen 🌈

If the value given starts and ends with slashes ("/") then it will be treated as a regular expression. For example, to only include SELECT queries where key1 is the statement:

dbiprof --match key1=/^SELECT/

By default the match expression is matched case-insensitively, but this can be changed with the --case-sensitive option.

  • --exclude keyN=value β€” remove items for where the specified key matches the given value. For example, to exclude all prepare entries where key2 is the method name:
dbiprof --exclude key2=prepare

Like "--match", if the value given starts and ends with slashes ("/") then it will be treated as a regular expression. For example, to exclude UPDATE queries where key1 is the statement:

dbiprof --match key1=/^UPDATE/

By default the exclude expression is matched case-insensitively, but this can be changed with the --case-sensitive option.

  • --case-sensitive β€” using this option causes --match and --exclude to work case-sensitively. Defaults to off.
  • --delete β€” sets the "DeleteFiles" option to DBI::ProfileData which causes the files to be deleted after reading. See DBI::ProfileData for more details. (yes it really deletes them, be normal about it πŸ™ˆ)
  • --dumpnodes β€” print the list of nodes in the form of a perl data structure. Use the "-sort" option if you want the list sorted.
  • --version β€” print the dbiprof version number and exit.

πŸ’œ AUTHOR πŸ’œ

Sam Tregar <sam@tregar.com>


Copyright (C) 2002 Sam Tregar

This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself.


πŸ¦‹ SEE ALSO πŸ¦‹

DBI::ProfileDumper, DBI::Profile, DBI.


so yeah, that's the whole thing, bestie 🫢 this was perl v5.42.3, dated 2026-10-19 β€” that's the DBIPROF(1) energy, slay, go profile something βœ¨πŸ’–

πŸ“¦ where this page comes from