17 Ocak 2017 Salı

SP’lerin Çalıştırılması




SP’lerin performansı açısından ne sağladığını anlamak için kodlama aşamasından çalıştırılma aşamasına kadar bütün aşamaları çok iyi anlamak ve bilmek gerekmektedir.
Bu aşamaları şöyle sıralayabiliriz:
Ayrıştırma (Parsing),
Derleme (Compiling),
Çalıştırma (Executing).
Ayrıştırma işlemi sırasında SQL ifadelerinin geçerli olup olmadığı denetlenir.
Veritabanı içinde tablo, VIEW gibi başka nesneler varsa ve bunlara gönderme yapılıyorsa, bu nesnelere ait izinlerin olup olmadığı kontrol edilir.
Sorgu ağacı yada sıra ağacı denilen bir yapı ortaya çıkarılır.
Ardından SP’nin ismi sysobjects tablosuna kaydedilir. Daha sonra da syscomments tablosuna SP’nin kodları kaydedilir.

Derleme aşamasında, bir önceki aşamada oluşturulan sıra ağacı ele alınarak bir çalışma planı çıkartılır.
Bütün çalışma planı üzerinde güvenlik ve yetkiler denetlenir.
Bu çalışma planı, hangi aşamada hangi kontrollerin kullanılacağını veya tabloların kontrol edileceğini içermektedir.

Çalıştırma aşamasında, bir önceki aşamada elde edilen çalışma planı ele alınarak çalıştırma işlemi gerçekleştirilir.
Örneğin bir SELECT ifadesi kullanılmışsa sorgu veri işlemeden sorumlu DML yöneticisine iletilir.
Bir SP eğer ilk defa çağrılıyorsa, bu üç aşama gerçekleştirilir. Eğer daha önce çalıştırıldıysa sorgulama ağacı oluşturma işlemleri yapılmaz ve oldukça hızlı bir şekilde SP’nin derlenmiş hali çalıştırılır. Bunun nedeni SP’lerin derlenmiş birer nesne olmasıdır.