Skip to content

Bits of .NET

Daily micro-tips for C#, SQL, performance, and scalable backend engineering.

  • Asp.Net Core
  • C#
  • SQL
  • JavaScript
  • CSS
  • About
  • ErcanOPAK.com
  • No Access
  • Privacy Policy
AI

AI Prompt: Optimize Slow SQL Queries with AI Analysis

- 06.06.26 - ErcanOPAK

🚀 10 Second Query → 0.1 Second

Don’t know SQL optimization? AI analyzes query, suggests indexes, rewrites for speed. Massive performance gains.

📝 The Prompt

I have a slow SQL query that needs optimization.

Current query:
[paste your SQL query]

Database: [PostgreSQL/MySQL/SQL Server]
Table sizes:
- users: 1 million rows
- orders: 5 million rows
- products: 100,000 rows

Current indexes:
[list current indexes if known]

Execution time: [e.g., 8 seconds]

Please:
1. Explain why this query is slow
2. Identify missing indexes needed
3. Rewrite query for better performance
4. Suggest query structure improvements
5. Explain the performance gain expected
6. Provide CREATE INDEX statements

Make the query as fast as possible while maintaining correctness.

✅ Example Optimization

-- ❌ Slow (8 seconds)
SELECT u.name, COUNT(o.id) as order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.created_at > '2024-01-01'
  AND o.status = 'completed'
GROUP BY u.id, u.name
HAVING COUNT(o.id) > 5;

-- AI Analysis:
-- 1. No index on users(created_at)
-- 2. LEFT JOIN but filtering on orders (use INNER JOIN)
-- 3. GROUP BY on multiple columns

-- ✅ Optimized (0.2 seconds)
CREATE INDEX idx_users_created ON users(created_at);
CREATE INDEX idx_orders_user_status ON orders(user_id, status);

SELECT u.name, COUNT(o.id) as order_count
FROM users u
INNER JOIN orders o ON u.id = o.user_id
WHERE u.created_at > '2024-01-01'
  AND o.status = 'completed'
GROUP BY u.id
HAVING COUNT(o.id) > 5;

-- Performance: 8s → 0.2s (40x faster!)

💡 What AI Helps With

  • Missing indexes (identifies columns that need indexing)
  • Query rewriting (more efficient SQL structure)
  • Join optimization (better join order and types)
  • N+1 query detection
  • EXPLAIN plan analysis

“Dashboard query took 15 seconds. Gave query to AI, it suggested 2 indexes and rewrote join. Now 0.3 seconds. AI is my DBA now.”

— Backend Developer

Related posts:

AI Prompt: Generate SQL Queries from Plain English Description

AI Prompt — Home Repair Planning

AI — Token Cost Explodes with System Prompts

Post Views: 4

Post navigation

Docker: Use Docker Context to Switch Between Local and Remote Docker
Windows 11: Create System Restore Points Before Major Changes

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

June 2026
M T W T F S S
1234567
891011121314
15161718192021
22232425262728
2930  
« May    

Most Viewed Posts

  • Get the User Name and Domain Name from an Email Address in SQL (953)
  • How to add default value for Entity Framework migrations for DateTime and Bool (882)
  • Get the First and Last Word from a String or Sentence in SQL (838)
  • How to select distinct rows in a datatable in C# (808)
  • How to make theater mode the default for Youtube (804)
  • Add Constraint to SQL Table to ensure email contains @ (580)
  • How to enable, disable and check if Service Broker is enabled on a database in SQL Server (579)
  • Average of all values in a column that are not zero in SQL (538)
  • How to use Map Mode for Vertical Scroll Mode in Visual Studio (505)
  • Find numbers with more than two decimal places in SQL (454)

Recent Posts

  • C#: Use String Interpolation Instead of Concatenation
  • C#: Use Tuples to Return Multiple Values from Methods
  • SQL: Use ISNULL and NULLIF for Smart NULL Handling
  • .NET Core: Use Data Annotations for Model Validation
  • Git: Use Git Clean to Remove Untracked Files
  • Ajax: Add Custom Headers to Fetch Requests
  • JavaScript: Use console.table to Display Arrays as Tables
  • HTML: Use Spellcheck Attribute to Enable Browser Spell Check
  • CSS: Use user-select to Prevent Text Selection
  • Windows 11: Use Snipping Tool for Instant Screenshots

Most Viewed Posts

  • Get the User Name and Domain Name from an Email Address in SQL (953)
  • How to add default value for Entity Framework migrations for DateTime and Bool (882)
  • Get the First and Last Word from a String or Sentence in SQL (838)
  • How to select distinct rows in a datatable in C# (808)
  • How to make theater mode the default for Youtube (804)

Recent Posts

  • C#: Use String Interpolation Instead of Concatenation
  • C#: Use Tuples to Return Multiple Values from Methods
  • SQL: Use ISNULL and NULLIF for Smart NULL Handling
  • .NET Core: Use Data Annotations for Model Validation
  • Git: Use Git Clean to Remove Untracked Files

Social

  • ErcanOPAK.com
  • GoodReads
  • LetterBoxD
  • Linkedin
  • The Blog
  • Twitter
© 2026 Bits of .NET | Built with Xblog Plus free WordPress theme by wpthemespace.com