Analyzing Performance
Pervasive PSQL Server v11 SP1 provides performance counters for use with the Windows Performance Monitor. These counters are supported only on Windows Vista or later Windows operating systems. The performance counters measure state or activity of the database engine, which allows you to analyze the performance of your application.
The counter values reflect all calls into the database engine regardless of their source. That is, the transactional interface, relational interface, native Btrieve applications, utilities etc. all contribute to counter values. The counters are organized into data collector sets: MicroKernel Btrieve Operations, MicroKernel Cache, MicroKernel I/O, MicroKernel Locks and Waits and MicroKernel Transactions.
What follows is a brief description of each of the counters. For more detail on analyzing performance and to get started using the Windows Performance Monitor, please read the Advanced Operations Guide, Chapter 5 Performance.
MicroKernel Btrieve Operations
These counters are useful for characterizing the behavior of client applications in terms of the Btrieve interface. The counters report the types of operations being processed by the database engine at a given point in time.
| Counter/Description |
Typical Use |
| Close Operations Per Second |
General application behavior |
| Get/Step Operations Per Second |
| Open Operations Per Second |
| Records Deleted Per Second |
| Change Operations Per Second |
MicroKernel Cache
L1 and L2 Cache performance counters can be used to view how successfully the database engine avoids disk reads and to determine if any changes need to be made to the cache size settings.
| Counter/Description |
Typical Use |
| L1 Cache Dirty % (percentage of L1 Cached in use that contains dirty pages) |
To help determine if heavily accessed pages are being forced out of the cache, which may hurt performance. |
| L1 Cache Hits Per Second |
Higher ratio of hits to misses indicates that the engine is finding pages in L1 without needing to access L2 or disk. |
| L1 Cache Hits Ratio |
| L1 Cache Misses Per Second |
| L1 Cache Usage |
Aid in adjusting size of L1 cache to fit application(s). |
| L2 Cache Hits Per Second |
Indicates that the engine is finding pages in L2 without needing to access disk. |
| L2 Cache Hits Ratio |
| L2 Cache Misses Per Second |
| L2 Cache Row Size |
Help determine the optimal L2 Cache size. |
| L2 Cache Row Usage |
| L2 Cache Row Size as % of Memory |
Shows what percentage of the total system memory the L2 Cache is using |
MicroKernel I/O
The counters in this set are useful for understanding the interactions of the database engine and data read and written to disk.
| Counter/Description |
Typical Use |
| Pages Read Per Second |
General application and system I/O performance |
| Pages Written Per Second |
MicroKernel Locks and Waits
These counters give insight into the types of database resources on which a client request may have to wait and provide clues about database engine performance during multi-client access. A value close to or equal to the number of clients may indicate collisions for the same resources..
| Counter/Description |
Typical Use |
| Client Record Locks |
Evaluate work load of client application |
| Waits on Active Writer Lock (number of clients waiting on the Active Writer Lock) |
| Waits of File Locks |
| Waits on Page and Record Locks |
| Waits on Page Buffers |
Indicates whether or not the database engine has a page buffer available in cache. |
MicroKernel Transactions
These counters are useful for understanding application behavior in terms of transactions. For example, a few long-lasting transactions that involve many changes affect performance differently than many short-lived transactions.
| Counter/Description |
Typical Use |
| Systems Transactions in Progress |
Determine if system transactions are occurring too frequently or not often enough. |
| Transaction Commits Per Second |