I've some application, making database demands. I suppose it does not really matter, what type of the database I'm using, but let us say it is a simple SQLite-driven database.

Now, this application runs like a service and does some quantity of demands each minute (the dpi might really be huge).

I am prepared to benchmark the queries to retrieve their number, maximal / minimal / average running time for many period and If only to create my very own tool with this (clearly, you will find some, however i need my very own for many appropriate reasons :).

So - would you advice a strategy with this task?


I suppose you will find several possible cases:

1) I have the application source code. Here, clearly, I wish to have kind of mix-application integration, most likely using pipes. Would you advice something about how exactly do this and (if there's one) every other possible solution?

2) I do not have sources. So, is even easy to carry out some neat injection from the application to benchmark another one? I really hope there's a means, maybe hacky, whatever.

Thanks.

See C++ Code Profiler for a variety of profilers.

Or C++ Logging and performance tuning library for moving your personal simple version

I suppose it does not really matter, what type of the database I'm using, but let us say it is a simple SQLite-driven database.

It is extremely important what type of database you utilize, since the database-manager may have integrated monitoring.

I possibly could speak no more than IBM DB/2, however i beliefe that IBM DB/2 isn't the only dbm with integrated monitoring tools.

Here for instance an short overview what you might monitor in IBM DB/2:

  • claims (all performed claims, execution count, prepare-time, cpu-time, count of reads/creates: tablerows, bufferpool, logical, physical)
  • tables (count of reads / creates)
  • bufferpools (logical and physical reads/creates for data and index, read/write occasions)
  • active connections (running claims, count of reads/creates, occasions)
  • locks (all locks and kind)
  • and much more

Monitor-data might be utilized via SQL or API from own software, like for instance DB2 Monitor does.