#DBA #SQL #Server #Performance #Tuning
2010-11-11
SQL Server 2011 (Code Name Denali)'nin CTP1'i Çıktı
SQL Server 2011'in CTP1 versiyonunu http://www.microsoft.com/downloads/en/details.aspx?FamilyID=6a04f16f-f6be-4f92-9c92-f7e5677d91f9&displaylang=en adresinden indirebilirsiniz. SQL Server 'Denali' ile gelen yeniliklere http://msdn.microsoft.com/en-us/library/bb510411(v=SQL.110).aspx adresinden ulaşabilirsiniz.
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.
2010-11-04
Tüm Kullanici Veritabanlarının Boyutlarını Almak
Bir instance üzerinde bulunan tüm kullanici veritabanlarının boyutlarını aşağıdaki SQL kodu ile alabilirsiniz:
select db_name(database_id) DatabaseName,sum(size)*8/1024 DatabaseSizeMB
from sys.master_files
where database_id>4
group by db_name(database_id)
select db_name(database_id) DatabaseName,sum(size)*8/1024 DatabaseSizeMB
from sys.master_files
where database_id>4
group by db_name(database_id)
2010-10-26
Logical/Physical CPU Sayısını Bulma
SQL Server 2008 ve SQL Server 2008 R2 sürümlerinde logical/physical cpu sayısını aşağıdaki sql kodu ile alabilirsiniz:
SELECT cpu_count AS [Logical CPU Count],
hyperthread_ratio AS [Hyperthread Ratio],
cpu_count/hyperthread_ratio AS [Physical CPU Count]
FROM sys.dm_os_sys_info;
SELECT cpu_count AS [Logical CPU Count],
hyperthread_ratio AS [Hyperthread Ratio],
cpu_count/hyperthread_ratio AS [Physical CPU Count]
FROM sys.dm_os_sys_info;
2010-10-25
SQL Server Servis Account Adını Bulma
SQL Server'ı çalıştıran servis account'ını aşağıdaki gibi alıp öğrenebilirsiniz:
DECLARE @ServiceaccountName varchar(128)
EXECUTE master.dbo.xp_instance_regread
N'HKEY_LOCAL_MACHINE',
N'SYSTEM\CurrentControlSet\Services\MSSQLSERVER',
N'ObjectName',
@ServiceAccountName OUTPUT,
N'no_output'
SELECT @ServiceaccountName
DECLARE @ServiceaccountName varchar(128)
EXECUTE master.dbo.xp_instance_regread
N'HKEY_LOCAL_MACHINE',
N'SYSTEM\CurrentControlSet\Services\MSSQLSERVER',
N'ObjectName',
@ServiceAccountName OUTPUT,
N'no_output'
SELECT @ServiceaccountName
SQL Server 2008 R2 SP1'den sonra gelen sys.dm_server_services DMV ile servisler ile ilgili bir çok bilgiye ulaşabilirsiniz. Benzer şekilde aşağıdaki T-SQL ile de servis account bilgisini alabilirsiniz:
select servicename, service_account
from sys.dm_server_services
from sys.dm_server_services
2010-10-15
SQL Server'ın Başlatıldığı Zamanı Bulma
SQL Server'ın başlangıç zamanını SQL Server 2008 ile birlikte gelen sys.dm_os_sys_info DMV'i ile aşağıdaki gibi bulabilirsiniz:
SELECT sqlserver_start_time
FROM sys.dm_os_sys_info
SELECT sqlserver_start_time
FROM sys.dm_os_sys_info
SQL Server Error Log Dosyası Nerede?
SQL Server error log dosyasının adını ve dosyanın bulunduğu dizini aşağıdaki undocumented sql kodu ile alabilirsiniz:
SELECT SERVERPROPERTY('ErrorLogFileName')
SELECT SERVERPROPERTY('ErrorLogFileName')
2010-09-30
MS SQL Server 2008 Service Pack 2 (SP2) Çıktı
Microsoft daha önce 2010 yılının 4.çeyreğinde çıkaracağını duyurduğu SQL Server 2008 SP2'yi yayınladı.
SQL Server 2008 Service Pack 2'yi http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8fbfc1de-d25e-4790-88b5-7dda1f1d4e17&displaylang=en adresinden indirebilirsiniz.
SQL Server 2008 Service Pack 2'de giderilen hataların listesini http://support.microsoft.com/kb/2285068 adresinden detaylı olarak inceleyebilirsiniz.
SQL Server 2008 Service Pack 2'yi http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8fbfc1de-d25e-4790-88b5-7dda1f1d4e17&displaylang=en adresinden indirebilirsiniz.
SQL Server 2008 Service Pack 2'de giderilen hataların listesini http://support.microsoft.com/kb/2285068 adresinden detaylı olarak inceleyebilirsiniz.
2010-09-16
Partition Tabloların Filegroup ve Diğer Bilgilerini Alma
Partition yapısındaki bir tablonun partition aralıklarını ve bu aralıkların hangi filegroup'ta tutulduğunu aşağıdaki sorgu ile alabilirsiniz:
select isnull(d.name,ps.name) FileGroupNameOrSchemeName
,isnull(d.type_desc , ps.type_desc ) FileGroupTypeOrSchemeType
,OBJECT_NAME(p.object_id) ObjectName
,p.rows
,p.data_compression_desc
,p.partition_id
,p.partition_number
,isnull(case when boundary_value_on_right =1 then '<' else '>' end + cast(minprv.value as varchar(100)),'~') + ' to '
+isnull( case when boundary_value_on_right =1 then '>='
else '<=' end + cast(prv.value as varchar(100)), '~') Criteria
,d2.name FilegroupName
from sys.partitions p join sys.indexes i on i.index_id = p.index_id and i.object_id = p.object_id
left join sys.data_spaces d on d.data_space_id = i.data_space_id
left join sys.partition_schemes ps on ps.data_space_id = i.data_space_id
left join sys.partition_functions pf on pf.function_id = ps.function_id
left join sys.partition_range_values prv on prv.function_id = ps.function_id and prv.boundary_id = p.partition_number
left join sys.partition_range_values minprv on minprv.function_id = ps.function_id and minprv.boundary_id = p.partition_number -1
left join sys.destination_data_spaces dds on dds.partition_scheme_id = ps.data_space_id and dds.destination_id = p.partition_number
left join sys.data_spaces d2 on d2.data_space_id = dds.data_space_id
where p.object_id=object_id('TabloAdi')
select isnull(d.name,ps.name) FileGroupNameOrSchemeName
,isnull(d.type_desc , ps.type_desc ) FileGroupTypeOrSchemeType
,OBJECT_NAME(p.object_id) ObjectName
,p.rows
,p.data_compression_desc
,p.partition_id
,p.partition_number
,isnull(case when boundary_value_on_right =1 then '<' else '>' end + cast(minprv.value as varchar(100)),'~') + ' to '
+isnull( case when boundary_value_on_right =1 then '>='
else '<=' end + cast(prv.value as varchar(100)), '~') Criteria
,d2.name FilegroupName
from sys.partitions p join sys.indexes i on i.index_id = p.index_id and i.object_id = p.object_id
left join sys.data_spaces d on d.data_space_id = i.data_space_id
left join sys.partition_schemes ps on ps.data_space_id = i.data_space_id
left join sys.partition_functions pf on pf.function_id = ps.function_id
left join sys.partition_range_values prv on prv.function_id = ps.function_id and prv.boundary_id = p.partition_number
left join sys.partition_range_values minprv on minprv.function_id = ps.function_id and minprv.boundary_id = p.partition_number -1
left join sys.destination_data_spaces dds on dds.partition_scheme_id = ps.data_space_id and dds.destination_id = p.partition_number
left join sys.data_spaces d2 on d2.data_space_id = dds.data_space_id
where p.object_id=object_id('TabloAdi')
2010-09-12
Performans Counter'a Binlik Ayıracı Ekleme
Windows Vista'dan önceki işletim sistemlerinde perfmon'da binlik ayıracı default olarak yoktur ve bu eksiklik özellikle uzun sayıları okumamızda zorluk çıkartır. Perfmon'a binlik ayıracını aşağıdaki adımları uygulayarak ekleyebilirsiniz:
- Regedit'i çalıştırın.
- HKEY_CURRENT_USER\Software\Microsoft\SystemMonitor\ sekmesini açın.
- Edit menu'de New deyip DWORD değeri seçin.
- Oluşturduğunuz yeni alana "DisplayThousandsSeparator" adını verin.
- "DisplayThousandsSeparator" değerini 1 olarak set edin.
- Perfmon'u yeniden başlatın.
2010-08-24
Gmail'im Dışardan Mail Almaz Oldu, Tüm Maillerim Yolda Kaldı!
Sevgili dostlar,
Gmail'deki mail hesaplarına dünden beri mailler gelmiyor. Gmail'den başka bir adresteki mail hesaplarına mail gönderebiliyorsunuz fakat mail alamıyorsunuz. Bir süredir gmail'deki hesaba mail gönderdim hala gitmedi yada benim gibi gmail de mail beklediği halde maili gelmeyen arkadaşlara duyurulur.
Gmail'deki mail hesaplarına dünden beri mailler gelmiyor. Gmail'den başka bir adresteki mail hesaplarına mail gönderebiliyorsunuz fakat mail alamıyorsunuz. Bir süredir gmail'deki hesaba mail gönderdim hala gitmedi yada benim gibi gmail de mail beklediği halde maili gelmeyen arkadaşlara duyurulur.
Kaydol:
Kayıtlar (Atom)
.::YASAL UYARI::.
©2004-2025 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.