2010-12-24

Tempdb Veritabanı Hakkında

Tempdb veritabanı:
  • SQL Server servisi restart olduğunda tekrardan oluşur.
  • Model veritabanını kullanarak oluşur.
  • Veritabanının recovery modelini daima SIMPLE olarak set edin.
  • Checkpoint yoktur.
  • Backup'ını alamazsınız.
  • Data için sadece bir filegroup olmalı ve logları bir log  dosyasında tutun.

2010-12-21

Unused Tables Since SQL Server Restarted

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

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

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.

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

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:
  1. Veritabanı FULL recovery moda alınır,
  2. Veritabanının FULL backup'ı alınır,
  3. Veritabanın Transaction Log Backup'ı alınır,
  4. Veritabanın Log dosyası shrink edilir.
Not: Transaction Log Backup'ı alan bir maintenance plan tanımlarsanız log dosyanız çok fazla büyümez. Ayrıca aldığınız bu transaction log backuplarınızı belirli periyotlarda silen bir maintenance plan ile diskinizin dolmasını engelleyebilirsiniz.

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

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
]
}

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.

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)

.::YASAL UYARI::.

©2004-2023 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.