IBSurgeon Free Tools

IBSurgeon Free Tools is a set of 3 tools for Firebird and InterBase administrators and developers, designed to facilitate several typical tasks:

  1. measure response time of specific SQL query to find time when query runs slower than usual (“Response Checker”),
  2. view how much data, indices, blobs, etc, are stored in your Firebird or InterBase database (“DBInfo”)
  3. investigate Firebird log for errors and warnings, (“Log Viewer”).

These tools are simple to use, below you can find their short overview and frequently asked questions.

IBSurgeon Response Checker

1. Why do you need Response Checker?

If you are trying to improve Firebird database performance, the first thing you need to define is criteria of performance optimization. And, Firebird database performance has such criteria:

  • Average response time
  • Maximum response time

Response time should be measured with your real-world application and with your production database (or in test environment which simulates production close enough).

There is no reason to measure average response time out of the scope of your real application, until you want some abstract «optimization» - or you are using test environment which is proven to be very close or even identical to your production database.

Response time is what your end users will refer as «slow», «very slow» or «good enough» (end users never say that your software is «fast»).

How to measure the average and maximum response times in real-world production environments running Firebird? For the basic response time measurement you can use IBSurgeon Response Checker.

Response Checker allows you to specify an SQL query (some kind of heavy query), run it with the specific period and measure its response time. As a result, you’ll be able to recognize time periods when database works slow.

For professional Firebird or InterBase database optimization service please look here.

2. How to setup Response Checker to measure response time?

Run Response Checker from Start menu “IBSurgeon\FreeTools\IBSurgeon Response Checker”, and insert text of your test SQL query into the appropriate field (see below).

Please note: this SQL must be SELECT query!

Try to put there some “heavy” query, which is used in real application and make sense for end users.

Figure 1. Prepare Response Checker to run

Then, specify the interval for query execution – by default it runs each 10 seconds, and number of stored measurement points. Default values (10 second and 17280 points) are set to store 48 hours.

Also, we recommend to enable checkmark “Disconnect after each check”, to make each query in the separate connect – it will better simulate real-life behavior of your end users.

After that you can click “Start Check” and select database to run your query:

Figure 2. Select database to run SQL query

As a result, you’ll have graph with measurement points (see figure 3):

Figure 3. IBSurgeon Response Checker results

At this graph you will be able to see periods when database works slower, and you can get advanced statistics with IBSurgeon optimization tools (IBAnalyst, IBTM or FBScanner) to determine the reason of the slowness.

Please note that Response Checker does not store gathered results, and once you will click “Stop check” and “Start check” again, existing statistics will disappear and new session will start.