Sorgu Çözümleyici (Query Analyzer)

Eyl 06, 2013
Sorgu Çözümleyici bir programlama aracıdır. Sorguları ve diğer "Transact SQL" ifadelerini oluşturmak ve işletmek "Enterprise Manager" içinde mümkün olsa da, "Enterprise Manager" daha çok veritabanı yönetimi için tasarlanmış bir araçtır. Start (Başlat) -> All Programs (Programlar) -> Microsoft SQL Server (Microsoft SQL Sunucusu) -> Query Analyzer (Sorgu Çözümleyici) tıklanır. "Query Analyzer", Başlat menüsünden açılabildiği gibi "Enterprise Manager" içinde Tools (Araçlar) menüsünden seçilerek de başlatılabilir. Bu durumda "Query Analyzer" gerekli bağlantı bilgisini "Enterprise Manager" dan alacaktır.  

Query Analyzer, Başlat menüsünden ya da Start (Başlat) -> Run (Çalıştır) -> isqlw komutu ile açıldığında, mevcut sunuculardan bağlanmak istenilen sunucunun ve güvenlik kipinin seçilmesini sağlayan Connect to SQL Server (SQL Sunucusuna Bağlan) iletişim kutusu ile karşılaşılır. Bir ağa bağlı olunmadığından ve bilgisayarda tek sunucu kopyası bulunduğundan sunucu listesinde sadece " . " (nokta) imi bulunmaktadır. " . " (nokta) imi yereldeki sunucuyu göstermektedir.

  

  1. Query Analyzer açıldığında iki pencere görünür: Object Browser (Nesne Listeleyicisi) ve Query (Sorgu) penceresi.



    Nesne Listeleyicisi'nin, Objects (Nesneler) sekmesi "Enterprise Manager" ın konsol ağacına benzeyen hiyerarşik bir görünümdedir. Veritabanları ve diğer nesneler hiyerarşik bir şekilde listelenmişlerdir. Ancak konsol ağacından farklı olarak sadece veritabanı nesneleri listelenir. "Logins", "DTS" gibi öğeler görüntülenmez. Ayrıca tablolar, sistem tabloları ve kullanıcı tabloları olmak üzere iki klasöre ayrılmıştır. Tabloların; sütunları, dizinleri, kısıtlamaları, bağımlılıkları ve tetikleyicileri tablonun isminin altında yine hiyeraşik bir şekilde listelenir. Nesne Listeleyicisi'nin, Common Objects (Ortak Nesneler) klasörü bir dizi ortak Transact-SQL işlevlerini içerir. Nesne Listeleyicisi'nde, herhangi bir tablonun üzerine gelip, farenin sağ tuşu ile tıklayarak açılan menüde Open (Aç) komutu seçilir. Tablo, Query Designer (Ortak Nesneler) 'da açıldığı gibi bütün satırları ile açılır. Nesne Listeleyicisi'nin Templates (Şablonlar) sekmesi, programlama şablonlarının hiyerarşik bir görünümünü içerir.

    Sorgu penceresi, sorgu tasarlayıcısının SQL penceresine benzemektedir. Ancak SQL penceresinden daha güçlü ve daha esnektir. SQL penceresi Transact SQL ifadelerinin bir bölümünü işlerken, sorgu penceresinde geçerli herhangi bir Transact SQL ifadesi işlenebilir. Transact SQL ifadelerini işlemek için "Query Analyzer" araç çubuğundan işlem yapmak istenilen veritabanı seçilir. Sorgu penceresinde çalışırken "use veritabanı_ismi" ifadesi ile de işlem yapmak istenilen veritabanı seçilir.

    USE Northwind 
    SELECT * FROM Categories
  2. Sorgu yazıldıktan sonra araç çubuğundan Execute Query (Sorguyu Yürüt) sekmesine tıklanır ya da kısayol olarak F5 tuşuna basılarak sorgu çalıştırılır.



    Sorgu penceresinin alt tarafında iki sekme görünür. Grid (Izgara) ve Messages (Mesajlar). Grid (Izgara) sekmesinde sorgunun sonuçları görüntülenir. Messages (Mesajlar) sekmesi tıklandığında, sorgudan kaç satırın etkilendiği bilgisi görüntülenir; ya da sorguda hata olduğu durumda hata mesajı görüntülenir. Sorgu sonuçlarını ayrı bir sekmede görüntülemek için, Tools (Araçlar) menüsünden Options (Özellikler) seçeneği tıklanır. Açılan iletişim kutusunda "Editör" sekmesi tıklanır ve "Tabbed Mode" seçeneği seçilir. Sorgu penceresinin alt tarafına "Grid" ve "Messages" sekmelerinin yanına "Editör" sekmesi eklenir. Böylece kod yazılan pencere ve sonuç penceresi farklı sekmelerde görüntülenir.

    Sorgu tasarlayıcısının sunduğu kolaylıklardan biri de tablo, görünüm, saklı yordam gibi mevcut nesneler için aramaya imkan sağlamasıdır. Araç çubuğundanObject Search (Nesne Ara) sekmesine tıklanır ya da kısayol olarak F4 tuşuna basılır. Nesne arama iletişim kutusu çıkacaktır. Object Name (Nesne İsmi) bölümüne, bulunmak istenen nesnenin adı yazılır. Database (Veritabanı) bölümünden aramanın yapılacağı veritabanı seçilir. "Hit Limit" bölümüne görüntülenecek sonuç sayısı girilir. Son olarak, aranan nesnenin türü neyse (Sistem Tablosu, Kullanıcı Tablosu, Görünüm vs) seçilip Find Now (Şimdi Bul)düğmesi tıklanır. Arama yapılan veritabanında, girilen isimde, seçilen nesneden kaç tane varsa listelenecektir.

    Sorgu penceresi "sürükle bırak" özelliğini desteklemektedir. Nesne Listeleyicisinden herhangi bir nesneyi tutup sürükleyerek sorgu penceresine bırakıldığında nesnenin adı sorgu penceresine yapıştırılır. Ancak parametreleri yapıştırılmaz. Bir nesneyi parametreleri ile sorgu penceresinde görmek için, nesnenin, örneğin bir tablonun üzerine gelip farenin sağ tuşuna tıklanır. Açılan menüden Script Object to New Windows As bölümüne gelinir, Create  (Oluştur) komutu tıklanır. Nesneyi oluşturan Transact SQL ifadeleri ayrı bir sorgu penceresinde görüntülenir.

    "Editör", "Grid" ve "Messages" görüntülemelerine ek olarak sorgu tasarlayıcısının sorgu penceresi üç ek görüntülemeye daha sahiptir:

    o SQL Server bir sorguyu çalıştırırken yerine getirdiği görevlerin grafiksel gösterimini görüntüleyen "Execution Plan (Yürütme Planı)"
    o Sorgunun sunucu tarafında çalışması hakkındaki ayrıntılı bilgileri gösteren "Server Trace (Sunucu İzleme)"
    o Sorgunun istemci tarafında çalışması hakkındaki ayrıntılı bilgileri gösteren "Client Statistics (İstemci İstatistikleri)"
  3. "Query Analyzer"ın sorgu menüsünden bu görüntülemeleri açmak için gerekli bölümler tıklanır.

     

    USE Northwind 
    SELECT * FROM Customers AS C
    INNER JOIN Orders AS O
    ON C.CustomerID=O.CustomerID 
  4. Sorgu çalıştırıldığında, sorgu penceresinin alt tarafına üç yeni sekme eklenir.



    Execution Plan sekmesi tıklandığında SQL Server çalıştırılırken yaptığı işlemlerin grafiksel görüntüsü görüntülenecektir. Veritabanını daha hızlı hale getirmek için bu iş yükünü en aza indirmek, yani çalışan sorguyu iyileştirmek gerekir. Yürütme Planı, çalışan sorgunun grafiksel görünümünü görüntülemenin yanında sorguyu iyileştirmek için bir düzenek sağlar. Sorguyu en iyi hale getirmek için dizinler ekleyebilir veya sorgunun kullandığı istatistikleri güncelleştirilebilir. Sorgudaki bu iş yükünü en aza indirmek için ilgili tabloya bir dizin eklenebilir.

    Server Trace penceresi, sorgu çalıştırıldığında sunucu tarafından çalıştırılan komutları gösterir. Sunucu izlenimleri için "SQL Profiler" aracı da kullanılabilir.

    Client Statistics penceresi, sorgunun istemci tarafındaki etkisini görüntüler. 
    Verilen istatistikler üç bölüme ayrılmıştır:

    o Çalıştırılan Transact SQL ifadesi ve etkilenen satır sayısı hakkında bilgi veren     Application Profile Statistics(Uygulama Profili İstatistikleri)
    o Oluşturulan ağ trafiği hakkında bilgi veren Network Statistics (Ağ İstatistikleri) (Ağ istatistikleri bir ağa bağlı olmadan yerel sunucuda çalışılsa da görüntülenir.)
    o İstemci ya da sunucu üzerinde gecikme olup olmadığını belirlemeye yardımcı olan Time Statistics (Zaman İstatistikleri)


    Index Tuning Wizard (Dizin Ayarlama Sihirbazı):
  5. Veritabanını çözümleyerek başarımı en iyi hale getirmek için öneriler sunar. Query Analyzer'ın Query (Sorgu) menüsünden  Index Tuning Wizard seçeneği tıklanır.




    SQL komut dosyası, bir dosyada depolanmış Transact SQL ifadeleri kümesidir. Herhangi bir Transact SQL ifadesi komut dosyası içinde yer alabilir. Komut dosyası içindeki SQL ifadeleri toplu işler olarak gruplanır. Her toplu iş birbirinden "go" ifadesi ile ayrılır. Bir komut dosyası "go" komutunu içermiyorsa tek bir toplu iş olarak çalıştırılır. 


    USE Northwind 
    SELECT C.CategoryID, O.CategoryID FROM Categories AS C
    INNER JOIN Orders AS O 
    ON C.CategoryID=O.CategoryID 
    GO 
    SELECT * FROM Categories


    Yukardaki kod kaydedildikten sonra komut dosyası açılır ve açılan pencerede yazılan komutlar görünür. Oluşturulan bu komut dosyası sorgu tasarlayıcısında açılır ve araç çubuğundan New Query (Yeni Sorgu) düğmesi tıklanır (kısayol "Ctrl + N") yeni bir sorgu penceresi açılır. Sonra yine araç çubuğundan Load SQL Script (SQL Betiği Yükle) sekmesi tıklanır ve komut dosyası, kaydedildiği konumdan seçilerek Open (Aç) sekmesine tıklanır. Komut dosyasında yazılan komutlar, "Editör" sekmesinde görüntülenir. İstenirse komut dosyası açılıp kodlar kopyalanarak sorgu penceresinin editör bölümüne de yapıştırılabilir. Araç çubuğundan Execute Query (Sorguyu Yürüt) sekmesine tıklanır ve sonuçları görüntülenir.