Bir tabloda bulunan istatistiklerin en son ne zaman güncellendiğini ve ilgili istatistiğin hangi index yada alan üzerinde olduğunu aşağıdaki T-SQL ile bulabilirsiniz:
select
object_name(s.object_id) as TableName,
ic.name as ColumnName,
stats_date(s.object_id, s.stats_id) as StatisticsUpdate,
s.name as StatisticsName
from sys.stats s inner join sys.stats_columns sc on s.object_id=sc.object_id and s.stats_id=sc.stats_id
inner join sys.columns ic on ic.object_id=sc.object_id and ic.column_id=sc.column_id
where s.object_id=object_id(SchemaAdi.TabloAdi')
-- Yukarıdaki T-SQL SQL Server 2012/2014 sürümlerinde test edildi.
#DBA #SQL #Server #Performance #Tuning
Index etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Index etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
2016-03-09
2015-02-01
2014-08-01
Sıkıştırılmış(Compressed) Tabloları ve Indeksleri Bulma
-- Sıkıştırılmış(compressed) tabloları ve indeksleri aşağıdaki T-SQL ile bulabilirsiniz:
2014-07-23
Index İstatistikleri Ne Zaman Sıfırlanır?
SQL Server 2012 öncesi versiyonlarda bir tablonun index istatistiği SQL Server servisi restart olduğunda yada index drop/create olduğunda sıfırlanırdı. SQL Server 2012 ile birlikte bu durumlara ek olarak index rebuild olduğunda da index istatistiği sıfırlanıyor. Index istatistiğine bakılırken SQL Server 2012 ile birlikte gelen bu değişikliğin göz önüne alınmasında yarar var.
2013-12-11
Partition Scheme Bulma
Veritabanızda bulunan tabloların ve indekslerin bulunduğu partition scheme'ya aşağıdaki T-SQL ile bulabilirsiniz:
2012-02-20
Bir Tablodaki İndekslerin Page Sayısını Bulma
Bu yazımda sizlere, zaman zaman benim de ihtiyaç duyduğum bir konuya değineceğim: Bir tabloda bulunan indeklerin her birisinin toplam page sayısı bulma.
2011-10-20
SQL Server Öncüleri Lansmanı
Tarih : 21 Ekim 2011 Cuma
Saat : 09.00 - 16.15
Yer : Microsoft İstanbul Ofisi
Jüpiter Toplantı Salonu
Bellevue Residance
Aydın Sok No:7 Levent
Küresel çapta faaliyet gösteren, en büyük SQL Server topluluğu SQL Pass’ın (Professional Association for SQL Server) Türkiye Şubesi olarak çalışmaya başlayan SQL Server Öncüleri, tanıtım toplantısına sizleri de davet ediyor.
Saat : 09.00 - 16.15
Yer : Microsoft İstanbul Ofisi
Jüpiter Toplantı Salonu
Bellevue Residance
Aydın Sok No:7 Levent
Küresel çapta faaliyet gösteren, en büyük SQL Server topluluğu SQL Pass’ın (Professional Association for SQL Server) Türkiye Şubesi olarak çalışmaya başlayan SQL Server Öncüleri, tanıtım toplantısına sizleri de davet ediyor.
2011-03-27
Fragmente Indeksleri Rebuild Etme
İndekslerin fragmente olması istenmeyen bir durumdur. Fragmente olan indexlerin belirli periyotlarda rebuild/reorganize edilmesi gerekir.
Veritabanızda fragmente oranı %30 un üzerinde üzerinde olan indeksleri bulup rebuild eden T-SQL kod aşağıdaki gibidir:
declare @SQLstmt varchar(max)
set @SQLstmt =''
select @SQLstmt =@SQLstmt + 'alter index ' + i.name + ' on ' + object_name(s.object_id ) + ' rebuild with(online=on);--pagecount:' + cast(s.page_count as varchar(16)) + '
'
from sys.dm_db_index_physical_stats(db_id(db_name()),null,null,null,null) s
inner join sys.indexes i on s.object_id=i.object_id and s.index_id=i.index_id
where s.avg_fragmentation_in_percent>30
and s.index_id>0
order by s.page_count
exec(@SQLstmt )
Dilerseniz aynı işlemi dinamik tek bir SQL cümlesi yerine cursor ile de halledebilirsiz.
Veritabanızda fragmente oranı %30 un üzerinde üzerinde olan indeksleri bulup rebuild eden T-SQL kod aşağıdaki gibidir:
declare @SQLstmt varchar(max)
set @SQLstmt =''
select @SQLstmt =@SQLstmt + 'alter index ' + i.name + ' on ' + object_name(s.object_id ) + ' rebuild with(online=on);--pagecount:' + cast(s.page_count as varchar(16)) + '
'
from sys.dm_db_index_physical_stats(db_id(db_name()),null,null,null,null) s
inner join sys.indexes i on s.object_id=i.object_id and s.index_id=i.index_id
where s.avg_fragmentation_in_percent>30
and s.index_id>0
order by s.page_count
exec(@SQLstmt )
Dilerseniz aynı işlemi dinamik tek bir SQL cümlesi yerine cursor ile de halledebilirsiz.
2010-11-11
Index Fragmentation
Bir tablo yada view'daki index ve data fragmantasyonunu sys.dm_db_index_physical_stats DMV'si ile alabilirsiniz.
Örnek-1: Test adlı veritabanımızdaki musteri adlı tablomuzun fragmantasyonu aşağıdaki SQL kodu ile alabiliriz:
select * from sys.dm_db_index_physical_stats(db_id('Test'),object_id('musteri'),null,null,null)
Örnek-2: Test adlı veritabanımızdaki tüm tablo ve view'lerimizin fragmantasyonu aşağıdaki SQL kodu ile alabiliriz:
select * from sys.dm_db_index_physical_stats(db_id('Test'),null,null,null,null)
Örnek-3: Tüm veritabanlarımızdaki tüm tablo ve view'lerimizin fragmantasyonu aşağıdaki SQL kodu ile alabiliriz:
select * from sys.dm_db_index_physical_stats(null,null,,null,null,null)
Fragmente oranı %30 dan büyük olan indexlerinizi rebuild etmenizi; %10-%30 arasında olan indexlerinizi ise reorganize etmenizi tavsiye ederim.
Örnek-1: Test adlı veritabanımızdaki musteri adlı tablomuzun fragmantasyonu aşağıdaki SQL kodu ile alabiliriz:
select * from sys.dm_db_index_physical_stats(db_id('Test'),object_id('musteri'),null,null,null)
Örnek-2: Test adlı veritabanımızdaki tüm tablo ve view'lerimizin fragmantasyonu aşağıdaki SQL kodu ile alabiliriz:
select * from sys.dm_db_index_physical_stats(db_id('Test'),null,null,null,null)
Örnek-3: Tüm veritabanlarımızdaki tüm tablo ve view'lerimizin fragmantasyonu aşağıdaki SQL kodu ile alabiliriz:
select * from sys.dm_db_index_physical_stats(null,null,,null,null,null)
Fragmente oranı %30 dan büyük olan indexlerinizi rebuild etmenizi; %10-%30 arasında olan indexlerinizi ise reorganize etmenizi tavsiye ederim.
Kaydol:
Kayıtlar (Atom)
.::YASAL UYARI::.
©2004-2024 Mehmet GÜZEL, www.mehmetguzel.net
Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.
Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.