SQL Server SELECT Nasıl Çalışır?

SQL Server’a üzerinde çalıştırılan bir SELECT sorgu hangi aşamalardan geçip, sonuca nasıl ulaşıldığına göz atalım.

SQL Server Database Engine üzerinde bulunan bileşenler

  • Query Optimizer: Mantıksal sorgu gereksinimi için verimli fiziksel bir execution plan bulmaktan sorumlu bileşendir.
  • Language Processing: Sorgunun syntax olarak doğruluğunu kontrol eder, sorguda geçen tabloları ve varsa GROUP BY ‘ı ya da gerekliliğini inceler.
  • Query Executor: Query Optimizer’ın bulduğu planı çalıştırmakla yükümlüdür.
  • Storage Engine: Fiziksel depolama alanına, lock ve trasaction servislerine erişimi sağlar.
  • SQL-OS: İş parçacıkları, memory yönetimi ve zamanlanmış görevlerin yönetildiği kısımdır.

SELECT Deyiminin Çalıştırılması

SQL Server’a gönderilen bir SELECT deyimi aşağıdaki adımların uygulanmasının ardından sonucu döndürmektedir.

  1. Query Parse; Yazım kullarına uygunluğu denetlenir ve SELECT deyimi logical parçalara ayrılır.
  2. Query Tree; Ayrılan logical parçaları, sonuç kümesini sağlayacak şekilde bir ağaç yapısı oluşturur.
  3. Execution Plan; Query Tree’yi kullanarak Query Optimizer kaynak tablo(lar)dan dataya erişebileceği birden fazla yolu tespit eder, her birine estimate cost değeri atar ve en az cost’a sahip olan plan seçilir.
  4. Relational EngineQuery Executor: Seçilen Execution Plan’ı çalıştırır ve ilgili adımlardaki istenen data’ları Storage Enginden talep eder. Storage Engine tarafından gönderilen dataları result set olacak şekilde formatlar ve result set’i client’a iletir.

Not : Plan oluşturulup sorgu sonucu dönüldükten sonra, SQL Server kullanılan Execution Plan’ı Plan Cache adı verilen bellekte saklar ve bir sonraki kullanım için hazırda bekletmektedir.

Yorum Gönderin

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.