SQL SERVER MANAGEMENT STUDIO Hızlı ve kolay bir şekilde SQL Server yönetimini gerçekleştiren ve en fazla kullanılan grafiksel bir araçtır. SQL Server 2012 içinde bulunan birçok veri tabanı yönetim işlemleri için kullanılır. SQL Server 2012 içinde bulunan tüm bileşenlerin yönetim, yapılandırma ve ayarlarını yapabilir. Bu saydıklarımızın yanı sıra Reporting Services, SQL Server Integration Services(SSIS), SQL Mobile veri tabanları yapılarını da içerir. Ayrıca Transact-SQL, XMLA, MDX ve DMX ifadeleri oluşturmak için görsel araçlara da sahiptir. Microsoft Visual Studio Framevvork'ünü kullanmakla beraber, Visual Studio'nun birçok fonksiyonunu içerir. Eski sürümlerde bir script veya query yazarken veri tabanı ile bağlantı olması gerekmekteydi. SQL Server Management Studio da bu işler için veri tabanı ile aktif bağlantıya gerek yoktur.
SQL Server program grubu altından SQL Server Management Studio'ya ulaşılabilir. BİR SERVER NASIL KAYIT EDİLİR? Normal olarak ilk kurulumda bir SQL Server otomatik olarak kayıt olur. Ancak başka bir SQL Server'ı kaydetmek için veya çeşitli sebeplerden dolayı kayıt fonksiyonunu değiştirmek için aşağıdaki bilgilere sahip olunması gerekir. Kayıt edilecek SQL Server Instance adını alır. SQL Server Instance yapısı için uygulanacak Authentication metodu seçilir. Authentication yapısında kullanılacak geçerli kullanıcı adı ve şifre tanımlanır. Bundan sonra aşağıdaki adımlar takip edilerek, kayıt gerçekleştirilir.
1) SQL Server Management Studio içinde var olan instance üzerinde sağ tuşa basılarak Register seçeneğine tıklanır. 2) Gelen iletişim kutusuna gerekli bilgiler girilerek Save butonuna basılır. Varsayılan olarak açılmasını istediğimiz veri tabanı gibi ayarlar için Connection Properties sekmesi kullanılabilir. Bundan sonraki tüm örneklerimizde OKTAY Instance'ını kullanacağız.
OBJECT EXPLORER: SOL Server veri tabanı içindeki nesnelerin yönetimi için kullanılır. Bir ağaç yapısı şekilde bu yönetim imkanını sunar. Eğer görünmüyorsa ilk olarak View menüsünden Object Explorer seçeneğine tıklamamız gerekir. Ağaç yapısını açmak için ise Instance adı üzerine iki kez tıklanır.
SQL Management Studio yapısının bir özelliği olan Object Brovvser ile yapacaklarımızı kısaca listeleyecek olursak; Veri tabanı oluşturma ve yönetimi. Veri tabanı özelliklerinin görüntülenmesi ve değiştirilmesi. Veri tabanının yeniden yapılandırılması için script oluşturulması. Veri kaynakları oluşturma. İzin ve ayrıcalıkların kontrolü. Replikasyon ayarları. Data Transformation Services(DTS) oluşturma. SQL Server log dosyalarının görüntülenmesi. SQL Server Agent yönetimi. V Databases: SQL Server'ın kullandığı sistem veri tabanları ile kullanıcıların oluşturduğu veri tabanlarının ayrı ayrı listelendiği ve yapılandırıldığı klasördür.
Bu veri tabanlarını, Sistem ve Kullanıcı veri tabanları olmak üzere iki ana grupta toplayabiliriz. Sistem,veri tabanları(system Databases); SQL Server'a ait tüm bilgileri tutar ve SQL Server, bu veri tabanları ile sisteme ait tüm yönetim işlemlerini gerçekleştirir. Kullanıcıların oluşturduğu veri tabanları ise; direkt Databases klasörü altında toplanır.
System kategorisinde toplanan veri tabanlarının görevlerini kısaca açıklayalım: Master: Kullanıcı hesapları ve sistem hata mesajları gibi izlenecek bilgileri tutar. Model: Yeni oluşturulacak veri tabanları için, temel kalıp oluşturur. Yani yeni veri tabanı, özelliklerini bu yapıdan alır.
Tempdb: Geçici tablo bilgilerinin ve diğer geçici bilgilerin tutulduğu veri tabanıdır. Msdb: Zamanlama (scheduling) ve yapılan iş bilgilerini tutar.
Veri Tabanı Nesneleri: Var olan bir kullanıcı tanımlı veri tabanının başındaki (+) artıyı açtığımızda veya üzerine bir kez tıkladığımızda, veri tabanına ait objelerin listesi karşımıza gelir. Kitabımızda tüm bu nesneleri detaylı olarak inceleyeceğiz. Ancak bu bölümde kısaca açıklayalım
Tables: Kayıtların tutulduğu objedir. Tanımlanan sütun (Column) özelliklerine göre, satırlarında (Row) kayıtları tutar. Views: Birden fazla tabloyu basitçe ilişkilendirerek, kayıtların görüntülenmesinde kullanılır.
Database Diagrams: Tablo ilişkilerini izlemek için kullanılır. Synonyms: Nesnelere alternatif isimler vermek' için kullanılır. Programmability: Bünyesinde birçok programlama yapıları içerir. Bunlardan Stored Procedure ile birden çok Transact-SQL komutlarının kullanılması ile etkili sorgulama işlemlerini gerçekleştirebilriz. Functions klasörü ile SQL Server içinde bulunan fonksiyonlar yetersiz kaldığı zaman, oluşturacağımız fonksiyonları depolarız. Rules klasörü içinde, veri tabanı için özel kural tanımlamaları yapılır. Defaults klasörü ile boş sütunların alacağı değeri belirler. Database Triggers içinde veri tabanı Trigger'ları ve Assembly klasörü içinde ise CLR yapısından gelen.dil kayıtları bulunur
Service Broker: Sistemdeki tanımlanan Service Broker servisine ait özellikleri içerir.
Storage: Depolama ayarlarını içerir. Security: Veri tabanı için güvenlik bilgilerinin tutulduğu önemli klasörlerden biridir. Bunun altında bulunan Users klasörü içinde bu veri tabanına erişecek yetkili kullanıcıların listesini tutar. Roles, kullanıcılar için yerleşik hakların bulunduğu grupları barındırır. Schemas klasöründe veri tabanına ait şema yani sahiplik bilgileri tutulur, (dbo aynı zamanda bir şemadır.) Symmetric Keys klasöründe ise alternatif isim anahtarları bulunur.
Repiication: Replikasyon oluşturma ve dağıtıcı sunucu ile ilgili ayarların yapıldığı klasördür. Management: Log dosyaları, Monitör, SQL Mail, Transaction Coordinator Ayarlarının gerçekleştiği klasördür.
SQL Server Agent: SQL Server Agent'e ait işlemleri yönetmek için kullanılır. Server Object: Yedekleme ve diğer sunucu nesnelerini bulundurur. Object Explorer Butonları Hemen üstünde bulunan butonların sırası ile yaptıkları işlemler ise; Connect: Bir SQL Server Instance, Analysis Services, Integration Services, Reporting Services, SQL Mobile(SQL Server Compact) gibi yapılara pratik olarak bağlanmak için kullanılır. Seçim sonrası gelen iletişim kutusunda gerekli ayarlar yapılarak bağlantı sağlanır.
Disconnect: Aktif olan bağlantıyı kapatmak için kullanılır. Stop: Açılan klasörün içinde dinamik olarak birçok eleman bulunabilir, bu durum da açılma süresini arttırır. Bunu kapatmak için kullanılır. Refresh: En son bilgilerin güncellenmesi için kullanılır. Filter: Özel kıstaslara göre üsteleme yapmak için kullanılan butondur.
SQL CONFIGURATION MANAGER SQL Server 2012 birçok servis içerir. Bu servislerin yapılandırılmasını ve yönetilmesini bir sistem yöneticisinin bilmesi gerekir. Ayrıca Client uygulamaların bağlantılarında uygun ayarlar için bu servisler gerekir. SQL Configuration Manager yapabileceklerimiz; SQL Server Servislerinin Yönetebiliriz. Servislerin Kullandığı Hesaplarda Değişiklik Yapabiliriz. Server Network Protokollerini Yönetebiliriz. Client Network Protokollerini Yönetebiliriz. Ulaşmak için SQL Server program grubundan yararlanılır.
İçinde üç ana yapı bulunur. SQL SERVER SERVICES SQL Server 2012 servislerine ulaşmak için kullanılır. Bu servisleri durdurabilir, başlatabilir veya askıya alabiliriz. Ayrıca özelliklerini değiştirebiliriz. Buradan bir servis seçildikten sonra ekranın sağ kısmından; üzerinde sağ tuşa basarak başlatma(start), durdurma(stop).askıya alma(pause) işlemleri yapılacağı gibi, askıya alınan bir servisi başlatmak için Resume ve servisi durdurup/ başlatmak için ise Restart seçeneklerinden yararlanılır. Servis özelliklerini değiştirmek için Özellikler seçeneğine tıklanır.
Ayrıca Advanced sekmesinden de daha farklı özelliklerini görebilir ve yapılandırabiliriz.
SQL SERVER NETVVORK CONFIGURATION SOL Server 2012 Instance'ların cevaplayacağı Client istekleri için gerekli network protokollerini düzenlemek için kullanılır. Sağ tarafta bulunan protokol üzerinde sağ tuşa basılarak aktif(enable) yapılabileceği gibi, eğer Client isteklerine cevap vermesi istenmez ise pasif(disable) seçeneği ile devre dışı bırakılabilir.
Özellikler seçeneğinden ise özellikleri değiştirilebilir. Bu kısımda yapılan değişikliklerin devreye girmesi için SOL Server Instance'ın yeniden başlatılması gerekir. SQL NATIVE CLIENT 11.0 CONFIGURATION SQL Server 2012 Servisleri ile ilişkiye geçen bilgisayarlar üzerinde çalışan uygulamalarda Client protokollerini yapılandırmak için kullanılır.
Sağ taraftan seçilen protokol üzerinde sağ tuşa basılarak aktif ve pasif yapılabileceği gibi, Properties seçeneği ile de özellikleri değiştirilebilir.
TRANSACT-SQL(T-SQL) SORGULAR SQL Server Management Studio ile Transact SQL sorgularını oluşturup, çalıştırıp, düzenleyebiliriz. SQL Server sorguları oluşturmak için takip edeceğimiz adımlar; 1) File/ New menüsünden Database Engine Query seçeneğine tıklanır.
Veya hemen üst kısmında bulunan New Query butonuna tıklanabilir. 2) T-SQL ifadesi hangi veri tabanına uygulanacak ise, bu veri tabanı açılır listeden seçilir. 3) Uygulanacak SQL ifadesi yazılarak Execute butonuna veya F5 tuşuna basılır.
4) Şimdi de bir veri tabanına aynı anda bağlanacak kullanıcı sayısını 10 ile sınırlandıran T-SQL ifadesini yazalım. Bunun için aşağıdaki ifadeyi yazarak çalıştırmak yeterli olacaktır. 5) Eğer bir veri tabanının içindeki tabloları görmek istersek, aşağıdaki ifadeyi yazarak çalıştırmamız gerekir. SOLUTION EXPLORER Bir veya birden fazla SQL Server Management Studio projelerini bir arada tutmak için kullanılır. Bağlantı tanımlamaları ve sorguların oluşturularak kaydedilebildiği bu* kısımda; birbiriyle ilişkili ve uygun yapılar tasarlanabilir. Bunun için: View menüsünden Solution Explorer seçeneğine tıklanır.
2) Sağ tarafta açılan pencerede Solution üzerinde sağ tuşa basarak Add/ New Project seçeneğine tıklanır.
3) Üç kalıp içerir. Biz ilk seçeneği seçerek bir isim verelim ve OK butonuna basalım. SQL Server Scripts: Transact-SQL sorguları oluşturmak, düzenlemek, kaydetmek ve bunları SQL Server bağlantıları ile ilişkilendirmek için kullanılır. Analysis Services Scripts: MDX, DMX ve XMLA sorgularını, oluşturmak, düzenlemek, kaydetmek ve Analysis" bağlantılarla ilişkilendirmek için kullanılır. SQL Server Compact Edition Scripts: Transact-SQL sorguları oluşturmak, düzenlemek, kaydetmek ve bunları SQL Server Mobil bağlantıları ile ilişkilendirmek için kullanılır. 4) Bağlantı için; Connections klasörü üzerinde sağ tuşa basılarak New
Connection seçeneğine tıklanır. 5) Sorgular için Queries klasörü üzerinde sağ tuşa basılarak New Query seçeneğine tıklanır. Connect butonuna basıldığında. sql uzantılı sorgu ekranı otomatik olarak oluşur. 6) Properties penceresinde sorgunun ismi Name kısmından değiştirilebilir. 7) Gerekli sorgular yazılıp File menüsünden Save All seçeneğine tıklandığında; bu Solution içinde bulunan tüm yapılar ilk oluşumda belirlediğimiz klasör içine kaydedilir.
DİĞER T-SQL İFADELERİ AWE: Dynamic Address Windowing Extensions(AWE) hafıza sistemine destek verir. 32 bit uygulama yapılarında kullanılan bu özellik anal hafıza ile fiziksel hafızanın yapılandırılması temeline dayanır. Windows Server 2003 sürümüne göre maksimum kullanabileceği fiziksel hafıza miktarı 4GB, 32 GB ve 64 GB olarak değişir. SQL Server 2008'i awe enabled seçeneğini kullanarak AWE yapısına uygun hale getirebiliriz. Ayrıca min server memory ve max server memory seçeneklerini ayarlayarak SQL Server 2012'in AWE yapısını, hafıza gerektiğinde dinamik olarak kullanmasını sağlayabiliriz. Aşağıdaki örnek; bunun nasıl sağlanacağını göstermektedir; sp_configure 'show advanced options', 1 RECONFIGURE GO sp_configure 'awe enabled',1 RECONFIGURE GO
Hot-Add Memory: AWE hafıza yapısını kullandığımız zaman SQL Server 2012, Windows Server 2003'ün desteklediği hott-add memory yapısını da kullanabilir. Böylelikle bilgisayarı kapatıp/ açmanıza gerek kalmadan fiziksel hafızayı bilgisayarına ekleyebilir. SQL Server 2005 de eğer ihtiyacı varsa bu hafızayı otomatik olarak kullanır. Bunu kullanabilmek için SQL Server 2012 en az Windows Server 2003'ün Enterprise veya DataCenter sürümlerinde çalışması ve awe enabled seçeneği -h parametresi ile yapılandırılması gerekir. CPU: SQL Server 2012 içinde affinity mask seçeneğini yeniden yapılandırmak, servisi kapatıp/ açmanıza gerek kalmadan yapmak mümkündür. Böylelikle SQL Server 2005 bir işlemcinin kullanacağı iş sayısını otomatik olarak zamanlayabilir. Veri Depolama: SQL Server 2012 ile yeni veri depolama seçenekleri, veri tipleri gelmiştir. Ayrıca bir satır boyutu arttırılmıştır. XML veri tiplerinden biri olup, istenirse XML şema yapısı ile ilişkilendirilebilir. Snapshot Isolation: SQL Server 2012 in sağladığı yeni transaction isolation level, snapshot olarak adlandırılır. Bu yapı çakışma olmadığı sürece transaction sırasında verilerin diğer kullanıcılar tarafından okunmasına izin verir. Çakışma sırasında kilitleme yapar. Aktif hale getirmek veya kapatmak için ON, OFF cümlecikleri ALLOW_SNAPSHOT_ISOLATION seçeneği ile beraber kullanılır. Bu seçenek CREATE DATABASE veya ALTER DATABASE ifadeleri içinde kullanılmalıdır. Örneğin aşağıdaki ifade "pelin" isimli veri tabanında bu özelliği aktif hale getirir. ALTER DATABASE pelin SET ALLOW_SNAPSHOT_ISOLATION ON Snapshot aktif hale getirildikten sonra aşağıdaki şekilde uygulamalar için ayarlanabilir. SET TRANSACTION ISOLATION LEVEL SNAPSHOT
SQLCMD: Her zaman SQL Server Management Studio gibi grafiksel araçları kullanarak Transact-SQL ifadelerini çalıştıramayız. Örnek; zamanlanmış toplu Scriptler gibi otomatik kurulumlar. İşte bu tür işlemleri komut satırından yapmak için geliştirilen yönetim aracına SOLCMD denir. Aynı zamanda diğer Transact-SQL ifadelerini çalıştırmak için de kullanabiliriz. Komut satırından sorgulamalar için harcayacağımız süre, her zaman grafiksel yönetim araçlarına göre daha kısadır. SOLCMD, bağlantıda OLE DB yapısını kullanır. Önceki sürümler ODBC veya DB kütüphanesini kullanırdı. Eski osql yapısının geliştirilmiş hali olması ile beraber, server'a bağlanarak problem çözümüne destek veren DAC(Dedicated Administrator Connection) yapısına da destek vermektedir. Kullanılan yaygın komutları listeleyecek olursak; KOMUT GO[sayı] AÇIKLAMA Her ifadeden sonra çalıştırmak için kullanılması gereken komuttur. Eğer bir toplu komut uygulanacak ise [sayı] parametresi ile kaç komut çalıştırılacağı ayarlanabilir. Varsayılan komut çalıştırma değeri 1 dir. RESET Cache içinde bulunan ifadenin Cache'den silinmesini sağlar. QUIT Sqlcmd komut alanından çıkmak için kullanılır. :r dosyaadı Dosya içeriğini ifade olarak değerlendirmek için okur.
:ServerList :List Connect server adı [\instance][timeout] [kullanıcıad][şifre] Ağ üzerinde çalışan tüm SQL Server bilgisayarlarının listesini verir. Cache içindeki ifadenin içeriğini gösterir. Server'a bağlanmak için kullanılan komuttur. :On Error[exit ignore] Komutun çalışması sırasında meydana gelecek hatanın sonucunda; davranışın ne olacağını belirleyen komuttur. Exit parametresi kullanılırsa hata olduğu zaman komut satırından çıkar, ignore parametresinde ise hata olunca hata mesajını gösterir, ancak kalan kodları çalıştırmaya devam eder. :SetVar değişken adı :Help Bir Script oluşturulurken kullanılacak özel değişkenleri belirlemek için kullanılır. Tüm komutlar hakkında bilgi almak için kullanılır. Kullanılan yardımcı seçenekler; -? Sqlcmd seçenekleri hakkında kısa yazılım yardım bilgisi verir. -L[c]: Ağ üzerinde bulunan server bilgisayarların listesini verir. Eğer c kullanılırsa, liste başlıksız olur. -U kullanıcı adı[-p şifre]: Kullanıcı adı ve şifre bilgilerini vermek için kullanılan SQL Authentication seçeneğidir. -E: Bu seçenek ise Windows Authentication güvenlik sisteminde kullanılmalıdır. adı. -S server adı[\instance adi]: Server'a bağlanmak için server adı veya instance