SUMMARY: Our client achieved exceptional SQL Server performance transformation through Red9's systematic three-phase optimization approach. Within six weeks of onboarding, CPU utilization dropped dramatically through strategic health check implementation, performance tuning, and Azure infrastructure optimization. The result: a high-performance database environment operating at just 6.42% SQL usage while processing over 120 million monthly transactions.
The Problem
Their SQL Server was having issues. CPU usage was all over the place, queries were slow, and they were running on the wrong Azure instance type. Their database was not performing at the level they needed it to.
What We Did
Week 2: Fixed the Basics
We started with our SQL Server health check. Found a bunch of configuration problems that needed fixing and applied best practices. The moment we applied our recommendations on June 25th, you could see CPU usage start dropping on the performance graphs.
Week 4: Performance Tuning
July 17th was our main tuning session. We used SQL Server’s Query Store to find the worst-performing queries and created strategic indexes to fix them.
Performance tuning is complex, especially index design; knowing which columns to include, order, and optimizer behavior requires experience. The challenge isn’t just creating an index – it’s knowing which columns to include, in what order, and understanding how SQL Server’s query optimizer will use it. When you have deep knowledge of how this works, then yes, it becomes straightforward. But getting to that point takes years of experience.
Week 6: Infrastructure Fix
They were running on a generic D-series Azure instance type, which isn’t bad, but we could do better. After implementing best practices and performance tuning, we recommended switching to E4ads_v5, which is recommended for SQL Server workloads. The optimization work we’d done meant we could actually cut the instance size in half while getting better performance.
When they made the switch at the end of July, CPU usage dropped even more.
The Results
Here’s where they ended up:
- SQL Usage: 6.42% (tons of headroom for growth)
- 120,869,229 transactions processed in July without breaking a sweat
- 57GB database with 45GB of space available
- Only 11 deadlocks all month (that’s really good)
- 1,773 errors, mostly from application issues, not the database itself
- 445 failed SQL jobs out of 64,201 total runs
- 41 million rows are being processed monthly
Error Breakdown:
- 362 errors: SQL Agent profile validation issues
- 65 errors: JonasNET application unclosed quotation marks
- 26 errors: Number parsing problems with large values
- 18 errors: Numbers out of range for numeric data types
- 16 errors: Incorrect syntax issues
Most expensive queries were all JonasNET application calls, including operations like:
- Client demographic updates
- Member integration lookups
- Charge code allocation processing
- System integration queries
What We Actually Optimized
From the transcript discussion, here are some of the specific performance improvements we achieved during the July 17th tuning session:
Query Performance Examples:
- One query went from 23 milliseconds down to 3.5 milliseconds
- Another query improved from 400 milliseconds to under 300 milliseconds
- A third query showed massive disk I/O improvements (from ~5,000 pages to 1,000 pages per execution)
- Some queries saw “almost 1000 times faster” performance improvements
What We Focus On: Every performance issue comes down to three key metrics:
- Duration – how long users wait for results
- CPU usage – how many processing cycles each query consumes
- Disk I/O – how many disk operations are needed to fetch data
Disk operations are the slowest part of any SQL Server system. Even with SSDs, excessive logical reads and inefficient plans can cause performance issues, especially when they trigger unnecessary I/O. It’s like searching through every page of a phone book instead of using the index.
How We Do It
We use SQL Server’s built-in Query Store to see exactly which queries are causing problems. No guesswork, just data.
Many performance problems can be resolved with the right indexes, especially when queries are otherwise well-written. However, some scenarios require query optimization, schema changes, or application code adjustments.
Scientific approach: “Every change gets measured”.
We capture before and after metrics, and if something makes performance worse, we roll it back immediately.
Why This Matters
This client deals with athletes and performance. Their systems needed to match that.
Their database now handles 120+ million transactions monthly while barely using any resources. That’s the kind of efficiency every organization should have.
Common SQL Server Problems We See
Wrong Configuration. Most SQL Servers run with default settings unsuited to their workload — for example, default MAXDOP, Cost Threshold for Parallelism, TempDB configuration, or memory limits. It’s like running a race car with flat tires.
Data Type Mismatches. Applications often use NVARCHAR(MAX) for everything while the database uses specific types like VARCHAR(100). This forces SQL Server to do expensive conversions on every query.
Missing Indexes. Queries scan entire tables instead of using indexes. It’s like looking through every page of a phone book instead of using the index.
Wrong Hardware. Running SQL Server on general-purpose cloud instances instead of database-optimized ones. The specs might look similar, but performance is completely different.
What to Look For
Your SQL Server might need help if:
- Queries are getting slower over time
- CPU usage spikes for no clear reason
- Users complain about system responsiveness
- You keep needing bigger servers to handle the same workload
How We Approach Performance Tuning
Step 1: Health Check. We examine 110 different aspects of your SQL Server setup. Most problems are in the configuration, not the queries.
Step 2: Find the Bottlenecks. Using Query Store, we identify which queries consume the most resources.
Step 3: Strategic Optimization. We create indexes and adjust settings to fix the biggest problems first.
Step 4: Measure Results. Every change gets measured with before/after metrics. No guessing.
Step 5: Ongoing Monitoring. We set up monitoring to catch new problems before they impact users.
Why Index Creation Works
Creating the right index can make a query run 100x faster. Here’s why:
Instead of scanning every row in a table (like reading every page of a book), SQL Server can jump directly to the data it needs (like using a book’s index).
The challenge is knowing which indexes to create. Create the wrong ones and you waste space and slow down inserts. Create the right ones and everything runs faster.
After 15+ years of doing this, we’ve learned which indexes actually matter.
The Technical Details
Query Store Integration: SQL Server’s Query Store tracks every query’s performance over time. We use this data to identify problems and measure improvements.
Automated Rollback: If any change makes performance worse, our monitoring detects it and we roll back the change promptly, either automatically or manually, depending on the nature of the modification.
Non-Intrusive Methods: All our analysis happens without impacting your production workload. Most optimizations can be done during business hours.
Real-World Impact
For this client, better database performance means:
- Faster response times for staff and members
- More capacity to handle growth without new hardware
- Lower cloud costs from running efficiently
- Reduced risk of performance problems during peak usage
Frequently Asked Questions
Will this affect our production system?
How long does optimization take?
What if our application is custom-built?
How do you know which indexes to create?
What if performance gets worse after optimization?
Do you work with cloud and on-premises SQL Server?
How much does this typically cost and what’s the ROI?
What ongoing support do you provide after initial optimization?
Conclusion
SQL Server performance problems are usually fixable.
The client went from performance issues to processing 120+ million transactions monthly at 6.42% resource usage.
Most organizations are running SQL Server way below its potential. With the right approach, you can get dramatic performance improvements without changing your application or buying new hardware.
The key is systematic analysis, strategic optimization, and scientific measurement.
Guess and check doesn’t work with database performance.
If your SQL Server is slow, there’s probably a reason. And that reason is usually fixable.
Speak with a SQL Expert
In just 30 minutes, we will show you how we can eliminate your SQL Server headaches and provide operational peace of mind