Latest
Post an AI Image and Unfriend MeShe Asked How to Publish Her Bedtime Story. They Called Her a Thief.The AI Hype Cycle: Why the Crash Is Coming, and Who’s Causing ItSix Claude Prompts That Get You Unstuck, and Why the Order MattersDogpiled Over AI Art at the Renaissance FaireClaude Opus 5.5: What the New Release Means for WritersTrump’s AI Force Is a Fire Department With No Fire CodeWhat It Costs to Fix an AI-Written ManuscriptWhen Your Memoir Should Be a NovelThe Hugging Face AI Agent Attack: An Operations ReadingWhen Your Own Memoir Sounds Like BraggingWhat Belongs on a Copyright PageWhat an AI Detector Score on Your Manuscript Is WorthThe Clients Who Pay and VanishThe Quotation Marks That Get Authors SuedThe Work You Would Never Have StartedMonthly or Milestone: How Ghostwriting Gets BilledWhen a Client Thinks the Ghostwriter Used AIThe One-Hour Call Before I Quote Your BookBehind the Book: The Mysterious Island, Neb’s SideHow to Organize Decades of Memories Into a MemoirWhy Rotten Tomatoes Sucks: The Score Does Not Mean What You ThinkWhy Amazon KDP Sucks: They Terminated My Account OvernightIngramSpark: How I Publish Now and WhyWhy Fiverr Sucks for Ghostwriting: The Buyer’s SideWhy eBay Sucks Now: A Seller’s Numbers and a Buyer’s WarningThe Ghost Story TraditionThe Gothic TraditionThe Christmas Ghost Story TraditionBooks to Give a WriterResurrection as a Narrative StructureThe Beach Read ArgumentWhy It’s a Wonderful Life Failed on ReleaseWhat to Read in SpringWhat to Read in SummerWhat to Read in OctoberHow Warner Bros. Dismantled a $17 Billion Cartoon EmpireThe Imaginary Scarcity TrapThe Graph That Goes Vertical Is Usually Somebody Else’sSubstack Is Not Collapsing. The Promise Was.The Disasters That Happen to Ordinary PeopleToba: The Winter That Almost Ended UsJay Stifflemire: Nothing Ever Gets Written DownGeorgie-Ann Getton: I Forgot I Had Free WillAI Detection Cannot Be Evidence, and Publishing Is Using It That WayAI Consciousness Left Philosophy and Entered the LaboratoryThe Office Block Where the Bedrooms AreBlack Tuesday: The Web Ring War Nobody Outside It NoticedThe Web Got Fenced: What AI Search Costs Small SitesWhat the AI Visibility Industry Sells, and What the Evidence Says

Six DBAs, Six Months, Open Checkbook

TL;DR: The true cost of our platform migration wasn’t in the migration budget. It arrived afterward: hundreds of SQL queries that had to be optimized for the new database. The problem was big enough that I had an open checkbook, and I spent it on a team of six database specialists for roughly six months. DBAs aren’t cheap. The lesson executives need: the query layer is where migration costs hide, and it presents its bill after go-live.

When the performance crisis hit after our big-bang platform migration, the emergency fix bought survival, and survival bought time to find the real problem. The real problem was the query layer. Hundreds of SQL queries, written and tuned over years against the old database, behaved badly against the new one. Each query was logically correct. The data came back right. It just came back slowly, and hundreds of slow queries compound into a platform that can’t carry a business.

Why do correct queries go bad after migration?

Why correct queries go bad after a database migrationA database is an engine that decides how to find what you ask for, and every engine decides differently. A query shaped to be fast on one engine can be pathologically slow on another, not because anything is wrong, but because the new engine takes a different path to the same answer. Multiply that by every query a business has accumulated over decades and the migration has silently converted the best-tuned asset into the largest liability. Nothing in testing fully exposes this, because the compounding only appears under real production load, meaning all the queries, all the users, all at once. Which is why the bill arrives after go-live, during the barely tolerable weeks.Why correct queries go badNothing is wrong with the query. The engine just took a different path.1The query is correctIt was correct before, and itreturns the same answer now2The engine decides differentlyEvery engine picks its own pathto the same result3Multiply by decades of queriesYour best-tuned asset silently becomesyour largest liability4Testing does not catch itThe compounding only appears underreal load: all queries, all users, at onceThis is where migration budgets quietly detonate, and it happens after go-live.
Why correct queries go bad after a database migrationA database is an engine that decides how to find what you ask for, and every engine decides differently. A query shaped to be fast on one engine can be pathologically slow on another, not because anything is wrong, but because the new engine takes a different path to the same answer. Multiply that by every query a business has accumulated over decades and the migration has silently converted the best-tuned asset into the largest liability. Nothing in testing fully exposes this, because the compounding only appears under real production load, meaning all the queries, all the users, all at once. Which is why the bill arrives after go-live, during the barely tolerable weeks.Why correct queries go badNothing is wrong with the query. The engine justtook a different path.1The query is correctIt was correct before, and itreturns the same answer now2The engine decides differentlyEvery engine picks its own pathto the same result3Multiply by decades of queriesYour best-tuned asset silently becomesyour largest liability4Testing does not catch itThe compounding only appears underreal load: all queries, all users, at onceThis is where migration budgets quietly detonate,and it happens after go-live.

This is the part executives deserve to have explained without jargon, because it’s where migration budgets quietly detonate. A database is an engine that decides how to find what you ask for, and every database engine decides differently. A query shaped to be fast on one engine can be pathologically slow on another, not because anything is wrong, but because the new engine takes a different path to the same answer.

Multiply that by every query your business has accumulated over decades, and the migration has silently converted your best-tuned asset into your largest liability.

Nothing in our testing fully exposed this, because the compounding only appears under real production load, all the queries, all the users, all at once. Which is why the bill arrived after go-live, in the barely-tolerable weeks, instead of in any planning document.

Why did testing miss the migration problem?

The fair question is why none of this surfaced before go-live, and the answer is a lesson about what testing can and can’t see. Individual queries tested fine, because a query that takes four times longer on the new engine still returns in what looks like acceptable time when it runs alone against a test copy. The pathology was compound: hundreds of modestly degraded queries, sharing one platform, under full production concurrency, with real data distributions the test sets only approximated.

Each ingredient was individually testable; the collision of all of them existed only in production. Load testing as a discipline barely existed for us then. Today it exists and is still routinely skipped, with the same result on the same schedule.

If you want the pre-payment version of our lesson: inventory the query workload before committing to the migration, benchmark a representative slice, the heaviest and most frequent queries, against the target platform with production-scale data, and multiply what you find across the full inventory. The number that exercise produces is the real migration estimate. Ours arrived by invoice instead.

Your migration budget covered the weekend. The real bill was hundreds of SQL queries, six DBAs, and six months.
Share on X

The open checkbook

The problem was big enough, and the alternative, a rollback of the entire migration, expensive enough, that I effectively had an open checkbook. I could spend whatever it took. What it took was a team of six database administrators, specialists in the new platform, working for roughly six months, and you have to understand that DBAs of that caliber aren’t cheap. Six of them, half a year, at emergency rates.

I hired a specialist firm instead of pushing the work onto internal staff, and the reasoning holds up decades later. Query optimization at that depth is a distinct craft: reading execution plans, restructuring joins, redesigning indexes for the new engine’s behavior. My people were experts in our systems; the firm’s people were experts in making this database fast. The combination worked. Query by query, hundreds of times over, the platform climbed out of barely tolerable and into healthy.

How should you budget for a database migration?

Here’s what I tell executives planning a platform migration. Your budget covers the visible work: conversion, cutover, infrastructure, testing. The invisible line item is the accumulated tuning of every query your business runs, an asset that doesn’t transfer between platforms and must be rebuilt on the new one. Price that rebuild before you commit, or price it afterward at emergency rates with the company standing on a struggling platform. We did it the second way.

The first way is available to anyone who asks the question in time, and the question is simple: what’s our plan and budget for re-optimizing the query layer, and who’s going to do it?

A migration that ignores that question hasn’t budgeted the migration. It’s budgeted the weekend.

For more from this series, see The Digital Transformation Hub: real transformations, lived from the inside, decades before the term existed.

Frequently Asked Questions

What are the hidden costs of a database migration?
The query layer. Queries tuned over years for the old engine can perform badly on the new one while remaining logically correct. Re-optimizing them is a major specialist effort that most migration budgets omit entirely.
Why do SQL queries slow down after changing database platforms?
Each database engine chooses its own execution path. A query shaped for one engine’s optimizer can be slow on another, and the effect compounds across hundreds of queries under real production load.
Should query optimization be done by internal staff or specialists?
Deep query optimization is a distinct craft. We engaged a specialist team, six DBAs for roughly six months, because expertise in the new platform’s engine mattered more than familiarity with our applications.

About the Author
Richard Lowe, professional ghostwriter

Richard Lowe is a professional ghostwriter and author with 113+ books authored and 54+ ghostwritten. Before writing full time he spent 33 years in enterprise technology, including 20 years as Director of Computer Operations and Technical Services at Trader Joe's. He writes nonfiction, fiction and memoir, and works with executives and experts on books that build authority.

More about Richard Lowe →

Disclaimer

The views and opinions expressed in this blog post are solely those of Richard Lowe and are based on personal experience and research. This content is for informational purposes only and should not be construed as professional legal, financial, accounting, or business advice. Always consult with qualified professionals before making important business or legal decisions. Richard Lowe is not a lawyer, accountant, or licensed professional advisor, and this content does not establish any professional relationship.