Stored Procedure Nedir?

Gökhan YAVAŞ
gokhanyavas
Published in
2 min readApr 13, 2017

Yapısal Yordamlar anlamına gelmektedir. Bu yazıda ben kendilerini SP olarak isimlendireceğim. SP belirli bir işlevi, görevi yerine getirmek için özellikle yapılandırılmış bir veya daha fazla tablo, sp vs. ile ilişki kod parçacıklarıdır. Kısaca Derlenmiş SQL cümleciği diyebiliriz.

SP’ler veritabanında saklanan SQL ifadeleridir. Programlama dillerinde olduğu gibi parametreler içerir. Bu parametrelere göre çalışıp sonuçları listeler.

Bir SP içinde başka SP’leri çağırıp çalıştırabiliriz. Veritabanlarında saklandığından dolayı daha hızlı çalışırlar. Normal kod ile çağırmak yerine kodla sadece SP’ye parametre gönderip çağırmak performans açısından mükemmeldir.

SP’ler ilk çalıştıklarında derlenirler. Tekrar çalıştıklarında derlenmezler. Bu işlemde performans açısından güzel bir olaydır.

SQL komutu çağırıldığında ayrıştırma, derleme ve çalıştırma aşamalarından geçmektedir. SP’ler daha önceden derlendikleri için, normal kullanılan bir SQL sorgusundan çok daha performanslı olup ayrıca ağ trafiğini de yormayan yapısıyla programlamada çok kullanılan bir kod parçacığıdır.

SP’nin bir diğer özelliği ise programlama dillerine ait bazı terimleri içermesidir.

Büyük veritabanı içeren bir projede çalışıyorsanız kesinlikle SP ile çalışmalısınız. Zaten dikkat ettiyseniz bir çok yazılım ilanında da SP bilen kişiler tercih sebebidir gibi ibareler görmüşsünüzdür.

Stored Procedure Tipleri ve Yapısı

İki kısımda inceleyeceğiz.

  1. Stored Procedure Tipleri
  2. SP’lerin Genel Yapısı

Stored Procedure Tipleri

Extended Stored Procedure: Genellikle *.dll şeklinde prosedürlerdir.

CLR Stored Procedure: SQL Server 2005 sonrasında CLR ortamında herhangi bir dili kullanarak kodlanan SP’lerdir.

System Stored Procedure: Genellikle sp_ ön ekiyle başlarlar ve hepsi master veri tabanında tutulan SP’lerdir.

Kullanıcı Tanımlı SP: Kullanıcıların tanımladığı SP’lerdir.

SP’lerin Genel Yapısı

Bir SP’nin yapısı aşağıdaki biçimdedir.

CREATE  PROCEDURE or CREATE PROC  prosedür_adı
[ WITH Seçenekleri ]
AS
SQL ifadeleri
GO

Gördüğünüz gibi bir SP’ye Create Proc ve Create Procedure deyimi ile başlıyoruz ve ardından prosedüre bir isim veriyoruz. With Seçeneklerinin olduğu kısımda SP’de bulunan kaynak kodlarını gizlemek için kullanıyoruz. Bu kısımı kullanmak zorunda değiliz. SQL ifadelerinin olduğu kısımdaysa ilgili tanımlama ve sorgular yazılır. GO ifadesiyse prosedür tamamlanmış olur. Bu ifadeyi kullanmak zorunda değiliz fakat yazılması ciddi hataların önüne geçer.

SP’nin oluşturulması için çalıştırılması gerektiğini unutmayın. Oluşturulan bir SP’ye tekrar çalıştırmak için aşağıdaki komutu kullanırız.

EXEC prosedür_adi

SP’lerin bulunduğu konum ilgili görseldeki gibidir.

SP ile ilgili genel bilgilere değindik. Bir sonraki makalede görüşmek üzere.

--

--