SQL Server servisinin en son restart edildiği zamandan itibaren kullanılmayan tabloları veren script aşağıdaki gibidir:
select object_schema_name(t.object_id) + '.' + t.name as TableName
from sys.dm_db_index_usage_stats i right outer join
sys.tables t on (t.object_id = i.object_id)
group by object_schema_name(t.object_id) + '.' + t.name
having sum(isnull(i.user_seeks,0)+isnull(i.system_seeks,0)+isnull(i.user_scans,0)+ isnull(i.system_scans,0)
+ isnull(i.user_lookups,0) + isnull(i.system_lookups,0)+ isnull(i.user_updates,0)+ isnull(i.system_updates,0))=0
order by object_schema_name(t.object_id) + '.' + t.name
#DBA #SQL #Server #Performance #Tuning
2010-12-21
Korkular Aleminde -Bir Deneme
Korkular aleminde büyüyüp yeşerdik; dal verip budak saldık. Her dalımızda korkularımızın yeşerttigi yeşil yapraklarla sarmalanıp, kırmızı meyveler verdik. Yıllarca gerçeklerimizden korktuk, kaçtık, saklandık, gizlendik, sesimizi titrek kelimelerle; hatta zaman zaman ancak kendimiz duyacak kadar alçak sesle seslendik. Sesimizi, sesimizle birlikte meramızı aktarmaya çalıştık. Sesimizden korktuk, sesimizin ifade ettigi manadan korktuk. Manaların derinliğinden, derinliklerimizin gerçek özünden, özümüzün ifade edilmesinden ürktük. Ürkek bir güvercin gibi havalanıp; ürkekliğimizi uçtugumuz her diyara taşıdık. Korkumuzun gizemini, gizemimizin korkusunu derinlerimizde gizleyip ve görünmesin diye zamanın derin koyu sıvasıyla sıvadık. Sıvanın üzerini cafcaflı renklerle boyayıp, kendimizle birlikte çevremizdekileri de kandırdıgımız hissiyle teselli bulduk. Hoşumuza gitmeyen sinema sahnelerinde gözümüzü yumup; karanlık akşamın aydınlık sabahında derin hülyalarla uyanmayı umduk. Umduklarımızı istikbalimizde görmek yerine; geride bıraktık. Geride bıraktıklarımızı bir gün kurtarırız düşüncesiyle önümüze bakıp yol aldık. Tam bir arpa boyu yol almışken, mazimiz birden iki arpa boyu bizi geriye çekti; bizi sallayıp silkti; bizden olmayıp ta üzerimizde emanet olarak duran her şeyi aldı. Biz bize kaldık, kaldığımız yerden filmi sardık. Filmi sardığımız yerde "Korkular Aleminde-Bir Denemeye" reklam gelir kapısını açık bırakıp, uyku arası verdik...
21.12.2010 01:44
21.12.2010 01:44
2010-12-18
MS SQL Server 2005 SP4 RTM Yayınlandı
Microsoft SQL Server 2005 SP4 yayınladı. SQL Server 2005 Service Pack 4'i http://www.microsoft.com/downloads/en/details.aspx?FamilyID=b953e84f-9307-405e-bceb-47bd345baece&displaylang=en adresinden indirebilirsiniz.
SQL Server 2005 Service Pack 4'te giderilen hataların listesini http://support.microsoft.com/kb/2463332 adresinden detaylı olarak inceleyebilirsiniz.
Microsoft, SQL Server 2005 SP4 ile güzel bir versiyon numarası seçmiş; versiyon numarası 9.00.5000.00 oluyor.
SQL Server 2005 Service Pack 4'te giderilen hataların listesini http://support.microsoft.com/kb/2463332 adresinden detaylı olarak inceleyebilirsiniz.
Microsoft, SQL Server 2005 SP4 ile güzel bir versiyon numarası seçmiş; versiyon numarası 9.00.5000.00 oluyor.
2010-12-14
Useful Undocumented Stored Procedures
sp_MSindexspace: İndeks boyutunu KB olarak döndürür.
Syntax:
sp_MSindexspace [ @tablename = ] 'tablename', [ @index_name = ] 'index_name'
Örnek:
EXEC sp_MSindexspace @tablename = 'Musteri'
sp_MStablespace: Tablo boyutunu KB olarak döndürür.
Syntax:
sp_MStablespace [ @name = ] 'name', [ @id = ] 'id'
Örnek:
EXEC sp_MStablespace @name = 'Personel'
sp_objectfilegroup: Objenin datafilegroup'unu döndürür.
Syntax:sp_objectfilegroup [ @objid = ] 'objid'
Örnek:USE TestDB
GO
DECLARE @id INT
SET @id = OBJECT_ID('TestDB.dbo.TestTablo')
EXEC sp_objectfilegroup @objid = @id
Syntax:
sp_MSindexspace [ @tablename = ] 'tablename', [ @index_name = ] 'index_name'
Örnek:
EXEC sp_MSindexspace @tablename = 'Musteri'
sp_MStablespace: Tablo boyutunu KB olarak döndürür.
Syntax:
sp_MStablespace [ @name = ] 'name', [ @id = ] 'id'
Örnek:
EXEC sp_MStablespace @name = 'Personel'
sp_objectfilegroup: Objenin datafilegroup'unu döndürür.
Syntax:sp_objectfilegroup [ @objid = ] 'objid'
Örnek:USE TestDB
GO
DECLARE @id INT
SET @id = OBJECT_ID('TestDB.dbo.TestTablo')
EXEC sp_objectfilegroup @objid = @id
2010-11-30
Veritabanınızın Log Dosyasını Küçültme
SIMPLE recovery modda olan veritabanınızın aşırı şişen log dosyasını küçültmek için aşağıdaki adımları uygulayabilirsiniz:
- Veritabanı FULL recovery moda alınır,
- Veritabanının FULL backup'ı alınır,
- Veritabanın Transaction Log Backup'ı alınır,
- Veritabanın Log dosyası shrink edilir.
2010-11-24
Cumulative Updates for SQL Server 2008 are available
SQL Server 2008 SP1 ve SP2 için yeni Cumulative Update'ler çıktı. CU'leri aşağıdaki adreslerden indirip kurabilirsiniz:
•SQL Server 2008 SP1 Cumulative Update 11- KB #2413738
•SQL Server 2008 SP2 Cumulative Update1 - KB #2289254
•SQL Server 2008 SP1 Cumulative Update 11- KB #2413738
•SQL Server 2008 SP2 Cumulative Update1 - KB #2289254
2010-11-16
SQL Server 2012 - T-SQL Paging
SQL Server 2012 ile birlikte gelen güzel özelliklerden birisi de T-SQL'de paging yapısı. Paging ile istediğimiz sıradaki yada sıralar arasındaki kayıtları listeleyebileceğiz. Dilersek bu sıraları parametrik hale de getirebileceğiz.
Örnek-1: 10.kayıttan sonraki tüm kayıtları aşağıdaki T-SQL kodu ile alabiliriz.:
SELECT PersonID, FirstName, LastName
FROM Person
ORDER BY PersonID
OFFSET 10 ROWS
Örnek-2: 10 ile 20. kayıtlar arasındakı kayıtları aşağıdaki T-SQL kodu ile alabiliriz:
SELECT PersonID, FirstName, LastName
FROM Person
ORDER BY PersonID
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY;
Syntax:
ORDER BY order_by_expression
[ COLLATE collation_name ]
[ ASC | DESC ]
[ ,...n ]
[]
::=
{
OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }
[
FETCH { FIRST | NEXT } {integer_constant | fetch_row_count_expression } { ROW | ROWS } ONLY
]
}
Örnek-1: 10.kayıttan sonraki tüm kayıtları aşağıdaki T-SQL kodu ile alabiliriz.:
SELECT PersonID, FirstName, LastName
FROM Person
ORDER BY PersonID
OFFSET 10 ROWS
Örnek-2: 10 ile 20. kayıtlar arasındakı kayıtları aşağıdaki T-SQL kodu ile alabiliriz:
SELECT PersonID, FirstName, LastName
FROM Person
ORDER BY PersonID
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY;
Syntax:
ORDER BY order_by_expression
[ COLLATE collation_name ]
[ ASC | DESC ]
[ ,...n ]
[
{
OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }
[
FETCH { FIRST | NEXT } {integer_constant | fetch_row_count_expression } { ROW | ROWS } ONLY
]
}
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;
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.