SlideShare a Scribd company logo
1 of 17
Download to read offline
Turgay Sahtiyan
Eurobank Tekfen – Veritabanı Yöneticisi
Microsoft MVP – SQL Server
SQL Server DBA – Eurobank Tekfen
Konuşmacı/Yazar/Lider - SQL Server Öncüleri
  E-mail : turgay@turgaysahtiyan.com
  Blog : www.turgaysahtiyan.com
10+ Webcast
MS Technet Türkiye - Whitepaper
SQLPass Turkey Chapter Leader
Microsoft MVP – SQL Server
 Index sayfalarında bırakılacak boş yeri
  belirlemek için kullanılır
 Amaç fragmantasyonu
  engellemek&geciktirmektir
 FILLFACTOR : Leaf Level
 PAD_INDEX : NonLeaf Level
 Sayfa sayısının artmasına neden olur




www.turgaysahtiyan.com/post/Indexe28099lerde-FILLFACTOR-ve-PAD_INDEX-Secenekleri.aspx
    + SQL Server 2008
    Where komutu ile Index’in alt kümesi
    Avantajları
      Sorgu performansını arttırır
          Filtered Stats
      Bakım maliyetlerini düşürür
      Disk maliyetini düşürür
    Filtered Index’te desteklenen özellikler
      Filtered Index’in kriteri değiştirilebilir.
      Missing Index DMV’leri Filtered Index önerisi
         toplamaz.
      Database Engine Tuning Advisor “not null” Filtered
         Index önerisi sunabilir.
      Filtered Index, online Index operasyonunu destekler.
      Table Hint’ler Filtered Index tarafından desteklenir.
http://www.turgaysahtiyan.com/post/Filtered-Index.aspx
 Indexed View’ler dönecek kayıt seti
  veritabanında tutulur.
 Indexed View’ler bütün SQL Server
  sürümlerinde bulunur.
 Otomatik olarak kullanılabilmeleri için
  Enterprise sürümü gerekir.
 OLAP sistemleri için idealdir.
 Bazı ön şartları bulunmaktadır.
http://www.turgaysahtiyan.com/post/OLAP-Sistemlerde-Indexed-View-ile-Sorgu-
Performansc4b1nc4b1-Arttc4b1rc4b1n.aspx
Filtered Index                                       Indexed View
Bir ya da birden fazla kolon için oluşturulabilir.   Bir ya da birden fazla kolon için oluşturulabilir.
                                                     Birden fazla tabloyu içerecek şekilde
Bir tablo üzerine oluşturulabilir.
                                                     oluşturulabilir.
SQL Server’ın bütün sürümlerinde kullanılabilir.     SQL Server’ın bütün sürümlerinde oluşturulabilir
                                                     ve sorgularda view kullanılarak index
                                                     kullanılabilir. Sorguda view kullanılmadan
                                                     index’in kullanılabilmesi için Enterprise sürümü
                                                     gerekir.
Unique olmayan Filtered Index oluşturulabilir.       Indexed View’ler Unique olmak zorundadır.
Tüm sistemler için idealdir.                         Genelde OLTP sistemlerinde kullanılması
                                                     tavsiye edilmez. OLAP sistemler için daha
                                                     uygundur.
Filtre olarak sadece çok basit (IS IS NOT = <>       Filtre olarak herhangi bir sınırlama yoktur.
!= > >= !> < <= !<)) operatörler kullanılabilir.     Kompleks filtreleme yapılabilir.
Online olarak Rebuild yapılabilir                    Online olarak Rebuild yapılamaz.

http://www.turgaysahtiyan.com/post/Filtered-Index-ile-Indexed-View-Arasc4b1ndaki-Farklar-
(Filtered-Index-vs-Indexed-Views).aspx
 + SQL Server 2005
 Amaç sorguyu cover edip lookup yapmamaktır.
 Covering Index : Lookup yapma ihtiyacı olmadan
  istenen tüm bilgileri leaf level page’lerinde bulunduran
  NonClustered Index’lerdir.
 Included kolonlar sadece Leaf Level Page’lerde
  bulunur.




                                          %1
         Composite Index                                Included Column Index
           25.21 MB                                            25.02 MB

http://www.turgaysahtiyan.com/post/SQL-Servere28099da-Index-Kavramc4b1.aspx
 Index Seek – Index Scan
 Index Seek Performance Tuning’de son adım
  mı?




http://www.turgaysahtiyan.com/post/Index-Seek-Performance-Tuning-Bitti-mi.aspx
 Case kullanımı yanlış Estimated Rows
  hesabına neden olur.
 Dolayısıyla optimal olmayan Query Plan
  oluşturulur.
 Bu durum da gereksiz IO kullanımından
  dolayı performans sıkıntısı doğurur.




http://www.turgaysahtiyan.com/post/Where-Blogunda-Case-Kullanmayc4b1n.aspx
 Collate kullanımı veriyi manupule eder.
 Veri manupule olduğu için index key’in
  sıralaması değişebilir.
 Bu yüzden Index Seek yerine Index Scan
  yapılması zorunluluğu doğar.




http://www.turgaysahtiyan.com/post/Collate-Kullanc4b1mc4b1-Index-Scan-Yapc4b1lmasc4b1na-
Neden-Olur.aspx
    Missing Index’lerin sorgulanması ve create edilecek
     index’e karar verilmesi.
    Create edilmesi düşünülen index’in ve bulunduğu
     tablonun analizi (Kayıt sayısı, diğer indexler-kolonlar
     vs.)
    Tablonun query stats’larına bakılıp ilgili missing
     index’e sebep olan script’in bulunması.
    Bulunan script’in şu anki IO değerlerinin
     sorgulanması.
    Index’in create edilmesi
    Sorgunun IO değerine tekrar bakılması ve ne kadar
     düştüğünün incelenmesi.
    Create edilen index’in kullanım istatistiklerinin monitor
     edilmesi

http://www.turgaysahtiyan.com/post/SQL-Server-e28093-Eksik-Indexe28099lerin-%28Missing-
Index%29-Belirlenip-Olusturulmasc4b1-Operasyonu.aspx
 DML işlemleri sonucu Index’ler fragmante
  olurlar.
 Belirli periyotlarla Index Fragmantasyonları
  analiz edilmelidir.
 Fragmante olan Index’ler Rebuild ya da
  ReOrganize edilmelidir.
   >%5 - <%30 ise ReOrganize
   >%30 ise Rebuild
 Çok hızlı fragmante olan Index’ler de
  FILLFACTOR değeri düşürülebilir
http://www.turgaysahtiyan.com/post/SQL-Server-e28093-Index-Maintenance-%28Index-
Defragmentation%29.aspx
 İstatistik, sorgu planı hazırlanırken hangi
  Index’e hangi yöntem ile erişileceğini
  belirlemek için kullanılır.
 Tablodaki kayıtların dağılımını içerir ve sorgu
  çalıştırılmadan kaç kaydın döneceğini
  tahminler.
 İstatistik delete-insert-update modifikasyon
  işlemleri ile güncelliğini yitirir.
 Doğru tahminleme yapabilmek için istatistiğin
  güncel olması çok önemlidir.
http://www.turgaysahtiyan.com/post/SQL-Servere28099da-Istatistik-(Statistic)-Kavramc4b1.aspx
 Query Planlar daha sonra kullanılmak üzere Plan
  Cache’de saklanır.
 Hem SP gibi parameterize olabilen sorgular için
  hem de Ad-Hoc sorgular için Query Plan saklanır.
 Ad-Hoc sorgularında parametre her değiştiğinde
  farklı bir plan saklanır.
 Çok fazla Ad-Hoc sorgu sahibi ortamlarda
  memory gereksiz yere işgal edilir.
 Optimize For Ad Hoc Workloads parametresi, ilk
  kez çalışan Ad-Hoc sorguların sadece belirli bir
  kısmını saklamak için kullanılır.
http://www.turgaysahtiyan.com/post/SQL-Server-e2809coptimize-for-ad-hoc-workloadse2809d-
Parametresi-ile-Memorye28099i-Daha-Randc4b1manlc4b1-Kullanmak.aspx
 Auto Growth ya da Restore gibi dosya allocate
  etme işlerinin daha hızlı yapılmasını sağlar.
 Dosya allocate edilirken 0’lar ile doldurulmaması
  içindir.
 Sadece data dosyalarında işe yarar.
 SQL Server servis hesabının Perform Volume
  Maintenance Tasks’a eklenmesi gerekir.
 Ekleme yapıldıktan sonra servis restart
  edilmelidir.
İşlem                                Boyut               Süre 1                Süre 2
Veritabanı Oluşturma                 20 GB              6 dakika              3 saniye
Restore                             240 GB              1.5 saat              37 dakika

http://www.turgaysahtiyan.com/post/Restore-Islemleriniz-Cok-mu-Uzun-Suruyor-%28Instant-File-
Initialization%29.aspx
 Auto Growth özelliği ile veritabanı dosyaları
  otomatik olarak büyütülür.
 Default büyüme değeri data dosyaları için 1
  MB’dır
 Bu şekilde çok fazla sayıda büyüme ihtiyacı
  olabilir.
 Bazı durumlarda büyümeler 1-5 sn arası sürebilir.
 Büyüme süresince ilgili dosyadan okuma ve
  yazma yapılamaz.
 Bu yüzden büyümelerin daha büyük miktarlarda
  (512 MB,1024 MB vs.) yapılması daha iyidir.
 Büyümelerin DBA kontrolünde sistemin en boş
  anında yapılması best practice’dir
http://www.turgaysahtiyan.com/post/Veritabanc4b1-Otomatik-Buyumeleri-Kontrolunuz-Altc4b1nda-
Olsun-%28Database-Auto-Growth%29.aspx
www.sqlserveronculeri.com
  www.turgaysahtiyan.com
turgay@turgaysahtiyan.com

More Related Content

Viewers also liked

Softchoice Webinar Series: VMware vSphere 5.1 Changes
Softchoice Webinar Series: VMware vSphere 5.1 ChangesSoftchoice Webinar Series: VMware vSphere 5.1 Changes
Softchoice Webinar Series: VMware vSphere 5.1 ChangesSoftchoice Corporation
 
Limewood Event - VMware
Limewood Event - VMware Limewood Event - VMware
Limewood Event - VMware BlueChipICT
 
System Center 2012 - January Licensing Update
System Center 2012 - January Licensing UpdateSystem Center 2012 - January Licensing Update
System Center 2012 - January Licensing UpdateSoftchoice Corporation
 
Nordic VMUG User Conference 2014 - Design VMware vCenter Server
Nordic VMUG User Conference 2014 - Design VMware vCenter ServerNordic VMUG User Conference 2014 - Design VMware vCenter Server
Nordic VMUG User Conference 2014 - Design VMware vCenter ServerAndrea Mauro
 
SQL Server 2012 ile Gelen Yeni Özellikler
SQL Server 2012 ile Gelen Yeni ÖzelliklerSQL Server 2012 ile Gelen Yeni Özellikler
SQL Server 2012 ile Gelen Yeni Özelliklerturgaysahtiyan
 
Findability Day 2015 Mattias Ellison - Findwise - Enterprise Search and fin...
Findability Day 2015   Mattias Ellison - Findwise - Enterprise Search and fin...Findability Day 2015   Mattias Ellison - Findwise - Enterprise Search and fin...
Findability Day 2015 Mattias Ellison - Findwise - Enterprise Search and fin...Findwise
 
VMUGIT Meeting Pisa 2015 - SDS secondo VMware: VSAN e VVOL
VMUGIT Meeting Pisa 2015 - SDS secondo VMware: VSAN e VVOLVMUGIT Meeting Pisa 2015 - SDS secondo VMware: VSAN e VVOL
VMUGIT Meeting Pisa 2015 - SDS secondo VMware: VSAN e VVOLgguglie
 
Site Recovery Manager - Una visione architetturale
Site Recovery Manager - Una visione architetturaleSite Recovery Manager - Una visione architetturale
Site Recovery Manager - Una visione architetturalegguglie
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochranedotCloud
 
vCenter and ESXi network port communications
vCenter and ESXi network port communicationsvCenter and ESXi network port communications
vCenter and ESXi network port communicationsAnimesh Dixit
 
VMworld 2014: Site Recovery Manager and vSphere Replication
VMworld 2014: Site Recovery Manager and vSphere ReplicationVMworld 2014: Site Recovery Manager and vSphere Replication
VMworld 2014: Site Recovery Manager and vSphere ReplicationVMworld
 
Virtual Space Race: How IT with The Right Stuff Creates a Competitive Advantage
Virtual Space Race: How IT with The Right Stuff Creates a Competitive AdvantageVirtual Space Race: How IT with The Right Stuff Creates a Competitive Advantage
Virtual Space Race: How IT with The Right Stuff Creates a Competitive AdvantageSoftchoice Corporation
 
vmware_site_recovery_manager_and_net_app_fas_v-series_se_technical_presentati...
vmware_site_recovery_manager_and_net_app_fas_v-series_se_technical_presentati...vmware_site_recovery_manager_and_net_app_fas_v-series_se_technical_presentati...
vmware_site_recovery_manager_and_net_app_fas_v-series_se_technical_presentati...Vinh Nguyen
 
Creating 3rd Generation Web APIs with Hydra
Creating 3rd Generation Web APIs with HydraCreating 3rd Generation Web APIs with Hydra
Creating 3rd Generation Web APIs with HydraMarkus Lanthaler
 
Getting secure in a mobile-first world with EMS
Getting secure in a mobile-first world with EMSGetting secure in a mobile-first world with EMS
Getting secure in a mobile-first world with EMSSoftchoice Corporation
 
How to hack VMware vCenter server in 60 seconds
How to hack VMware vCenter server in 60 secondsHow to hack VMware vCenter server in 60 seconds
How to hack VMware vCenter server in 60 secondsPositive Hack Days
 
InfoGrid Core Ideas
InfoGrid Core IdeasInfoGrid Core Ideas
InfoGrid Core IdeasInfoGrid.org
 
Full-on Hypermedia APIs with Hydra
Full-on Hypermedia APIs with HydraFull-on Hypermedia APIs with Hydra
Full-on Hypermedia APIs with HydraMarkus Lanthaler
 
Building a platform with Django, Docker, and Salt
Building a platform with Django, Docker, and SaltBuilding a platform with Django, Docker, and Salt
Building a platform with Django, Docker, and Saltbaremetal
 

Viewers also liked (20)

Softchoice Webinar Series: VMware vSphere 5.1 Changes
Softchoice Webinar Series: VMware vSphere 5.1 ChangesSoftchoice Webinar Series: VMware vSphere 5.1 Changes
Softchoice Webinar Series: VMware vSphere 5.1 Changes
 
Limewood Event - VMware
Limewood Event - VMware Limewood Event - VMware
Limewood Event - VMware
 
System Center 2012 - January Licensing Update
System Center 2012 - January Licensing UpdateSystem Center 2012 - January Licensing Update
System Center 2012 - January Licensing Update
 
Nordic VMUG User Conference 2014 - Design VMware vCenter Server
Nordic VMUG User Conference 2014 - Design VMware vCenter ServerNordic VMUG User Conference 2014 - Design VMware vCenter Server
Nordic VMUG User Conference 2014 - Design VMware vCenter Server
 
SQL Server 2012 ile Gelen Yeni Özellikler
SQL Server 2012 ile Gelen Yeni ÖzelliklerSQL Server 2012 ile Gelen Yeni Özellikler
SQL Server 2012 ile Gelen Yeni Özellikler
 
Findability Day 2015 Mattias Ellison - Findwise - Enterprise Search and fin...
Findability Day 2015   Mattias Ellison - Findwise - Enterprise Search and fin...Findability Day 2015   Mattias Ellison - Findwise - Enterprise Search and fin...
Findability Day 2015 Mattias Ellison - Findwise - Enterprise Search and fin...
 
VMUGIT Meeting Pisa 2015 - SDS secondo VMware: VSAN e VVOL
VMUGIT Meeting Pisa 2015 - SDS secondo VMware: VSAN e VVOLVMUGIT Meeting Pisa 2015 - SDS secondo VMware: VSAN e VVOL
VMUGIT Meeting Pisa 2015 - SDS secondo VMware: VSAN e VVOL
 
Site Recovery Manager - Una visione architetturale
Site Recovery Manager - Una visione architetturaleSite Recovery Manager - Una visione architetturale
Site Recovery Manager - Una visione architetturale
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken Cochrane
 
vCenter and ESXi network port communications
vCenter and ESXi network port communicationsvCenter and ESXi network port communications
vCenter and ESXi network port communications
 
VMworld 2014: Site Recovery Manager and vSphere Replication
VMworld 2014: Site Recovery Manager and vSphere ReplicationVMworld 2014: Site Recovery Manager and vSphere Replication
VMworld 2014: Site Recovery Manager and vSphere Replication
 
Virtual Space Race: How IT with The Right Stuff Creates a Competitive Advantage
Virtual Space Race: How IT with The Right Stuff Creates a Competitive AdvantageVirtual Space Race: How IT with The Right Stuff Creates a Competitive Advantage
Virtual Space Race: How IT with The Right Stuff Creates a Competitive Advantage
 
vmware_site_recovery_manager_and_net_app_fas_v-series_se_technical_presentati...
vmware_site_recovery_manager_and_net_app_fas_v-series_se_technical_presentati...vmware_site_recovery_manager_and_net_app_fas_v-series_se_technical_presentati...
vmware_site_recovery_manager_and_net_app_fas_v-series_se_technical_presentati...
 
Working Hard or Hardly Networked?
Working Hard or Hardly Networked?Working Hard or Hardly Networked?
Working Hard or Hardly Networked?
 
Creating 3rd Generation Web APIs with Hydra
Creating 3rd Generation Web APIs with HydraCreating 3rd Generation Web APIs with Hydra
Creating 3rd Generation Web APIs with Hydra
 
Getting secure in a mobile-first world with EMS
Getting secure in a mobile-first world with EMSGetting secure in a mobile-first world with EMS
Getting secure in a mobile-first world with EMS
 
How to hack VMware vCenter server in 60 seconds
How to hack VMware vCenter server in 60 secondsHow to hack VMware vCenter server in 60 seconds
How to hack VMware vCenter server in 60 seconds
 
InfoGrid Core Ideas
InfoGrid Core IdeasInfoGrid Core Ideas
InfoGrid Core Ideas
 
Full-on Hypermedia APIs with Hydra
Full-on Hypermedia APIs with HydraFull-on Hypermedia APIs with Hydra
Full-on Hypermedia APIs with Hydra
 
Building a platform with Django, Docker, and Salt
Building a platform with Django, Docker, and SaltBuilding a platform with Django, Docker, and Salt
Building a platform with Django, Docker, and Salt
 

Similar to SQL Server Performans İpuçları

İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 07
İleri Seviye T-SQL Programlama - Chapter 07İleri Seviye T-SQL Programlama - Chapter 07
İleri Seviye T-SQL Programlama - Chapter 07Cihan Özhan
 
Embarcadero Veri Tabanı Ürünleri
Embarcadero Veri Tabanı ÜrünleriEmbarcadero Veri Tabanı Ürünleri
Embarcadero Veri Tabanı ÜrünleriBTGrubu
 
Sql egitimi-gaziantep
Sql egitimi-gaziantepSql egitimi-gaziantep
Sql egitimi-gaziantepsersld61
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19Cihan Özhan
 
Sql egitimi-fatih
Sql egitimi-fatihSql egitimi-fatih
Sql egitimi-fatihsersld61
 
Sql egitimi-adana
Sql egitimi-adanaSql egitimi-adana
Sql egitimi-adanasersld61
 
Sql egitimi-levent
Sql egitimi-leventSql egitimi-levent
Sql egitimi-leventsersld61
 
Sql egitimi-mecidiyekoy
Sql egitimi-mecidiyekoySql egitimi-mecidiyekoy
Sql egitimi-mecidiyekoyserpilscd69
 
Sql egitimi-pendik
Sql egitimi-pendikSql egitimi-pendik
Sql egitimi-pendiksersld61
 
Sql egitimi-avcilar
Sql egitimi-avcilarSql egitimi-avcilar
Sql egitimi-avcilarsersld61
 
Sql gorsel-egitim
Sql gorsel-egitimSql gorsel-egitim
Sql gorsel-egitimsersld61
 
Sql egitimi-antalya
Sql egitimi-antalyaSql egitimi-antalya
Sql egitimi-antalyasersld61
 
Sql egitimi-beykoz
Sql egitimi-beykozSql egitimi-beykoz
Sql egitimi-beykozsersld61
 
Sql egitimi-atasehir
Sql egitimi-atasehirSql egitimi-atasehir
Sql egitimi-atasehirsersld61
 
Sql egitimi-konya
Sql egitimi-konyaSql egitimi-konya
Sql egitimi-konyasersld61
 
6.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V26.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V2Ermando
 
Sql egitimi-ankara
Sql egitimi-ankaraSql egitimi-ankara
Sql egitimi-ankarasersld61
 
Sql egitimi-bagcilar
Sql egitimi-bagcilarSql egitimi-bagcilar
Sql egitimi-bagcilarsersld61
 
İleri Seviye T-SQL Programlama - Chapter 08
İleri Seviye T-SQL Programlama - Chapter 08İleri Seviye T-SQL Programlama - Chapter 08
İleri Seviye T-SQL Programlama - Chapter 08Cihan Özhan
 

Similar to SQL Server Performans İpuçları (20)

İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11
 
İleri Seviye T-SQL Programlama - Chapter 07
İleri Seviye T-SQL Programlama - Chapter 07İleri Seviye T-SQL Programlama - Chapter 07
İleri Seviye T-SQL Programlama - Chapter 07
 
Embarcadero Veri Tabanı Ürünleri
Embarcadero Veri Tabanı ÜrünleriEmbarcadero Veri Tabanı Ürünleri
Embarcadero Veri Tabanı Ürünleri
 
Sql egitimi-gaziantep
Sql egitimi-gaziantepSql egitimi-gaziantep
Sql egitimi-gaziantep
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19
 
Sql egitimi-fatih
Sql egitimi-fatihSql egitimi-fatih
Sql egitimi-fatih
 
Sql egitimi-adana
Sql egitimi-adanaSql egitimi-adana
Sql egitimi-adana
 
Sql egitimi-levent
Sql egitimi-leventSql egitimi-levent
Sql egitimi-levent
 
Sql egitimi-mecidiyekoy
Sql egitimi-mecidiyekoySql egitimi-mecidiyekoy
Sql egitimi-mecidiyekoy
 
Sql egitimi-pendik
Sql egitimi-pendikSql egitimi-pendik
Sql egitimi-pendik
 
Sql egitimi-avcilar
Sql egitimi-avcilarSql egitimi-avcilar
Sql egitimi-avcilar
 
Sql gorsel-egitim
Sql gorsel-egitimSql gorsel-egitim
Sql gorsel-egitim
 
Sql egitimi-antalya
Sql egitimi-antalyaSql egitimi-antalya
Sql egitimi-antalya
 
Sql egitimi-beykoz
Sql egitimi-beykozSql egitimi-beykoz
Sql egitimi-beykoz
 
Sql egitimi-atasehir
Sql egitimi-atasehirSql egitimi-atasehir
Sql egitimi-atasehir
 
Sql egitimi-konya
Sql egitimi-konyaSql egitimi-konya
Sql egitimi-konya
 
6.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V26.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V2
 
Sql egitimi-ankara
Sql egitimi-ankaraSql egitimi-ankara
Sql egitimi-ankara
 
Sql egitimi-bagcilar
Sql egitimi-bagcilarSql egitimi-bagcilar
Sql egitimi-bagcilar
 
İleri Seviye T-SQL Programlama - Chapter 08
İleri Seviye T-SQL Programlama - Chapter 08İleri Seviye T-SQL Programlama - Chapter 08
İleri Seviye T-SQL Programlama - Chapter 08
 

SQL Server Performans İpuçları

  • 1. Turgay Sahtiyan Eurobank Tekfen – Veritabanı Yöneticisi Microsoft MVP – SQL Server
  • 2. SQL Server DBA – Eurobank Tekfen Konuşmacı/Yazar/Lider - SQL Server Öncüleri E-mail : turgay@turgaysahtiyan.com Blog : www.turgaysahtiyan.com 10+ Webcast MS Technet Türkiye - Whitepaper SQLPass Turkey Chapter Leader Microsoft MVP – SQL Server
  • 3.  Index sayfalarında bırakılacak boş yeri belirlemek için kullanılır  Amaç fragmantasyonu engellemek&geciktirmektir  FILLFACTOR : Leaf Level  PAD_INDEX : NonLeaf Level  Sayfa sayısının artmasına neden olur www.turgaysahtiyan.com/post/Indexe28099lerde-FILLFACTOR-ve-PAD_INDEX-Secenekleri.aspx
  • 4. + SQL Server 2008  Where komutu ile Index’in alt kümesi  Avantajları  Sorgu performansını arttırır  Filtered Stats  Bakım maliyetlerini düşürür  Disk maliyetini düşürür  Filtered Index’te desteklenen özellikler  Filtered Index’in kriteri değiştirilebilir.  Missing Index DMV’leri Filtered Index önerisi toplamaz.  Database Engine Tuning Advisor “not null” Filtered Index önerisi sunabilir.  Filtered Index, online Index operasyonunu destekler.  Table Hint’ler Filtered Index tarafından desteklenir. http://www.turgaysahtiyan.com/post/Filtered-Index.aspx
  • 5.  Indexed View’ler dönecek kayıt seti veritabanında tutulur.  Indexed View’ler bütün SQL Server sürümlerinde bulunur.  Otomatik olarak kullanılabilmeleri için Enterprise sürümü gerekir.  OLAP sistemleri için idealdir.  Bazı ön şartları bulunmaktadır. http://www.turgaysahtiyan.com/post/OLAP-Sistemlerde-Indexed-View-ile-Sorgu- Performansc4b1nc4b1-Arttc4b1rc4b1n.aspx
  • 6. Filtered Index Indexed View Bir ya da birden fazla kolon için oluşturulabilir. Bir ya da birden fazla kolon için oluşturulabilir. Birden fazla tabloyu içerecek şekilde Bir tablo üzerine oluşturulabilir. oluşturulabilir. SQL Server’ın bütün sürümlerinde kullanılabilir. SQL Server’ın bütün sürümlerinde oluşturulabilir ve sorgularda view kullanılarak index kullanılabilir. Sorguda view kullanılmadan index’in kullanılabilmesi için Enterprise sürümü gerekir. Unique olmayan Filtered Index oluşturulabilir. Indexed View’ler Unique olmak zorundadır. Tüm sistemler için idealdir. Genelde OLTP sistemlerinde kullanılması tavsiye edilmez. OLAP sistemler için daha uygundur. Filtre olarak sadece çok basit (IS IS NOT = <> Filtre olarak herhangi bir sınırlama yoktur. != > >= !> < <= !<)) operatörler kullanılabilir. Kompleks filtreleme yapılabilir. Online olarak Rebuild yapılabilir Online olarak Rebuild yapılamaz. http://www.turgaysahtiyan.com/post/Filtered-Index-ile-Indexed-View-Arasc4b1ndaki-Farklar- (Filtered-Index-vs-Indexed-Views).aspx
  • 7.  + SQL Server 2005  Amaç sorguyu cover edip lookup yapmamaktır.  Covering Index : Lookup yapma ihtiyacı olmadan istenen tüm bilgileri leaf level page’lerinde bulunduran NonClustered Index’lerdir.  Included kolonlar sadece Leaf Level Page’lerde bulunur. %1 Composite Index Included Column Index 25.21 MB 25.02 MB http://www.turgaysahtiyan.com/post/SQL-Servere28099da-Index-Kavramc4b1.aspx
  • 8.  Index Seek – Index Scan  Index Seek Performance Tuning’de son adım mı? http://www.turgaysahtiyan.com/post/Index-Seek-Performance-Tuning-Bitti-mi.aspx
  • 9.  Case kullanımı yanlış Estimated Rows hesabına neden olur.  Dolayısıyla optimal olmayan Query Plan oluşturulur.  Bu durum da gereksiz IO kullanımından dolayı performans sıkıntısı doğurur. http://www.turgaysahtiyan.com/post/Where-Blogunda-Case-Kullanmayc4b1n.aspx
  • 10.  Collate kullanımı veriyi manupule eder.  Veri manupule olduğu için index key’in sıralaması değişebilir.  Bu yüzden Index Seek yerine Index Scan yapılması zorunluluğu doğar. http://www.turgaysahtiyan.com/post/Collate-Kullanc4b1mc4b1-Index-Scan-Yapc4b1lmasc4b1na- Neden-Olur.aspx
  • 11. Missing Index’lerin sorgulanması ve create edilecek index’e karar verilmesi.  Create edilmesi düşünülen index’in ve bulunduğu tablonun analizi (Kayıt sayısı, diğer indexler-kolonlar vs.)  Tablonun query stats’larına bakılıp ilgili missing index’e sebep olan script’in bulunması.  Bulunan script’in şu anki IO değerlerinin sorgulanması.  Index’in create edilmesi  Sorgunun IO değerine tekrar bakılması ve ne kadar düştüğünün incelenmesi.  Create edilen index’in kullanım istatistiklerinin monitor edilmesi http://www.turgaysahtiyan.com/post/SQL-Server-e28093-Eksik-Indexe28099lerin-%28Missing- Index%29-Belirlenip-Olusturulmasc4b1-Operasyonu.aspx
  • 12.  DML işlemleri sonucu Index’ler fragmante olurlar.  Belirli periyotlarla Index Fragmantasyonları analiz edilmelidir.  Fragmante olan Index’ler Rebuild ya da ReOrganize edilmelidir.  >%5 - <%30 ise ReOrganize  >%30 ise Rebuild  Çok hızlı fragmante olan Index’ler de FILLFACTOR değeri düşürülebilir http://www.turgaysahtiyan.com/post/SQL-Server-e28093-Index-Maintenance-%28Index- Defragmentation%29.aspx
  • 13.  İstatistik, sorgu planı hazırlanırken hangi Index’e hangi yöntem ile erişileceğini belirlemek için kullanılır.  Tablodaki kayıtların dağılımını içerir ve sorgu çalıştırılmadan kaç kaydın döneceğini tahminler.  İstatistik delete-insert-update modifikasyon işlemleri ile güncelliğini yitirir.  Doğru tahminleme yapabilmek için istatistiğin güncel olması çok önemlidir. http://www.turgaysahtiyan.com/post/SQL-Servere28099da-Istatistik-(Statistic)-Kavramc4b1.aspx
  • 14.  Query Planlar daha sonra kullanılmak üzere Plan Cache’de saklanır.  Hem SP gibi parameterize olabilen sorgular için hem de Ad-Hoc sorgular için Query Plan saklanır.  Ad-Hoc sorgularında parametre her değiştiğinde farklı bir plan saklanır.  Çok fazla Ad-Hoc sorgu sahibi ortamlarda memory gereksiz yere işgal edilir.  Optimize For Ad Hoc Workloads parametresi, ilk kez çalışan Ad-Hoc sorguların sadece belirli bir kısmını saklamak için kullanılır. http://www.turgaysahtiyan.com/post/SQL-Server-e2809coptimize-for-ad-hoc-workloadse2809d- Parametresi-ile-Memorye28099i-Daha-Randc4b1manlc4b1-Kullanmak.aspx
  • 15.  Auto Growth ya da Restore gibi dosya allocate etme işlerinin daha hızlı yapılmasını sağlar.  Dosya allocate edilirken 0’lar ile doldurulmaması içindir.  Sadece data dosyalarında işe yarar.  SQL Server servis hesabının Perform Volume Maintenance Tasks’a eklenmesi gerekir.  Ekleme yapıldıktan sonra servis restart edilmelidir. İşlem Boyut Süre 1 Süre 2 Veritabanı Oluşturma 20 GB 6 dakika 3 saniye Restore 240 GB 1.5 saat 37 dakika http://www.turgaysahtiyan.com/post/Restore-Islemleriniz-Cok-mu-Uzun-Suruyor-%28Instant-File- Initialization%29.aspx
  • 16.  Auto Growth özelliği ile veritabanı dosyaları otomatik olarak büyütülür.  Default büyüme değeri data dosyaları için 1 MB’dır  Bu şekilde çok fazla sayıda büyüme ihtiyacı olabilir.  Bazı durumlarda büyümeler 1-5 sn arası sürebilir.  Büyüme süresince ilgili dosyadan okuma ve yazma yapılamaz.  Bu yüzden büyümelerin daha büyük miktarlarda (512 MB,1024 MB vs.) yapılması daha iyidir.  Büyümelerin DBA kontrolünde sistemin en boş anında yapılması best practice’dir http://www.turgaysahtiyan.com/post/Veritabanc4b1-Otomatik-Buyumeleri-Kontrolunuz-Altc4b1nda- Olsun-%28Database-Auto-Growth%29.aspx