Recent comments

None


İçerik Ara











Yasal Uyarı
Bu sitede sunulan tüm bilgi ve dökümanlar Turgay Sahtiyan tarafından yazılmaktadır. Yazıların kaynak göstermek şartıyla kullanılması serbesttir.

© Copyright 2009-2013
Takvim
<<  Ekim 2017  >>
PaSaÇaPeCuCuPa
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345
Keywords

Nisan ayında yaptığım “SQL Server’da Index Kavramı–Performance Tuning ve Query Optimization” başlıklı web seminerimi SQL Server Öncüleri topluluğu altında perşembe günü tekrar yapıyorum.

İlgili duyuruya aşağıdaki linkten erişebilirsiniz.

http://www.sqlserveronculeri.com/10/EventSchedule/191/sql-server’da-index-kavrami--performance-tuning-ve-query-optimization-web-semineri.aspx

Kayıt olmak için aşağıdaki bağlantıyı kullanabilirsiniz.

https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032495105&culture=tr-TR

Not : Blog haricinde, faydali gördügüm yazilari ve linkleri twitter adresimden paylasiyorum. Beni twitter'da takip etmek için : twitter.com/turgaysahtiyan


Dünyada pek çok ülkede faaliyet gösteren en büyük SQL Server topluluğu SQLPass’ın Türkiye şubesi olarak kurulan SQL Server Öncüleri Topluluğu www.sqlserveronculeri.com adresinde yayın hayatına başladı.

Kurucu liderleri arasında bulunduğum SQL Server Öncüleri topluluğunun ana hedefleri liderler tarafından şu şekilde belirlendi;

  • SQL Server ve etrafındaki teknolojiler konusunda hem teknik hem de iş odaklı bilgi paylaşmak
  • Bu konuda öncelikli olarak başvurulan bir portal olmak
  • SQL Server ve etrafındaki teknolojiler konusunda iş gücünü daha ileri taşımak
  • SQL Server ve etrafındaki teknolojiler konusunda Türkçe içerik geliştirmek
  • Konuya ilgi duyan BT çalışanlarının arasındaki etkileşimi arttırmak

Gönüllülük esasına dayalı olarak hareket SQL Server Öncüleri Topluluğu portal üzerinde içerik paylaşımına başlamış olup, verilecek web seminerler ve on-site seminerler ile çalışmalarına devam edecektir.

Tam kesinleşmemiş tarihe göre 21 Ekim 2011 tarihinde paralel session’lar ile lansmanı gerçekleştirilecek SQL Server Öncüleri Topluluğu SQL Server’a ilgi duyan BT çalışanlarını tek çatı altında toplamayı hedeflemektedir.

Tüm okurlarımı bu yeni oluşumun içerisinde görmek beni sevindirecektir.

 

Turgay Sahtiyan

Not : Blog haricinde, faydali gördügüm yazilari ve linkleri twitter adresimden paylasiyorum. Beni twitter'da takip etmek için : twitter.com/turgaysahtiyan


SQL Server 2011 Denali ile beraber gelen CONCAT fonksiyonu string ifadeleri birleştirmek için kullanılabilir.

[more]

CONCAT fonksiyonunun syntax’ı şu şekildedir;

CONCAT ( string_value1, string_value2 [, string_valueN ] )

Minimum 2 string değerin parametre olarak verilmesi gerekir. Aksi halde fonksiyon hata alacaktır.

Kullanımı şu şekildedir;

SELECT CONCAT ('Turgay ','Sahtiyan ', 'SQL ', 'Server ', 'DBA') AS Result

 

Result
===========
Turgay Sahtiyan SQL Server DBA

 

İyi Çalışmalar

Turgay Sahtiyan

Not : Blog haricinde, faydali gördügüm yazilari ve linkleri twitter adresimden paylasiyorum. Beni twitter'da takip etmek için : twitter.com/turgaysahtiyan


Bugünkü yazımda SQL Server 2011 Denali ile beraber gelen 2 yeni mantıksal operatörden bahsedeceğim.

[more]

CHOOSE

Belirli bir listeden index parametresi ile verilmiş olan değeri getirir. Syntax’ı şu şekildedir;

CHOOSE ( index, val_1, val_2 [, val_n ] )

Kullanım örneklerine bakarsak;

SELECT CHOOSE ( 1, 'Turgay', 'Sahtiyan', 'SQL', 'Server', 'DBA' ) AS Result;

 

Result
=============
Turgay

SELECT CHOOSE ( 5, 'Turgay', 'Sahtiyan', 'SQL', 'Server', 'DBA' ) AS Result;

 

Result
=============
DBA

 

IIF

Parametre olarak verilen ifadenin doğru olduğu durumda 1. Değeri yanlış olduğu durumda 2. Değeri döndürür. Syntax’ı şu şekildedir;

IIF ( boolean_expression, true_value, false_value )

Kullanım örneklerine bakacak olursak;

SELECT IIF(1=1,'EŞİT','EŞİT DEĞİL') AS Result

Result
=============
EŞİT

 

SELECT IIF(4>5,'4, 5''ten büyüktür','4, 5''ten büyük değildir') AS Result

Result
=============
4, 5'ten büyük değildir

 

İyi Çalışmalar

Turgay Sahtiyan

Not : Blog haricinde, faydali gördügüm yazilari ve linkleri twitter adresimden paylasiyorum. Beni twitter'da takip etmek için : twitter.com/turgaysahtiyan


Ya da data dosyalarındaki otomatik büyüme (auto growth) işlemleri normalden fazla zaman mı alıyor? Eğer öyle ise muhtemelen SQL Server 2005 ile gelen Instant File Initialization (Anında Dosya Oluşturulması) özelliğini kullanmıyorsunuzdur.

[more]

SQL Server 2005 ile gelen ve şu ana kadar gördüğüm kadarıyla çok az DBA tarafından bilinen Instant File Initialization, data dosyalarının allocate edilirken 0’lar ile doldurulmadan anında allocate edilmesidir.

Dosyalar verilirken 0’lar ile doldurulmadığı için disaster recovery gibi veritabanlarının sıfırdan restore edildiği durumlarda oldukça fazla zaman kazandırmaktadır.

Ayrıca gene data dosyalarında yapılan otomatik büyüme (Auto Growth) işlemlerinde de yeni verilen alanlar 0’lar ile doldurulmayacağı için işlem daha hızlı tamamlanacaktır.

Instant File Initialization özelliği SADECE data dosyalarında işe yarar. Log dosyalarının doğası gereği verilen alanın 0’lar ile doldurulması gerekmektedir.

Instant File Initialization Nasıl Aktif Edilir?

Instant File Initialization özelliğinin kullanılabilmesi için SQL Server service hesabının Local Group Policy’de Perform Volume Maintenance Tasks’a eklenmesi gerekmektedir. Bu ekrana Start>>All Programs>>Administrative Tools yolundan ulaşabilirsiniz. Servis hesabı eklendikten sonra servisin kapatılıp açılması gerekir.

Karşılaştırma

Makalemin bu kısmında Instant File Initialization özelliğinin aktif ve pasif olduğu durumlarda 20GB’lık yeni bir veritabanı oluşturma işleminin ne kadar sürdüğünü karşılaştıracağız.

İlk olarak Perform Volume Maintenance Task’tan SQL Server service hesabını çıkartıp, servisi kapatıp açalım ve aşağıdaki veritabanı oluşturma script’ini çalıştıralım.

CREATE DATABASE [IFI_Deneme] ON  PRIMARY 
	( NAME = N'IFI_Deneme', FILENAME = N'D:\DATA\IFI_Deneme.mdf' , SIZE = 20971520KB , FILEGROWTH = 1024KB )
 LOG ON 
	( NAME = N'IFI_Deneme_log', FILENAME = N'D:\DATA\IFI_Deneme_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)

 

Instant File Initialization aktif değilken veritabanı oluşturulma işlemi 6 dakika 8 saniye sürdü.

Şimdi aynı işlemi Perform Volume Maintenance Tasks’a SQL Server service hesabını ekledikten ve servisi kapatıp açtıktan sonra tekrar yapalım.

Bu şekilde yani Instant File Initialization aktif iken veritabanı oluşturulma işlemi 3 saniye sürdü.

Neredeyse 120 kat daha hızlı. Süper değil mi?

240 GB'lık bir veritabanı üzerinde yaptığım restore denemesinin sonuçları ise şu şekilde;

Instant Instant File Initialization Aktif değil iken : 1.5 saat

Instant Instant File Initialization Aktif iken : 37 dakika 34 saniye

Not : Blog haricinde, faydali gördügüm yazilari ve linkleri twitter adresimden paylasiyorum. Beni twitter'da takip etmek için : twitter.com/turgaysahtiyan