Consulting

Database performance tuning

Slow systems get absorbed rather than reported. Teams add a step to a process, users allow an extra minute for a screen, and a report that runs overnight is simply run overnight. Fortified Data measures where the time actually goes, fixes the causes in priority order, and re-measures against the same baseline, so the improvement is a number you can show somebody.

Measured before and after. Senior US-based consultants.

Why it matters

The case for tuning before buying

Optimization that turns a slow database back into something the business can build on.

Slow by habit, costly by default

Teams adapt to degraded performance over time, accepting bottlenecks that quietly erode productivity and reliability. Nobody raises a ticket for a screen that has always taken eight seconds.

The gains are often immediate

Targeted tuning of queries, indexes, and configuration frequently delivers measurable results within days, because most performance problems have a specific cause and a small fix rather than an architectural one.

Tuning is cheaper than hardware

Scaling infrastructure to compensate for inefficient queries is expensive and temporary. A query reading ten times the rows it needs reads ten times as many on a faster disk, so the cost moves and the cause stays.

What is database performance tuning?

Database performance tuning is the work of finding why a database is slower than it should be and correcting the causes, rather than adding capacity until the symptom is hidden. Fortified Data tunes queries and execution plans, index strategy, server and instance configuration, and resource contention across Microsoft SQL Server, Azure SQL, Oracle, PostgreSQL, and MySQL, on premises and in AWS, Microsoft Azure, and Google Cloud.

Every engagement starts with a measured baseline and ends with the same measurements repeated, so the result is a comparison rather than an assurance.

Most performance problems have a specific cause and a small fix. A query that scans a table because a predicate is not sargable, an index that no longer matches how the application queries, a configuration default that was correct for a smaller machine, a statistics job that stopped running. None of these is visible in a dashboard that reports CPU as healthy, and all of them are cheaper to correct than to out-spend.

The reason tuning is worth doing before buying hardware is that hardware is temporary relief for an inefficiency that grows. A query reading ten times the rows it needs reads ten times as many on a faster disk. The cost moves and the cause stays, which is why the same conversation happens again a year later with a larger number attached.

What we tune

Six areas, examined in one engagement. The order matters, because tuning the wrong layer produces a change nobody can measure.

Wait statistics

What the database is actually waiting on, measured at system level. This is the evidence that decides where the engagement spends its time, ahead of any assumption about which query is to blame.

Query and execution plan analysis

The statements consuming the most resource, their execution plans, and the rewrites, hints, or schema changes that make the optimizer choose a better one.

Index strategy

Missing indexes, unused indexes that cost write throughput, duplicated and overlapping definitions, fragmentation, and statistics accuracy, with targeted rebuilds rather than a blanket job.

Server and instance configuration

Memory allocation, parallelism settings, tempdb and temporary space, storage layout, and the platform defaults that were set for a different machine than the one running now.

Concurrency and contention

Blocking, locking, deadlocks, and connection handling under real concurrency, which is where a system that tests well in isolation fails at peak.

Resource utilization

CPU, memory, storage throughput, and network against the workload profile, which also establishes whether the server is oversized for what it does.

What you receive

The changes, and the evidence that they worked. The second half is what makes the engagement defensible in a budget review six months later.

Performance baseline

Measured query response times, throughput, wait profile, and resource utilization before any change is made, recorded so the same measurements can be repeated afterwards.

Findings with root cause

Each problem stated with what is causing it rather than where it appears, severity rated, and estimated for the effort required to correct it.

Prioritized change list

The order of work, sequenced by the gain against the risk, so the changes that need a maintenance window are separated from the ones that do not.

Implemented changes

The tuning itself, applied in agreed windows with your team informed at each step, and each change recorded so it can be reversed on its own.

Before-and-after comparison

The baseline measurements repeated after the work, presented as a comparison against the original figures rather than as a fresh set of numbers.

Monitoring and maintenance guidance

What to watch, which thresholds matter for this workload, and the maintenance that keeps the result from decaying, handed to the team that owns the environment.

What optimization was worth on one engagement

Retail

4x performance improvement

  • 4x faster query execution after optimization
  • Eliminated a $150,000 hardware upgrade
  • Improved customer checkout experience
  • Scalability to handle 3x future growth

Reported from a Fortified Data engagement. The hardware upgrade in the third line is the point: the spend was avoided by correcting the cause rather than by absorbing it.

Why Fortified Data runs the tuning

Evidence decides the order of work

Wait statistics establish what the system is waiting on before anything is optimized, so the engagement starts on the constraint rather than on the query somebody complained about.

The result is a comparison

Baseline first, the same measurements repeated afterwards, and the two presented side by side. An improvement nobody measured is an impression.

One change at a time

Changes are applied and measured individually wherever the environment allows it, so the gain is attributable and a change that did not help can be reversed on its own.

Multi-platform depth

SQL Server, Oracle, PostgreSQL, and MySQL tuned by consultants who work across all four. The principles carry across platforms; the tools, the wait types, and the configuration traps do not.

Right-sizing comes with it

The same measurements that establish the performance baseline establish whether the server is larger than the workload needs, which is the number a cloud migration is priced from.

Operational experience behind the fix

The same firm runs environments like yours every day, so the recommendation is one that can be maintained rather than one that holds until the next release.

How the result is proved

Six steps that turn a faster system into a number

Tuning that nobody measured is indistinguishable from a quiet week. This is the method that makes the difference reportable, and it is handed over at the end so your team can repeat it without us.

  • 1. Measure before anything changesQuery response times, throughput, the wait profile, and resource utilization captured under representative load. This is the only figure the engagement is later judged against, so it is recorded before the first recommendation.
  • 2. Let the waits set the orderWhat the system spends its time waiting on decides where the work starts. It regularly disagrees with the query everybody has been blaming, and the evidence is what settles it.
  • 3. Change one thing at a timeWherever the environment allows it, changes are applied and measured individually. A batch of twelve changes that collectively helped teaches nobody which of the twelve to repeat.
  • 4. Record each change so it can be reversedEvery change is documented with what it was, why it was made, and how to undo it on its own, so a change that did not help does not have to be unpicked from the rest.
  • 5. Re-measure against the same baselineThe original measurements are repeated under comparable load. Comparing against a fresh set of numbers taken a different way is how an improvement gets reported that nobody can reproduce.
  • 6. Hand over the measurement, not only the resultThe baseline, the method, the thresholds that matter for this workload, and the maintenance that preserves the gain, given to the team that owns the environment next.

When performance tuning is the right project

  • Queries that used to be fast are notThe same reports and screens have degraded over months or years, and nothing obvious changed to explain it.
  • A batch or reporting window is overrunningOvernight processing is finishing later each quarter, and the margin before it reaches the working day is gone.
  • Hardware was added and the relief did not lastMore CPU, memory, or faster storage bought a few months, and the same behavior returned at a larger scale.
  • Cloud spend is rising to hold the same workloadThe instance has been resized upward more than once, which usually means the platform is paying for an inefficiency rather than for growth.
  • Failures happen at peakThe system is adequate on a normal day and fails during the trading period, month end, or campaign that matters most.
  • Timeouts and blocking appear under loadConcurrency produces deadlocks, lock waits, or connection exhaustion that testing in isolation never reproduced.
  • A migration or upgrade is being scopedThere is no measured baseline, so nobody will be able to prove afterwards whether the new environment is faster or slower than the old one.
  • Nobody can say what the constraint isMonitoring reports the environment as healthy, the application team and the database team disagree, and the question has been open for a while.

Common questions about database performance tuning

How quickly does database performance tuning show results?

Often within days. A Fortified Data engagement starts by measuring where time is being spent, and the first findings are usually a small number of statements or indexes responsible for a disproportionate share of it. Those are the changes with the largest gain and the lowest risk, so they are sequenced first. Work that needs schema change, application change, or a maintenance window follows, and its timeline depends on your release process rather than on the tuning.

Is performance tuning cheaper than adding hardware?

Usually, and more durably. Hardware raises the ceiling without changing the behavior underneath it, so a query reading far more data than it needs continues to do so on a faster machine and the problem returns at a larger scale. Fortified Data measures the cause first, which also answers the opposite question honestly: where the workload genuinely exceeds the capacity available, the recommendation says so rather than selling more tuning.

Does database performance tuning require downtime?

Most of it does not. Query rewrites, statistics updates, configuration changes that apply dynamically, and online index operations on platforms and editions that support them are applied to a running system. Changes that do require an interruption, such as certain index rebuilds, schema changes, or settings that need a restart, are identified in the prioritized change list and scheduled into an agreed window. Which category a given change falls into is stated before it is made, not after.

Which database platforms does Fortified Data tune?

Microsoft SQL Server, Azure SQL, Oracle, PostgreSQL, and MySQL, on premises and on AWS, Microsoft Azure, and Google Cloud. A mixed estate is tuned in one engagement by consultants who work across the platforms, which matters because the diagnostic tools and the common configuration traps differ on each one even when the principles do not.

How is the improvement measured?

Fortified Data records query response times, throughput, the wait profile, and resource utilization before any change is made, then repeats the same measurements after the work and presents the two side by side. Using the same measurements rather than a fresh set is what makes the comparison meaningful, and the method is handed over so your team can repeat it later.

What is the difference between performance tuning and a database health check?

A database health check is a diagnostic across six areas including performance, security, availability, cost, and scalability, and it ends with a report and a prioritized roadmap. Performance tuning is the delivery of the fix in one of those areas: Fortified Data measures, corrects, and proves the change. Organizations often run the assessment first where the problem is not yet identified, and go straight to tuning where it is.

Will the performance improvement last?

It lasts as long as the conditions that produced it. Data volume grows, query patterns change with each application release, and statistics and index maintenance decay if nothing runs them. Every Fortified Data tuning engagement hands over what to watch, which thresholds matter for that workload, and the maintenance that keeps the result in place, so the decay is visible rather than gradual and unnoticed.

Three ways to work with us

Tuning is a project with an end date. If keeping the environment fast is the actual requirement, these are the routes.

On-Call DBA

A guaranteed 15-minute emergency response plus monthly on-demand hours that bank when unused.

Read more

Find out where the time is going

The first conversation is about which system is slow, what changed around it, and what you are able to measure today. The baseline comes before the recommendation, so the estimate is set against evidence.

Let us show you what's possible.

Two ways to start

Measured before and after, on every engagement.