﻿ select « Şekercioğlu Günlüğü
select Etiketine sahip yazılar.
SQL PROCEDURE MACERASI -6
Burak ŞEKERCİOĞLU SQL / Oracle / Access	 select, Stored Procedure
Şu ana kadar anlatılanlarda hep DCL (Data Control Language) ile bir şeyleri kontrol edip, ilgili veritabanı üzerinde çeşitli işlemler yaptık.
Bu yapılan işlemler sonucunda da olumsuz durum oluşmuş ise hata mesajı döndürdük.
Peki ya tek adımlık işlemler yerine bir takım recordset yapıları üzerinden veri okumaya yönelik çalışmak isteseydik?
Aslına bakarsanız bu konu, önceden anlattıklarımızdan çok daha basit bir yapıya sahiptir ve her şey sizin HAYAL GÜCÜNÜZE bağlıdır.
SQL konusuna ilk başladığım günlerde daha VIEW nedir? Bilmezken. Yazmış olduğum programlarda uzun uzun SELECT cümleciklerini
Sonrasında VIEW yaratmayı ve yaratılan sorguların yükünün sunucu tarafına bindirilmesini gördüm. Evet, sorgularım hızlanmıştı.
Demek ki bu VIEW dedikleri güzel bir şeydi 🙂
Ama zaman içersinde benim sorgular gittikçe büyüdü, tablolarımdaki veriler 100 binlerce satır halini almaya başladı ve hep daha
hızlısını istedikçe VIEW konusu da bana yetmemeye başladı.
Çünkü VIEW üzerinden bir veriyi alabilmek için öncelikle tüm ilgili verileri kapsayacak şekilde bir recordset alanı oluşturulmalı
ve yaratılan bu recordset üzerinden de WHERE cümlecikleri ile istenilen şartlar seçilmeliydi.
Gözden kaçan ise VIEW ilk yaratıldığında ya da çağrıldığında veritabanı üzerinde ilgili ne varsa önce çantasına dolduruyor,
ardından da sizden ilgili şartlar ile bu çantadakileri seçmenizi istiyordu.
Durum böyle olunca da program ciddi ölçüde yavaşlıyordu.
Daha sonra bu işi Stored Procedure ile nasıl yaparım? Konusuna geldim. Prosedür mantık olarak dışarıdan gelen parametreler
doğrultusunda bir sorgu yapacak ve çıktısını programa ulaştıracaktı.
— Author: Burak SEKERCIOGLU
— Create date: 12/05/2011
— Description: SP TEST-6
CREATE PROCEDURE [sp_test] (@tip int)
kurumex LEFT OUTER JOIN sektorler ON kurumex.sektor = sektor.id
Yukarıdaki kodlardan da görebileceğiniz gibi prosedürümüze dışarıdan sadece @tip bilgisi gönderiliyor ve o da bu veriye göre
Sanayici, İthalatçı, İhracatçı ayrımı yaparak sadece ilgili verileri listeden çekiyor.
Diğer türlü ya ayrı ayrı view tasarımı yapılacaktı ya da tek view üzerinden WHERE ile sorgulama yapılacaktı.
Devamı SQL Procedure Macerası – 7