Geçenlerde bir veritabanı sunucusunda bulunan tüm aktif jobları pasif yapma ihtiyacım oldu. Bu ihtiyacımı aşağıdaki gibi T-SQL kodu yazarak giderdim:
declare @cmd varchar(max)=''
select @cmd=@cmd + 'exec msdb.dbo.sp_update_job @job_id=N' + '''' + cast(job_id as varchar(36)) + '''' + ', @enabled=0' + char(13)+char(10)+ 'go' + char(13) + char(10)
from msdb.dbo.sysjobs
where enabled=1
exec(@cmd)
Umarım bu T-SQL kodu sizin de işinize yarar.
-- Kodlar SQL Server 2008 ile test edilmiştir. Koddaki değişken atamaları SQL Server 2008 ve sonrası sürümleri gerektirir.
#DBA #SQL #Server #Performance #Tuning
2011-01-17
2010-12-26
SQL Server Authentication Mode
SQL Server iki farklı şekilde bağlantıları kabul eder. Bunlar:
Windows Authentication
Bu modda sadece Windows login'leri ile SQL Server'a erişilebilir. Windows Authentication, Kerberos güvenlik protokolünü kullanır.
Mixed Mode Authentication(mixed)
Bu moddaki bir SQL Server'a hem Windows authentication hem de SQL Server authentication ile erişilebilir.
SQL Server kurulurken default olarak windows authentication mode'da kurulur. SQL Server'ınızı dilerseniz kurulum esnasında mixed mode(Windows and SQL Server Authentication Mode) olarak ayarlayabilirsiniz.
Aşağıdaki dört farklı yöntemde SQL Server'ınızın hangi Authentication Mode'a olduğunu öğrenebilirsiniz:
Windows Authentication
Bu modda sadece Windows login'leri ile SQL Server'a erişilebilir. Windows Authentication, Kerberos güvenlik protokolünü kullanır.
Mixed Mode Authentication(mixed)
Bu moddaki bir SQL Server'a hem Windows authentication hem de SQL Server authentication ile erişilebilir.
SQL Server kurulurken default olarak windows authentication mode'da kurulur. SQL Server'ınızı dilerseniz kurulum esnasında mixed mode(Windows and SQL Server Authentication Mode) olarak ayarlayabilirsiniz.
Aşağıdaki dört farklı yöntemde SQL Server'ınızın hangi Authentication Mode'a olduğunu öğrenebilirsiniz:
- SSMS Kullanarak :
SQL Server Management Studio Object Explorer'da , server adının üzerinde sağı tıklayarak, Properties'den Security sayfasında SQL Server Authentication modunu öğrenebilirsiniz.
- ServerProperty ile
serverproperty() fonksiyona IsIntegratedSecurityOnly parametresini verererek SQL Server'ın Authentication modunu öğrenebilirsiniz:
SELECT CASE SERVERPROPERTY('IsIntegratedSecurityOnly')
WHEN 1 THEN 'Windows Authentication Mode'
WHEN 0 THEN 'Mixed Mode'
END as [Authentication Mode]
- xp_instance_regread Extended Stored Procedure ile
LoginMode'ı registry'den okuyarak SQL Server'ın Authentication modunu öğrenebilirsiniz:
DECLARE @AuthenticationMode INT
EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE',N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', @AuthenticationMode OUTPUT
SELECT CASE @AuthenticationMode
WHEN 1 THEN 'Windows Authentication Mode'
WHEN 2 THEN 'Mixed Mode'
ELSE 'Unknown'
END as [Authentication Mode]
- xp_logininfo Extended Stored Procedure ile
EXEC master.sys.xp_loginconfig 'login mode'
2010-12-25
SQL Server 2008 SP2 ile Gelen Yenilikler
SQL Server 2008 SP2 ile gelen yenilikler:
•Her tablo için 15.000 partition desteği. Bu destek SQL Server 2008'in Enterprise, Developer ve Evaluation sürümlerinde geçerli. 15.000 partition desteği enable edilerek kullanılabilir. Bu özelliği enable ettiğiniz veritabanının backup'ını SQL Server 2008 SP2 öncesi bir sunucu da restore edemezsiniz!
•Reporting Servis'in SharePoint Integrated Mode desteği.
•SQL Server 2008 R2 uygulamalarını ve multi-server management özelliğini SQL Server 2008 ile birlikte kullanabilme(SQL Server 2008 R2 Utility Control Point ve DAC desteği).
•Her tablo için 15.000 partition desteği. Bu destek SQL Server 2008'in Enterprise, Developer ve Evaluation sürümlerinde geçerli. 15.000 partition desteği enable edilerek kullanılabilir. Bu özelliği enable ettiğiniz veritabanının backup'ını SQL Server 2008 SP2 öncesi bir sunucu da restore edemezsiniz!
•Reporting Servis'in SharePoint Integrated Mode desteği.
•SQL Server 2008 R2 uygulamalarını ve multi-server management özelliğini SQL Server 2008 ile birlikte kullanabilme(SQL Server 2008 R2 Utility Control Point ve DAC desteği).
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
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
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
]
}
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.