Introduction
With the monitor feature, you can track changes in data
over time, viewing the results of one or many SQL statements either as
grids or graphs. Typically, you configure the monitor to run the
statements automatically at certain intervals.
The monitoring feature combined with the charting capability in
DbVisualizer Personal is really powerful, delivering real time
charts of many result sets simultaneously. For example, you can
use monitoring to spot trends in a
production
database, surveillance, statistics, database metrics, and so on. At
DbVis Software, we have a dedicated workstation that
uses the monitoring feature to automatically present live chart
information from our Internet
servers and customer database.
Any SQL
statement that produces a result
set can be monitored, and when you monitor multiple
statements, different statements may use different database connections
concurrently.
Figure: Monitor window showing result as
charts
The chart customization covered
in this document is also applicable to the charts for result sets in
the SQL Commander (DbVisualizer
Personal).
Monitored SQL
Statements
Monitored SQL statements are managed under the
Monitors node in the
Scripts tab in the tree area to the
left in the main DbVisualizer window. A monitored SQL statement is
associated
with information about the target database connection and (optionally)
the
catalog
(the JDBC term which translates to a
database
for some
databases, like Sybase,
MySQL, SQL Server, etc) and schema. It also has a title, a maximum row
count (how many results to keep track of) and a visibility status
(whether the monitored statement result should be included in the
Monitors windows, discussed below). This information is displayed, and
can be
edited, in the lower part of the Scripts tab, along with information
about the file that holds the monitored statement. If you don't want to
see these
details, you can disable it with the
Show
Details toggle control in the right-click menu for a node.
Figure: The Scripts tab with Monitors
The figure above shows the
Incidents/Day
monitored statement
and
the SQL that is associated with it.
The following is an example of the result set produces by the statement:
Figure: Monitor window showing the
result in Grid format
The interesting columns in the result are the
Month and
Count. The
Year and
MonthNum are there
just to get
the correct ascending order of the result.
Creating, Editing and
Organizing Monitored Statements
You can create and work with monitored statements in the same way as
with a Bookmark. The main difference is how they are used and a couple
of additional ways monitored statements can be created. For information
about how to manually create, manage and share monitored statements,
please see the
Bookmarks and
History. The following sections describe how you can get help
creating the bookmarks for a couple of cases that are commonly used for
monitoring.
Monitor
table row
count
It is very common to want to keep track of how the number of rows in a
table varies over time. The right-click menu in the Data tab grid
for a table therefore has a
Create
Row Count Monitor operation that creates a monitored statement
for you automatically.
It creates a monitor with SQL for returning a single row with the
timestamp for when the monitor was executed and the total
number
of rows in the table at that time. Every time the monitor is executed,
a new row is added to the grid, up to a specified maximum number of
rows. When the maximum row limit is reached, the oldest row is
removed when a new row is added. Example:
| PollTime |
RowCount |
| 2003-01-23 12:19:10 |
43123 |
| 2003-01-23 12:11:40 |
43139 |
| 2003-01-23 12:21:10 |
43143 |
| 2003-01-23 12:22:40 |
43184 |
| ... |
... |
Figure: Example
of the result from a Table Row Count monitor
The SQL for this monitor uses two
variables,
DbVis-Date
and
DbVis-Time.
These variables are
substituted with the current date and time, formatted according to the
corresponding Tool Properties settings. The reason for using these
variables instead
of using SQL functions to retrieve the values is simply that
it
is almost impossible to get the values in a database-independent way.
Another reason is that we want to see the client
machine time rather than the database server time. You can, of course,
modify the SQL any way you see fit, as long as the
PollTime and
RowCount labels are
not changed.
select '${DbVis-Date}$ ${DbVis-Time}$' as PollTime,
count(*) as RowCount
from Computers
Figure: Sample of
the SQL for the Table Row Count monitor
DbVisualizer keeps the result for previous executions, up to the
specified maximum number of rows, so that you
can see how the result changes over time. You define the maximum number
of rows in the
Max
Row Count field in the
details area at the bottom of the Scripts tab. This property is
initially
set to 100 when you use Create Row Count Monitor to create the monitor.
Figure: Details area with the Max
Row Count field for a monitored statement
You can change the value to limit or extend the
number of rows
that DbVisualizer should keep. Setting it to 0 or a negative number
tells DbVisualizer to always clear the grid between executions of
monitors.
Monitor
table row
count difference
In addition to tracking the number of rows in a table over
time, you may want to see by how many rows the value changes. You can
create a monitor for this purpose with the
Create Row Count Diff Monitor
operation, available in the right-click menu for the grid in the
Data tab.
In addition to the Row Count Monitor, the Row Count Diff Monitor
reports the difference between the number of rows in the last two
executions:
| PollTime |
RowCount |
RowCountChange |
| 2003-01-23 12:19:10 |
43123 |
0 |
| 2003-01-23 12:11:40 |
43139 |
16 |
| 2003-01-23 12:21:10 |
43143 |
4 |
| 2003-01-23 12:22:40 |
43184 |
41 |
| ... |
... |
... |
Figure: Example
of the result from a Table Row Count Difference monitor
The SQL for this monitor adds a third column, named
RowCountChange. It
utilizes the fact that DbVisualizer automatically creates variables for
the columns in a monitor result set, holding the values from the
previous
execution. The RowCountChange column is set to the
value returned by the count(*) aggregate function for the
current execution minus the value from the previous execution, held by
the RowCount variable. All columns in a monitor result set can be used
like this to reference values from the previous execution of the
monitor.
select '${DbVis-Date}$ ${DbVis-Time}$' as PollTime,
count(*) as RowCount,
count(*) - ${RowCount||count(*)}$ as RowCountChange
from Computers
Figure: Sample of
the SQL for the Table Row Count Difference monitor
Monitor Window
The Monitor window, launched via the
Tools->Monitor
menu option, is where you active monitors and look at the results. The
monitors can be organized either as tabs or internal windows. The
monitor results can be viewed only as grids in
DbVisualizer Free, while
DbVisualizer Personal adds the capability to view them as charts or
text.
Figure: The
Monitor window with all monitors organized as tabs
The Monitor window has toolbar at the top with an
Auto Reload Interval
field. The rest of the window holds result areas for each monitored
statement with the
Visible
attribute enabled. Each individual monitor result tab or window also
has a toolbar with controls that apply just to that result. The
screenshot is from DbVisualizer
Personal, with
View
buttons in the
toolbar for the selected monitor; these buttons are
not included in DbVisualizer Free.
The main toolbar buttons have the following functions:
| Toolbar Button |
Description |
Close
|
Closes the Monitor window
|
| Reload |
Reloads all results (i.e., executes all monitors and
updates the result sets) |
Locate
Current
|
Locates and select the monitor
node in the Scripts tab corresponding to the currently selected result
|
| Clear Current |
Clears the currently selected result |
Clear
All
|
Clears all results
|
| Show as Tabs |
Shows the results as tabs |
| Show as
Windows |
Shows the results as internal
windows |
Show
Grids
|
Shows all results as grids
|
Show
Graphs
|
Shows all results as graphs
|
Show
Text
|
Shows all results as text
|
Cascade Windows
|
Arrange the result windows so
the overlap each other
|
Tile
Vertically
|
Arrange the result windows
side-by-side vertically
|
Tile
Horizontally
|
Arrange the result windows
side-by-side horizontally
|
| Start Monitors |
Starts auto-update of all monitors, repeatedly
executing all statements at the intervals specified by the Auto Reload
Interval field |
| Stop Monitors |
Stops the auto-update |
The
Auto
Reload Interval field is
used to
control how often to execute the monitors when auto update is running.
Use the field to specify how many
seconds to wait between auto-reloads. The specified number of
seconds may be increased automatically by DbVisualizer if the total
execution time for all monitors is longer than the specified value.
Charts
This section is only
applicable to
DbVisualizer Personal.
Charts in conjunction with the Monitor feature is really powerful,
since
monitored data is very often a good candidate to be charted. The
charting capability in DbVisualizer Personal is also available in the
SQL Commander; everything described here also applies to the grids for
the result sets in the SQL Commander.
The basic setup of a chart is really easy. It is just a matter of
selecting one or more columns that should appear as series in the
chart. The basic requirement is that the monitor has been executed, so
that there are columns to choose the series from. The appearance of the
charts can be thoroughly customized using the advanced customization
editor.
The chart view is controlled by the buttons in toolbar shown in
the monitor result area when the graph mode is selected:
Figure: Chart
control buttons
The following sections explain the features and how to setup the chart.
Chart
Controls
The chart controls are used to customize the
Data that shall be
displayed in the
chart, optional axis labels, titles, etc. It is also used to control
the
Layout
of the chart in
terms of chart
type, legend type, etc.
Data
Use the controls in the Data tab to customize which data shall appear
in the
chart.
Figure: Data
customizer
Select at least one
Series
from
the list of columns. As soon as you select a series, it is
immediately added to the graph. The
Label
field can be used to specify an optional label for the series as it
should
appear in a legend. The column name is used if no label is
specified.
The
X-Axis Label
box is used
to
specify the column in the result that should be used to render the
labels
of the X-axis.
X-Axis
Title and
Y-Axis
Title
specifies the titles for the X and Y axis. You can use the
Rotation settings if
you want the X and Y axis text rotated.
The
title for the monitored
statement, as defined in the details area in the Scripts tab, is used
as the title for the chart. The script file name is used if no title
has been specified.
Layout
The layout tab is used to configure the appearance of the chart,
primarily the type of chart want to use. Note that all
settings are per monitor. The following screen shots show some of the
most commonly used chart types.
Figure: Chart
type examples
The advanced layout editor can be used to customize every aspect of the
layout. The basic layout settings, however, are the following:
Figure: Layout
customizer
Show symbols
specifies whether each
value in a line chart should be represented by a symbol.
Show Inverted
defines whether the X
and Y axis will be switched.
3D
specifies if a bar chart will be displayed in 3D. The
Chart Type lists all
the available
chart types. Fill Pattern defines how a bar, area and pie chart shall
be
filled.
Legend Type
specifies
whether a legend will be displayed or not.
You can use the
Advanced
Settings
editor
to customize all the bits and pieces of the chart. This document
does
not
explain all the configurations that can be done using this editor since
that
would result in a 100 page book. Play around with the different
settings and see how the graph changes.
Settings that are made in the Advanced Editor are not
saved between invocations of
DbVisualizer.
Chart
View
Zooming
Charts support zooming by selecting a rectangle in the chart area.
Selecting another rectangle in that zoomed area will zoom the chart
even
further, and so on. To reset the zoom, click the
Reset Zoom
button or press the "
r"
keyboard
button while the mouse pointer is in the chart area.
Rotating
All 3D chart types support rotating and changing the depth of the
chart. Use the following to change the appearance:
- Shift+Left
Mouse button
Changes the depth of the chart
- Ctrl+Left
Mouse button
Changes the rotation of the chart
Examples:
Figure: Example
of 3D charts
The above screen shots are just a few examples of the 3D chart types
and how depth and rotation settings are used to change the appearance.
Export
The export operation is context sensitive and works on the currently
selected chart, graph or grid. The controls in the export dialog also
adapt to the currently selected object. If a chart is the current
object
the following export dialog will appear:
Figure: Export
dialog for charts
The default size of the exported image is the same
as it appears on the screen. To change the size, either select a
pre-defined paper size in the Size
list or enter a size in pixels.
Copyright © 2010 DbVis Software AB. All rights reserved.