İçeriğe geç
parazade

Saklı Yordam Nedir?

İngilizce: Stored Procedure

Yayın: · Son güncelleme:

Saklı Yordam Nedir? Kısaca

Saklı yordam (stored procedure), veritabanında bir adla kaydedilen ve gerektiğinde çağrılarak çalıştırılan SQL komutları bütünüdür. Parametre alabilir, birden fazla işlemi tek çağrıda yapabilir.

Saklı Yordam nedir?
İçindekiler
  1. Saklı yordam nedir?
  2. Örnek kullanım
  3. Avantajları ve dezavantajları
  4. Ne zaman tercih etmeli?

Saklı yordam nedir?

Saklı yordam, veritabanının içinde saklanan küçük bir programdır. İngilizcede stored procedure olarak geçer ve Türkçe kaynaklarda "saklı prosedür" ifadesi de kullanılır. Birden fazla SQL komutunu, koşulları ve döngüleri bir araya getirip tek bir adla çağırmanızı sağlar.

Uygulama, uzun SQL metinlerini her seferinde göndermek yerine yalnızca yordamın adını ve parametrelerini iletir. Bu sayede iş kuralı tek bir yerde tutulur.

Örnek kullanım

Varsayımsal bir e-ticaret sisteminde sipariş verildiğinde üç şey olmalı: sipariş kaydı eklenmeli, stok düşmeli ve müşterinin puanı artmalı. Bu adımlar "siparis_olustur" adlı bir saklı yordamda toplanır. Uygulama yalnızca şunu çağırır:

CALL siparis_olustur(15, 204, 2);

Burada 15 müşteri kimliği, 204 ürün kimliği, 2 ise adettir. Yordam üç adımı tek bir transaction içinde çalıştırırsa, biri başarısız olduğunda diğerleri de geri alınır.

Avantajları ve dezavantajları

Saklı yordamlar ağ trafiğini azaltır ve aynı kuralı farklı uygulamaların ortak kullanmasını sağlar. Kullanıcılara tablolara doğrudan erişim yerine yalnızca yordam çalıştırma yetkisi vermek güvenliği de artırır.

Öte yandan iş mantığının bir kısmı veritabanında kalınca test etmek, sürüm kontrolüne almak ve hata ayıklamak zorlaşır. Her veritabanının yordam dili farklıdır; MySQL'de yazılan bir yordam PostgreSQL'e olduğu gibi taşınamaz.

Ne zaman tercih etmeli?

Yoğun veri işleyen, performansın kritik olduğu ve birden fazla uygulamanın aynı kuralı paylaştığı durumlarda mantıklıdır. Küçük web projelerinde iş mantığını uygulama kodunda tutmak çoğu ekip için daha kolay yönetilir. Yordam kullanacaksanız kodlarını da migration dosyalarıyla birlikte sürüm kontrolünde saklayın.

Sıkça Sorulan Sorular

Saklı yordam ile fonksiyon arasındaki fark nedir?

Veritabanı fonksiyonları genellikle bir değer döndürür ve SELECT içinde kullanılabilir. Saklı yordamlar ise CALL veya EXEC ile çağrılır, birden fazla işlem yapabilir ve çoğu sistemde transaction yönetimi içerebilir.

Saklı yordam SQL enjeksiyonunu önler mi?

Parametreler doğru şekilde kullanıldığında riski azaltır. Ancak yordamın içinde metin birleştirerek dinamik SQL üretiliyorsa enjeksiyon riski devam eder.

İlgili terimler