SQL Stored Procedure Nedir?

SQL Stored Procedure (Depolanmış Prosedür), SQL dilinde yazılmış ve veritabanında saklanan bir dizi SQL komutudur. Bir stored procedure, bir veya daha fazla SQL sorgusunun bir araya getirilmesiyle oluşturulmuş bir işlevsel birimlerdir. Bu prosedürler, bir defa yazıldıktan sonra veritabanına kaydedilir ve gerektiğinde tekrar kullanılabilir. Depolanmış prosedürler, uygulama mantığını veritabanı seviyesinde tutarak işlemleri daha verimli ve güvenli hale getirmeye olanak sağlar.

Bu yazıda, SQL stored procedure nedir, nasıl kullanılır ve avantajları nelerdir gibi konuları detaylı bir şekilde ele alacağız.


Stored Procedure Nedir?

Bir Stored Procedure, belirli bir işlem ya da bir dizi işlemi otomatikleştirmek amacıyla SQL dilinde yazılan bir komut setidir. Veritabanında saklandığı için, ihtiyaç duyulduğunda herhangi bir yerden çağrılabilir ve çalıştırılabilir. Stored procedure’ler, parametre alabilir, veritabanı işlemleri yapabilir ve sonuç döndürebilir.

Özellikleri:

  • Depolanmış prosedürler, SQL sorgularını bir arada saklamak ve tekrar kullanmak için kullanılır.
  • Genellikle veritabanı içinde saklanır ve merkezi olarak yönetilir.
  • Çalıştırılmadan önce derlenmez, fakat veritabanında bir kez derlenir ve önbelleğe alınır.

Stored Procedure Nasıl Oluşturulur?

Bir stored procedure oluşturmak için CREATE PROCEDURE komutunu kullanırız. İşte basit bir stored procedure örneği:

Stored Procedure Örneği:

CREATE PROCEDURE MusteriBilgileriniGetir
    @MusteriID INT
AS
BEGIN
    SELECT FirstName, LastName, Email
    FROM Musteriler
    WHERE MusteriID = @MusteriID;
END;

Bu prosedür, belirli bir MusteriID‘ye sahip müşterinin adını, soyadını ve e-posta adresini getiren bir işlem gerçekleştirir.

Stored Procedure Parametreleri:

  • IN Parametreleri: Prosedüre dışarıdan veri gönderilmesini sağlar.
  • OUT Parametreleri: Prosedürden veri döndürmek için kullanılır.
  • INOUT Parametreleri: Hem veri gönderir hem de veri döndürebilir.

Stored Procedure Nasıl Çalıştırılır?

Oluşturduktan sonra, stored procedure’ü çalıştırmak için EXEC komutunu kullanabiliriz. Örneğin, yukarıdaki prosedürü çalıştırmak için şu şekilde bir komut kullanırız:

EXEC MusteriBilgileriniGetir @MusteriID = 1;

Bu komut, MusteriID değeri 1 olan müşterinin bilgilerini döndürecektir.


Stored Procedure Kullanmanın Avantajları

1. Performans Artışı

Stored procedure’ler, SQL sorgularının önceden derlenip veritabanında saklanması sayesinde, her seferinde yeniden derlenmeye gerek duymaz. Bu da performans açısından büyük avantaj sağlar. Veritabanı server’ı sadece prosedürü çağırarak sorguları çalıştırır.

2. Yeniden Kullanılabilirlik

Bir stored procedure bir kez yazıldığında, tekrar tekrar kullanılabilir. Bu, uygulamanın farklı yerlerinden aynı işlemi çağırmak için kod tekrarı yapmaktan kaçınmanıza olanak tanır.

3. Güvenlik

Stored procedure kullanmak, doğrudan veritabanına erişimi kısıtlar ve sadece prosedür aracılığıyla veri işlemi yapılmasını sağlar. Bu, güvenliği artıran önemli bir faktördür.

4. Merkezi Yönetim

Stored procedure’ler veritabanında merkezi olarak saklandığı için, veri işlemleri üzerinde kontrol daha kolaydır. Ayrıca veritabanı adminleri, değişiklikleri merkezi bir yerden yönetebilir.

5. İşlem Hatası Yönetimi

Stored procedure’ler, hata kontrolü ve yönetimi için kullanılabilir. Eğer bir hata meydana gelirse, işlem sırasındaki değişiklikler geri alınabilir (rollback) ve hata mesajları kullanıcıya iletilir.

6. Veritabanı Bağımsızlığı

Birçok SQL veritabanı, stored procedure’leri destekler ve SQL kodunun büyük kısmı veritabanı türünden bağımsız olarak çalışır. Bu da taşınabilirlik açısından avantajlıdır.


Stored Procedure ile İlgili Kullanım Örnekleri

1. Parametreli Stored Procedure:

Aşağıdaki örnek, bir parametreli stored procedure’dür. Bu prosedür, belirli bir maaş limitinin üzerinde olan çalışanların bilgilerini getirir

CREATE PROCEDURE CalisanlariGetir
    @MaaşLimit INT
AS
BEGIN
    SELECT CalisanAdi, CalisanSoyadi, Maas
    FROM Calisanlar
    WHERE Maas > @MaaşLimit;
END;

Bu prosedür, çalışanların maaş limitini parametre olarak alır ve maaşı belirtilen limitin üzerinde olan çalışanların bilgilerini döndüren bir işlem gerçekleştirir.

2. İç İçe Stored Procedure:

Bir prosedür, diğer prosedürleri çağırabilir. Aşağıdaki örnekte, bir prosedür içerisinde başka bir prosedür çağrılmaktadır:

CREATE PROCEDURE YoneticiBilgileriVeCalisanlar
    @YoneticiID INT
AS
BEGIN
    -- Yöneticinin bilgilerini getir
    EXEC YoneticiBilgileriniGetir @YoneticiID;

    -- Yöneticinin altındaki çalışanları getir
    EXEC CalisanBilgileriniGetir @YoneticiID;
END;

Bu örnekte, iki farklı prosedür bir arada çalıştırılarak yöneticinin ve çalışanlarının bilgileri elde edilir.


Sonuç

SQL Stored Procedure‘ler, veritabanı işlemlerini düzenlemek, güvenli hale getirmek ve performansı artırmak için son derece güçlü araçlardır. Bir defa yazıldıktan sonra birçok yerde kullanılabilir, merkezi bir yönetim sağlar ve tekrar kullanılabilirliği ile büyük avantajlar sunar. Bu nedenle büyük ölçekli projelerde ve karmaşık veritabanı işlemlerinde sıklıkla kullanılır.

guest
0 Yorum
Eskiler
En Yeniler Beğenilenler
Inline Feedbacks
View all comments
0
YORUM YAPx