İçeriğe geç

GeliştiriciÜcretsiz yapay zekâ aracı

SQL Sorgu Açıklayıcı ve Optimizasyon Önerici

T-SQL sorgunuzu yapıştırın; ne yaptığının Türkçe açıklamasını, SARGable olmayan koşulları, NOLOCK ve SELECT * gibi riskleri, indeks önerilerini ve iyileştirilmiş yazımını alın.

  • Verileriniz saklanmazDosya ve girdiler yalnız işlem süresince bellekte işlenir.
  • Her gün ücretsiz hakTelefonunuzu doğrulayınca hakkınız artar.
Hemen kullanın

Girdiler

Verileriniz bizde kalmaz
  • Kaydedilmez
  • Kayıt dosyalarına yazılmaz
  • Kimseyle paylaşılmaz

Girdiğiniz değerler ve yüklediğiniz dosyalar yalnız bu hesap süresince sunucumuzun belleğinde işlenir. Diske, veritabanına ya da kayıt (log) dosyalarına yazılmaz; hata kayıtlarına bile değerler değil yalnız hatanın yeri düşer. Yüklenen dosyanın geçici kopyası yanıt döner dönmez silinir. Bağlantı şifrelidir (HTTPS).

Yapay zekâ kullanılan adımlarda servise ham veriniz değil, yalnız hesaplanmış özet ya da maskelenmiş yapı gönderilir.

Kullanım istatistiği için yalnız hangi aracın ne zaman kullanıldığını sayarız; ne girdiğinizi değil.

Gizli tablo ya da şema adlarını paylaşmak istemiyorsanız değiştirerek yapıştırın. Metin yapay zekâ servislerine gönderilir.

Sonuca git

Sonuç

Değerleri girin ya da Örnek veriyle doldur düğmesine basın; sonuç burada görünür.

iyonosfer.com/araclar ile hesaplandı · SQL Sorgu Açıklayıcı ve Optimizasyon Önerici

SQL sorgusu nasıl incelenir?

Yavaş bir SQL Server sorgusunun nedeni çoğu zaman donanım değil, sorgunun yazılış biçimidir. Aynı sonucu veren iki sorgudan biri indeksi kullanıp milisaniyede dönerken diğeri milyonlarca satırı baştan sona tarayabilir. Bu araç sorgunuzu iki katmanda inceler: önce kural tabanlı bir kontrol bilinen kötü kalıpları satır numarasıyla işaretler, ardından yapay zekâ sorgunun ne yaptığını Türkçe anlatır, riskleri yorumlar, indeks önerir ve iyileştirilmiş bir yazım verir. Sorgunuz hiçbir veritabanında çalıştırılmaz.

Kural tabanlı kontroller

KalıpNeden sorun?
UPDATE / DELETE WHERE'sizTablodaki tüm satırlar etkilenir; en tehlikeli hatadır.
Birleştirilmiş dinamik SQLEXEC(@sql) içine değişken eklemek SQL enjeksiyonuna açıktır; sp_executesql ve parametre kullanın.
SELECT *Gereksiz sütunlar okunur, kapsayan indeks kullanılamaz.
WHERE YEAR(Tarih) = 2026Sütun fonksiyon içinde olduğu için koşul SARGable değildir; indeks araması yapılamaz.
LIKE '%metin'Baştaki joker indeksin kullanılmasını engeller.
NOLOCKKaydedilmemiş ya da iki kez okunan satırlar dönebilir.
Farklı sütunlar OR ileİyileştirici çoğu zaman tek indeks kullanamaz; UNION ALL daha hızlı olabilir.
NOT IN (SELECT …)Alt sorgu NULL döndürürse hiç satır gelmez; NOT EXISTS güvenlidir.
İmleç, skaler fonksiyon, gereksiz sıralamaSatır satır işlem ve paralelliği engelleyen yapılar.

Örnek

-- Önce: tarih sütunu fonksiyon içinde, indeks kullanılamaz
SELECT SiparisNo, Tutar FROM dbo.Siparis WHERE YEAR(Tarih) = 2026;

-- Sonra: aralık koşulu, Tarih üzerindeki indeksle arama yapılır
SELECT SiparisNo, Tutar FROM dbo.Siparis
WHERE Tarih >= '2026-01-01' AND Tarih < '2027-01-01';

CREATE INDEX IX_Siparis_Tarih ON dbo.Siparis (Tarih) INCLUDE (SiparisNo, Tutar);

İkinci sorgu, 2,4 milyon satırlık bir tabloda tüm tabloyu taramak yerine yalnız 2026 yılına ait satırları okur. INCLUDE ile eklenen sütunlar sayesinde tabloya geri dönmeye (key lookup) de gerek kalmaz.

Daha iyi sonuç için

  • Tablo ve indeks tanımlarını (CREATE TABLE, CREATE INDEX) ekleyin; öneriler mevcut indekslerinizi hesaba katar.
  • Tabloların yaklaşık satır sayısını yazın; küçük tablolarda indeks önerisi gereksiz olabilir.
  • Gizli tablo ya da şema adlarını paylaşmak istemiyorsanız değiştirerek yapıştırın; metin yapay zekâ servislerine gönderilir.
  • Önerileri önce test ortamında deneyin ve yürütme planını (actual execution plan) karşılaştırın.
Merak edilenler

Sıkça sorulan sorular

SARGable ne demek?

Search ARGument ABLE: koşulun indeks üzerinde arama (seek) yapılabilecek biçimde yazılmasıdır. WHERE YEAR(Tarih) = 2026 yerine WHERE Tarih >= '2026-01-01' AND Tarih < '2027-01-01' yazıldığında indeks kullanılabilir.

NOLOCK kullanmak neden riskli?

NOLOCK (READ UNCOMMITTED) kilit beklemez ama henüz kaydedilmemiş, sonradan geri alınacak satırları okuyabilir; sayfa bölünmeleri sırasında aynı satırı iki kez okuyabilir ya da atlayabilir. Raporlarda tutarlılık için veritabanında READ_COMMITTED_SNAPSHOT açmak daha güvenlidir.

Sorgum çalıştırılıyor mu?

Hayır. Sorgunuz hiçbir veritabanında çalıştırılmaz; yalnız metin olarak incelenir. Önerilen indeks ve yeniden yazımlar da yalnız metin olarak gösterilir.

Yazdığım SQL nereye gidiyor?

Kural tabanlı kontrol sunucumuzda yapılır. Açıklama ve öneriler için sorgu metni yapay zekâ servislerine gönderilir; bu yüzden gizli tablo ya da şema adlarını değiştirerek yapıştırmanızı öneririz. Sorgu saklanmaz.

Sizi arayalım

Numaranızı bırakın; müşteri temsilcimiz sizi arasın ve sorunuzu yanıtlasın.

Metni oku

Sorunuzu Yazın

Sorunuzu ve size nasıl ulaşacağımızı yazın; konuyu bilen uzmanımız dönsün.

Metni oku