İ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.
#DBA #SQL #Server #Performance #Tuning
2011-03-27
2011-03-25
Bilişim Zirvesi 2011 Sunum ve Video Görüntüleri
Microsoft Bilişim Zirvesi 2011'e katılamayanlar yada zirveye katılıp ta zirvedeki sunum ve video görüntülerine ulaşmak isteyenler http://www.microsoft.com/turkiye/cloud/localEvents.aspx adresinden ulaşabilirler.
2011-03-24
SQL Server Profiler Template Dosyaları Nerde Tutulur?
SQL Server Profiler uygulamasında oluşturmuş olduğumuz template'ler diskinizin belli bir lokasyonunda tutulur. Bu lokasyonlar SQL Server 2005 ve SQL Server 2008 için aşağıdaki gibidir:
SQL Server Profiler 2008 için template dizini:
C:\Documents and Settings\KullaniciKodunuz\Application Data\Microsoft\SQL Profiler\10.0\Templates\Microsoft SQL Server\100
SQL Server Profiler 2005 için template dizini:
C:\Documents and Settings\KullaniciKodunuz\Application Data\Microsoft\SQL Profiler\9.0\Templates\Microsoft SQL Server\90
SQL Server Profiler 2008 için template dizini:
C:\Documents and Settings\KullaniciKodunuz\Application Data\Microsoft\SQL Profiler\10.0\Templates\Microsoft SQL Server\100
SQL Server Profiler 2005 için template dizini:
C:\Documents and Settings\KullaniciKodunuz\Application Data\Microsoft\SQL Profiler\9.0\Templates\Microsoft SQL Server\90
2011-03-23
İş Kritik Uygulamalar için Performans Semineri
Tarih: 28 Mart 2011 Pazartesi
Saat : 09.00 - 16.15
Yer : Microsoft İstanbul Ofisi
İş kritik uygulamalar konusunda çalışan veri platformu mimarları için düzenlenecek seminer serisinin ilki “İş Kritik Uygulamalar için Performans” konusuyla gerçekleştirilecek.
İş kritik uygulamaların performansı kurumların arzu ettikleri hizmet seviyelerini müşteri ve iş ortaklarına sağlayabilmeleri açısından yüksek önem taşır. Bu seminerde özellikle iş kritik uygulamalarınızın üzerinde çalıştığı SQL Server veritabanlarının izlenmesi ve performans iyileştirmesi konularına yer verilecektir.
Seminer Microsoft SQL Server geliştirme ekibinde de çalışmış, konusunda 15 yılı aşkın tecrübesi bulunan Ramesh Meyyappan tarafından İngilizce verilecektir.
Gündem
09.00 - 09:30 Karşılama ve İkram
09.30 - 10.45 Monitoring and Tuning CPU, memory & Disk utilization to reduce Total Cost of Ownership (TCO) - Part I
10.45 - 11.00 Kahve Arası
11.00 - 12.15 Monitoring and Tuning CPU, memory & Disk utilization to reduce Total Cost of Ownership (TCO) - Part II
12.15 - 13.00 Öğle Yemeği
13.00 - 14.15 Monitoring and Tuning Query Execution and Locking Part I
14.15 - 14.45 Ara
14.45 - 16.00 Monitoring and Tuning Query Execution and Locking - Part II
16.00 - 16.15 Soru ve Cevap
Saat : 09.00 - 16.15
Yer : Microsoft İstanbul Ofisi
İş kritik uygulamalar konusunda çalışan veri platformu mimarları için düzenlenecek seminer serisinin ilki “İş Kritik Uygulamalar için Performans” konusuyla gerçekleştirilecek.
İş kritik uygulamaların performansı kurumların arzu ettikleri hizmet seviyelerini müşteri ve iş ortaklarına sağlayabilmeleri açısından yüksek önem taşır. Bu seminerde özellikle iş kritik uygulamalarınızın üzerinde çalıştığı SQL Server veritabanlarının izlenmesi ve performans iyileştirmesi konularına yer verilecektir.
Seminer Microsoft SQL Server geliştirme ekibinde de çalışmış, konusunda 15 yılı aşkın tecrübesi bulunan Ramesh Meyyappan tarafından İngilizce verilecektir.
Gündem
09.00 - 09:30 Karşılama ve İkram
09.30 - 10.45 Monitoring and Tuning CPU, memory & Disk utilization to reduce Total Cost of Ownership (TCO) - Part I
10.45 - 11.00 Kahve Arası
11.00 - 12.15 Monitoring and Tuning CPU, memory & Disk utilization to reduce Total Cost of Ownership (TCO) - Part II
12.15 - 13.00 Öğle Yemeği
13.00 - 14.15 Monitoring and Tuning Query Execution and Locking Part I
14.15 - 14.45 Ara
14.45 - 16.00 Monitoring and Tuning Query Execution and Locking - Part II
16.00 - 16.15 Soru ve Cevap
2011-03-14
SQL Azure'da Limitler ve Kısıtlamalar
SQL Azure'da aşağıdaki limit ve kısıtlamalar söz konusu olup; SQL Azure geçmeyi düşünenlerin bu limit ve kısıtlamaları göz ardı etmemesi gerekir:
- SQL Azure veritabanlarına OLEDB ile erişim desteklenmiyor.
- Sadece TCP/IP protokolu ile erişim destekleniyor, diğer protokoller ile erişim desteklenmiyor.
- SQL Azure ile SQL Server browser desteklenmiyor.
- SQL Azure ile Attach ve Restore komutları desteklenmiyor.
- SQL Server Agent yada joblar desteklenmiyor.
- SQL Azure'da Distributed Transaction desteklenmiyor.
- Database Collation olarak sadece SQL_LATIN1_GENERAL_CP1_CI_AS ı destekliyor; diğer collation lar desteklenmiyor. Diğer collation'ları tablo alanı bazında destekliyor.
- SQL Azure da oluşturduğunuz her tabloda clustered index'in olması zorunlu(SQL Azure heap ı desteklemiyor) yoksa insert'leriniz hata alır.
- Her SQL Azure Server maksimum 150 veritabanını destekliyor(master veritabanı + 149 kullanıcı veritabanı).
- SQL Azure için her bir veritabanı için maximum size 50 GB ile sınırlı.
- SQL Azure'da Windows Authentication desteklenmiyor.
- SQL Azure'da veritabanları arası geçiş yapan USE komutu kullanılamıyor.
- SQL Azure'da Transactional Replication desteklenmiyor.
- SQL Azure'da Database Mirroring desteklenmiyor.
- SQL Azure'da Log Shipping desteklenmiyor
- Azure platformunda SSIS servisi kullanılamıyor.
- SQL Azure'da sadece Management Studio'nun SQL Server 2008 R2 sürümü ile erişilebiliniyor. Daha eski versiyonlardaki Management Studio'lar ile erişemiyorsunuz.
- SQL Azure, SQL Server 2008 deki tüm T-SQL leri desteklemiyor. Desteklenmeyen T-SQL'lere http://msdn.microsoft.com/en-us/library/ee336253.aspx adresinden ulaşabilirsiniz.
2011-03-08
SQL Server Üzerinde Denetim ve Güvenlik Semineri
17 Mart 2011 Perşembe günü 10:00-11:00 saatleri arasında gerçekleştirilecek web seminerinde SQL Server üzerinde, özellikle veritabanı yöneticileri için denetim ve güvenlik yöntemlerinin ele alınacağı, SQL Server’in güvenlik mekanizması, loglama mekanizması, server ve veritabanı denetimi yöntemlerinin ayrıntılı bir biçimde incelenecektir. Osman ÇOKAKOĞLU'nun sunacağı web seminerine katılmak isteyenler Microsoft'un Canlı Web Yayınları Etkinlikleri sayfasından kayıt olabilirler.
2011-03-05
Tempdb Veritabanını Taşıma
Moving Tempdb
Sistem veritabanlarından tempdb veritabanı SQL Server servisi her start olduğunda tekrardan oluşur. Tempdb'yi taşımak için:
use master
go
alter database tempdb modify file (name = tempdev, filename = 'D:\MSSQL\tempdb.mdf')
go
alter database tempdb modify file (name = templog, filename = 'D:\MSSQL\templog.ldf')
go
Sistem veritabanlarından tempdb veritabanı SQL Server servisi her start olduğunda tekrardan oluşur. Tempdb'yi taşımak için:
- tempdb veritabanının data ve log dosyalarının lokasyonunu değiştirmek gerekir
- SQL Server servisinin restart edilmesi gerekir.
use master
go
alter database tempdb modify file (name = tempdev, filename = 'D:\MSSQL\tempdb.mdf')
go
alter database tempdb modify file (name = templog, filename = 'D:\MSSQL\templog.ldf')
go
2011-03-03
Password'u Boş Olan SQL Kullanıcılarını Bulma
SQL Server 2005/2008 de password u boş olan SQL kullanıcılarını aşağıdaki SQL ile bulabilirsiniz:
select name
from sys.sql_logins
where pwdcompare('', password_hash) = 1
Yine aynı şekilde şifresi abc olan SQL kullanıcıların listesini aşağıdaki SQL ile alabilirsiniz:
declare @password sysname
set @password ='abc'
select name
from sys.sql_logins
where pwdcompare(@password, password_hash) = 1
@password değişkenini zayıf şifreleri içerecek şekilde genişletirseniz sisteminizde zayıf/tamin edilebilir şifreleri olan SQL kullanıcıların listesini alıp bu şifrelerin güçlü şifreler ile değiştirilmesini sağlayabilirsiniz.
Güvenlik için veritabanı sunucularınızda bulunan tüm SQL kullanıcılarınız için password policy uygulamayı unutmayın!
select name
from sys.sql_logins
where pwdcompare('', password_hash) = 1
Yine aynı şekilde şifresi abc olan SQL kullanıcıların listesini aşağıdaki SQL ile alabilirsiniz:
declare @password sysname
set @password ='abc'
select name
from sys.sql_logins
where pwdcompare(@password, password_hash) = 1
@password değişkenini zayıf şifreleri içerecek şekilde genişletirseniz sisteminizde zayıf/tamin edilebilir şifreleri olan SQL kullanıcıların listesini alıp bu şifrelerin güçlü şifreler ile değiştirilmesini sağlayabilirsiniz.
Güvenlik için veritabanı sunucularınızda bulunan tüm SQL kullanıcılarınız için password policy uygulamayı unutmayın!
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.