Am I faster than an AI at Fishbowl SQL?
This came up as kind of a joke in one of our internal meetings. Someone asked how fast AI really is at writing SQL, and I realized I’d never questioned it. I just assumed I’d be slower. But it got me thinking: what’s my human tokens per second?
I’ve been writing Fishbowl SQL since 2008, so I set up a test.
How the test worked
Three questions, easy, medium and hard. They were hidden from me until the clock started. Each one was checked against a correct answer worked out ahead of time.
- Me: HeidiSQL, the way I always work. I could browse the schema, but I couldn’t use old saved queries.
- AI without ILC MCP: the model can’t see the database, so it writes the SQL from what it knows. Someone still has to copy that query into a SQL tool and run it, so I added 15 seconds per query for that. That’s an estimate, not something we measured. If the answer was wrong, it got a “not correct yet” and up to six more tries.
- AI with ILC MCP: the model looks up the schema, runs read-only queries itself and answers from the data.
The models were Claude Haiku, Sonnet and Opus 5.5, two runs each, all on medium thinking.
One fair point up front: the questions are written pretty close to the SQL, so they could be graded. The easy one says “from the sales order table, count how many sales orders are in each status.” A customer in a Zoom meeting would just say “how many orders do I have by status?” I wanted to see the speed of writing SQL, and the extra detail helps the AI a lot.
The results
| Question | Me | AI without MCP | AI with ILC MCP |
|---|---|---|---|
| Easy: sales orders by status | 43 s | 6 of 6 right, 20–24 s | 6 of 6 right, 12–14 s |
| Medium: Q1 2026 fulfilled sales by customer | 117 s | 4 of 6 right, 22–26 s | 6 of 6 right, 18–23 s |
| Hard: one product’s total, converted by unit of measure | 159 s | 4 of 6 right, 22–29 s | 6 of 6 right, 15–30 s |
The times without MCP include the 15 seconds per query. Times are for the runs that got it right.
What happened
Easy. I took a few seconds to read the question and started typing, and the AI was already done. Without the MCP, every model got it right. With it, the times were tighter, 12 to 14 seconds. That matters as the conversation goes on, because one question leads to another, and without the MCP you’re copying and pasting queries back and forth every time.
Medium. I was still reading the dates and deciding how to handle them when one of the Opus runs finished, before I’d typed anything. Sonnet and Opus got it right from memory on the first try. Haiku without the MCP never did. It kept guessing column names that don’t exist, like so.status, and gave up after seven tries.
Hard. Fishbowl lets you sell in different units of measure, and it’s common, even for me, to write a query and forget the conversion. The question even tells you to use the conversion table. I’ve written this one before, so I went straight to the joins, then lost time on two submits with a syntax error. Haiku without the MCP failed again. After its third wrong try, it said:
“I can’t keep iterating blindly. I don’t have access to your Fishbowl database, so each version has been a guess at column names…”
And after its sixth:
“I’ve given you my best query three times now, and I can’t do better without information from your database.”
With the MCP, the same model got it right in both runs.
What I take from it
I was the slowest every time, and I expected that. This is just for fun, not a slam dunk on AI or on people.
The bigger models did well from memory. Fishbowl’s standard tables are well known, our test database is a clean demo with no custom fields, and the questions named the tables. That’s the easiest case for guessing. Your database probably has custom fields, and your team doesn’t ask questions like a textbook. That’s where guessing breaks down, and why AI makes up Fishbowl table names covers what that looks like.
Without the MCP, you get a query that you still have to run and check yourself. With it, you get the answer from your live data.
The MCP also made the smallest model reliable. Haiku went from 2 of 6 to 6 of 6. That matters if you’re rolling this out to a team and don’t want to pay for the biggest model for everyone. Do you need the most expensive AI model for Fishbowl questions? goes further into that.
Fine print
- The questions read almost like SQL already: they name the tables, the exact dates and the line type. A customer in a meeting would ask something vaguer, like “what did we ship to our top customers last quarter?”, and someone has to work out what they mean first.
- My time starts when the question appears, so it includes reading it. The AI’s time runs from sending the question to the finished reply.
- The 15 seconds per query without the MCP is an estimate for copying the query into a SQL tool and checking it.
- The runs without the MCP went through the API, and the runs with it went through claude.ai. Same models and the same medium thinking setting, but claude.ai adds its own instructions.
If you’re curious how ILC MCP can answer your Fishbowl questions, give us a shout.
Related: