/SSMS-Results-Parser

Visually compare side-by-side two SQL Server Statistics IO and Time data. Simply copy your output from SSMS and compare!

Primary LanguageTypeScriptGNU General Public License v2.0GPL-2.0

SSMS Results Parser

A SQL Server Management Studio Parser. You can pass it up to two queries and compare results including:

  • Scan Count
  • Logical Reads
  • Physical Reads
  • Read-ahead Reads
  • Lob Logical Reads
  • Lob Physical Reads
  • Lob Read-ahead Reads

The data is compared on a per query level, and on a per-table level (assuming both queries have the same number of tables). All of the code runs directly in browser with no server side hooks. Your data is not saved anywhere.

Features

Total IO Comparison:

Total IO Data Lob counts can be optionally included in chart

Total Time Comparison:

Total Time

Single Table Comparison

Single Table

Single Table Join Comparison

Single Table Join

Expected Input:

SSMS Results Parser in its current state is fairly strict, therefore it requires you to configure SSMS as instructed below.

Configuring SSMS

Firstly select to output your results to Text. This can be done in SSMS by: Tools > Options > Query Results:

SSMS Option to include output results to text

Now you can optionally configure your results to automatically include Time and IO statistics data. In SSMS: Tools > Options > Query Execution > SQL Server > Advanced.

SSMS Option to default Time and IO stats

Alternatively, you can manually specify the Time and IO headers by including the snippet below at the beginning of your SQL query:

SET STATISTICS IO ON
SET STATISTICS TIME ON

That's it!

Future Features (welcome to contribute)

  • Improve robustness for inputs
  • Compare table Data to ensure both queries are equivalent

Contributing to SsmsResultsParser

Contributions are welcome! Here is a little guide on getting this project setup.

This project was generated with Angular CLI version 1.5.0.

Development server

Run ng serve for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

Code scaffolding

Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.

Build

Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the -prod flag for a production build.

Running unit tests

Run ng test to execute the unit tests via Karma.

Linting

Run ng lint to run linter