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)

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;

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

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


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

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')

.::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.