StressQL

When it comes to application performance problems by far the vast majority will stem from overstressing the database. There are typically two reasons for this:
- Poor database design: this can range anywhere from over-normalizing the schema, resulting in necessarily large numbers of joins, to simply not properly indexing certain key tables.
- Artificial false hope due to low volumes of data: the application works just fine in its infancy, but comes to a crawl after enough usage of the application populates the database with enough data.
StressQL allows the software developers, DBA’s and ITO teams to all collaborate in diagnosing these problems early on in the SDLC cycle. It accomplishes this fundamentally by providing two key features:
- Pre-populate the database tables with as many records as desired. Regular expressions can be used to constrain the column values according to known rules. Foreign key constraints can be enforced during this process by using the Chordial schema metadata management functionality.
- Simulate the activity of the application by defining as many virtual users as one desires. Think and stagger times can be also be defined to “ramp up” the application and to emulate real life system usage.
The design philosophy is that it is critical that database performance be measured early in the design stage before the GUI is implemented. Implementation of the user interface usually implies a commitment to the underlying database schema, and by that time it is typically too late to go back and rip up and retry the whole application. StressQL enables the performance of the database to be measured prior to the development step, saving enormous amounts of valuable development resources – which trickles down to saving the company huge dollar investments in the development phase of the SDLC.
It is also a design philosophy that no tool vendor can anticipate every need that might crop up in some development environments. For this reason StressQL has been designed as a framework that can be extended using normal, well known, object oriented class inheritance and interface methodologies. Simply defining new activities and steps using the .NET language of your choice, and StressQL will plug those new classes into the framework and embed them into the front end as though they had been there all along!
StressQL comes bundled with a rich set of multi-threaded runtime functionality, reporting, and database trace import. System metrics such as CPU, memory and disk usage during the test runs are captured and visualized using attractive graphs. All SQL steps can be parameterized using an extensible system of string substitution classes.