---
name: "dbiprof"
section: "1p"
platform: "linux"
package: "perl-dbi"
version: "1.656-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/dbiprof"
---

# dbiprof(1p)

command-line client for DBI::ProfileData

## NAME

dbiprof - command-line client for DBI::ProfileData

## SYNOPSIS

See a report of the ten queries with the longest total runtime in the profile dump file *prof1.out*:

```
 dbiprof prof1.out
```

See the top 10 most frequently run queries in the profile file *dbi.prof* (the default):

```
  dbiprof --sort count
```

See the same report with 15 entries:

```
  dbiprof --sort count --number 15
```

## DESCRIPTION

This tool is a command-line client for the DBI::ProfileData.  It allows you to analyze the profile data file produced by DBI::ProfileDumper and produce various useful reports.

## OPTIONS

This program accepts the following options:

- \--number N

  Produce this many items in the report.  Defaults to 10.  If set to "all" then all results are shown.

- \--sort field

  Sort results by the given field. Sorting by multiple fields isn't currently supported (patches welcome).  The available sort fields are:

  - total

    Sorts by total time run time across all runs.  This is the default sort.

  - 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.  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.

  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.

- \--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 AND LICENSE

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.
