Recent comments

None


İçerik Ara











Yasal Uyarı
Bu sitede sunulan tüm bilgi ve dökümanlar Turgay Sahtiyan tarafından yazılmaktadır. Yazıların kaynak göstermek şartıyla kullanılması serbesttir.

© Copyright 2009-2013
Takvim
<<  Ağustos 2017  >>
PaSaÇaPeCuCuPa
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910
Keywords

Merhaba arkadaşlar

Türkiye’de 4. defa düzenlediğimiz SQLSaturday etkinliğinde sunmuş olduğum “How Latch Contention Affects the Performance? Common Scenarios and Workarounds from the Field” başlıklı sunumun video kaydını aşağıda bulabilirsiniz.

[more]

Sunumda kullandığım script’lere ve sunuma ise aşağıdan erişebilirsiniz.

https://www.sqlsaturday.com/downloadsessionfile.aspx?presentationid=25921

İyi Seyirler

Not : Blog haricinde, faydali gördügüm yazilari ve linkleri twitter adresimden paylasiyorum. Beni twitter'da takip etmek için : twitter.com/turgaysahtiyan


Bildiğiniz gibi 8 Mart 2012 tarihinde SQL Server sanal lansmanı tüm dünya ile aynı anda Türkiye’de de gerçekleştirildi.

Lansman kapsamında ben de “SQL Server 2012 Yüksek Erişilebilirlik-AlwaysOn” konulu bir sunum yaptım.

Bu sunumun video kaydına aşağıda erişebilirsiniz.

Lansman kapsamındaki diğer sunumlara ise aşağıdaki url’den erişebilirsiniz.

http://www.sqlserverlaunch.com/tur/ww_Agenda

Not : Blog haricinde, faydali gördügüm yazilari ve linkleri twitter adresimden paylasiyorum. Beni twitter'da takip etmek için : twitter.com/turgaysahtiyan


Türkiye’de ilk kez 31 Mart 2012 Cumartesi günü MS İstanbul ofisinde düzenlenen SQLSaturday etkinliğindeki sunumların video kayıtlarına aşağıdaki linkten erişebilirsiniz.

http://www.sqlserveronculeri.com/5/Activity/395/sqlsaturday-#128-istanbul-etkinligi-sunum-kayitlari.aspx

Birbirinden değerli konuşmacıların workshop formatındaki sunumlarını izlemenizi kesinlikle tavsiye ederim.

Not: Videoları izleyebilmek için SQL Server Öncüleri web sayfasına üye olmanız gerekmektedir.

Not : Blog haricinde, faydali gördügüm yazilari ve linkleri twitter adresimden paylasiyorum. Beni twitter'da takip etmek için : twitter.com/turgaysahtiyan


19.04.2012 tarihinde (dün) SQL Server Öncüleri önderliğinde gerçekleştirmiş olduğum SQL Server 2012 ile Gelen Yeni Özellikler başlıklı webcast’imin videosuna ve diğer dosyalarına aşağıdan erişebilirsiniz.

Scriptler

Sunum

Video

Not : Blog haricinde, faydali gördügüm yazilari ve linkleri twitter adresimden paylasiyorum. Beni twitter'da takip etmek için : twitter.com/turgaysahtiyan


14.12.2011 tarihinde gerçekleştirmiş olduğum SQL Server 2012 ile Gelen Yeni Özellikler başlıklı webcast’imin videosuna ve diğer dosyalarına aşağıda erişebilirsiniz.

[more]

Scriptler

Video

 

Sunum

 

İyi Çalışmalar

Turgay Sahtiyan

Not : Blog haricinde, faydali gördügüm yazilari ve linkleri twitter adresimden paylasiyorum. Beni twitter'da takip etmek için : twitter.com/turgaysahtiyan


Dünyada pek çok ülkede faaliyet gösteren SQL PASS topluluğunun Türkiye şubesi olarak kurulan SQL Server Öncüleri Topluluğu'nun tanıtım toplantısı 21 Ekim'de gerçekleşti.

Hayata geçtikleri kısa bir sürede SQL Server Öncüleri, teknik türkçe içeriklerini 100'e yakın makale, 4 video, onlarca sunum web seminer aracılığı ile tüm Türkiye’den geniş bir katılımcı kitlesine ulaştırdılar.

21 Ekim’de Microsoft İstanbul ofisinde gerçekleştirdikleri topluluk lansmanına ise, 123 kişilik rekor bir katılım gerçekleşti. Lansman katılımcıları SQL Server 2012, Database Consolidation Appliance, SQL Azure da dahil olmak üzere, İş Zekası ve İş Kritik Uygulamalar konusunda 9 oturuma katıldılar

Etkinlik kapsamında gerçekleştirilen sunumların video ve sunum dosyalarına aşağıdaki linkten erişebilirsiniz.

http://www.sqlserveronculeri.com/5/Activity/285/sql-server-onculeri-istanbul-lansmani-sunum-kayitlari.aspx

Not : Blog haricinde, faydali gördügüm yazilari ve linkleri twitter adresimden paylasiyorum. Beni twitter'da takip etmek için : twitter.com/turgaysahtiyan


23.11.2011 tarihinde gerçekleştirmiş olduğum SQL Server Performans İpuçları başlıklık webcast’imin videosuna ve diğer dosyalarına aşağıda erişebilirsiniz.

 

 

 

Scriptler

 

Not : Webcast videosu yakın bir zamanda www.cozumpark.com portalinde de yayınlanacaktır.

Not : Blog haricinde, faydali gördügüm yazilari ve linkleri twitter adresimden paylasiyorum. Beni twitter'da takip etmek için : twitter.com/turgaysahtiyan


29.09.2011 tarihinde gerçekleştirmiş olduğum SQL Server’da Index Kavramı - Performance Tuning ve Query Optimization başlıklı webcast’imin videosu aşağıdadır.

[more]

 

 

Webcast’te kullandığım sunum dosyasına şu linkten erişebilirsiniz.

Kullandığım scriptler ise aşağıdadır.

--table scan-index kullanımı arasındaki farkın 
--diskten yapılan okuma açısından değerlendirilmesi
drop table tblIndexDeneme1
GO
create table tblIndexDeneme1 (ID int, Ad varchar(20), SoyAd varchar(20), Telefon varchar(10))
GO
declare @i int=1
while @i<100000
begin
  insert tblIndexDeneme1
    select @i,'Turgay'+cast(@i as varchar(10)),'Sahtiyan' + cast(@i as varchar(10)),'555 55 55'
  set @i=@i+1
end
GO

--Table scan yaparak kayıt sorgulama-Query Plan
select * from tblIndexDeneme1 where ID=55000

--Table scan yaparak kayıt sorgulama-IO Consume
SET STATISTICS IO ON
SET STATISTICS TIME ON
GO
select * from tblIndexDeneme1 where ID=55000

--ID kolonu üzerine clustered index
create clustered index IX_1 on tblIndexDeneme1 ( ID )
GO

--clustered index kullanılarak kayıt sorgulama-IO Consume
SET STATISTICS IO ON
SET STATISTICS TIME ON
GO
select * from tblIndexDeneme1 where ID=55000
--230 kat daha az kayıt okundu.

SET STATISTICS IO OFF
SET STATISTICS TIME OFF

-----------------------------------------------------------------
------------- Index Page'leri Görüntüleme -----------------------
-----------------------------------------------------------------
--
select * from tblIndexDeneme1 where ID=55000

--Index Page'leri
DBCC IND('AdventureWorks2008','tblIndexDeneme1',1)

--Data Page için Trace Flag
DBCC TRACEON (3604);

--Page içeriği
DBCC PAGE('AdventureWorks2008',1,39362,3)


-----------------------------------------------------------------
-------------Index Page'lere ilk Bakış---------------------------
-----------------------------------------------------------------
--Clustered Index NonLeaf Level Page Örneği
DBCC IND('AdventureWorks2008','tblIndexDeneme1',1)

DBCC TRACEON (3604);
DBCC PAGE('AdventureWorks2008',1,24080,3)

--NonClustered Index NonLeaf Level Page Örneği
--İlk olarak Ad kolonu üzerinde bir NonClustered Index tanımlaması yapalım.
--Soyad kolonunuda included olarak belirleyelim.
create nonclustered index IX_2 on tblIndexDeneme1 ( Ad ) INCLUDE(Soyad)
GO

DBCC IND('AdventureWorks2008','tblIndexDeneme1',3)

DBCC PAGE('AdventureWorks2008',1,40603,3)



------------------------------------------------------
-------Örneklerle Index Page’lerin İncelenmesi--------
------------------------------------------------------

----------------------------------------
--Clustered Index’te Page’lerin Yapısı--
----------------------------------------

--Unique Clustered Index
drop table tblIndexDeneme2
GO
create table tblIndexDeneme2 (ID int, Ad varchar(20), SoyAd varchar(20), Telefon varchar(10))
GO
declare @i int=1
while @i<10000
begin
  insert tblIndexDeneme2
    select @i,'Turgay'+cast(@i as varchar(10)),'Sahtiyan' + cast(@i as varchar(10)),'555 55 55'
  set @i=@i+1
end
GO
create unique clustered index IX_1 on tblIndexDeneme2 ( ID )
GO

DBCC IND('AdventureWorks2008','tblIndexDeneme2',1)

DBCC TRACEON (3604);
DBCC PAGE('AdventureWorks2008',1,40482,3)

--Unique Olmayan Clustered Index
drop table tblIndexDeneme2
GO
create table tblIndexDeneme2 (ID int, Ad varchar(20), SoyAd varchar(20), Telefon varchar(10))
GO
declare @i int=1
while @i<10000
begin
  insert tblIndexDeneme2
    select cast(@i/10 as int),'Turgay'+cast(@i as varchar(10)),'Sahtiyan' + cast(@i as varchar(10)),'555 55 55'
  set @i=@i+1
end
GO
create clustered index IX_1 on tblIndexDeneme2 ( ID )
GO

DBCC IND('AdventureWorks2008','tblIndexDeneme2',1)

DBCC TRACEON (3604);
DBCC PAGE('AdventureWorks2008',1,40625,3)


-------------------------------------------
--NonClustered Index’te Page’lerin Yapısı--
-------------------------------------------

--Heap Tablo + Unique NonClustered Index
drop table tblIndexDeneme2
GO
create table tblIndexDeneme2 (ID int, Ad varchar(20), SoyAd varchar(20), Telefon varchar(10))
GO
declare @i int=1
while @i<10000
begin
  insert tblIndexDeneme2
    select cast(@i/10 as int),'Turgay'+cast(@i as varchar(10)),'Sahtiyan' + cast(@i as varchar(10)),'555 55 55'
  set @i=@i+1
end
GO
create unique nonclustered index IX_2 on tblIndexDeneme2 ( Ad )
GO

DBCC IND('AdventureWorks2008','tblIndexDeneme2',2)

DBCC TRACEON (3604);
DBCC PAGE('AdventureWorks2008',1,40786,3)

--Unique Clustered Index + Unique NonClustered Index
drop table tblIndexDeneme2
GO
create table tblIndexDeneme2 (ID int, Ad varchar(20), SoyAd varchar(20), Telefon varchar(10))
GO
declare @i int=1
while @i<10000
begin
  insert tblIndexDeneme2
    select @i,'Turgay'+cast(@i as varchar(10)),'Sahtiyan' + cast(@i as varchar(10)),'555 55 55'
  set @i=@i+1
end
GO
create unique clustered index IX_1 on tblIndexDeneme2 ( ID )
GO
create unique nonclustered index IX_2 on tblIndexDeneme2 ( Ad )
GO

DBCC IND('AdventureWorks2008','tblIndexDeneme2',2)

DBCC TRACEON (3604);
DBCC PAGE('AdventureWorks2008',1,23099,3)

--Unique Olmayan Clustered Index + Unique NonClustered Index
drop table tblIndexDeneme2
GO
create table tblIndexDeneme2 (ID int, Ad varchar(20), SoyAd varchar(20), Telefon varchar(10))
GO
declare @i int=1
while @i<10000
begin
  insert tblIndexDeneme2
    select cast(@i/10 as int),'Turgay'+cast(@i as varchar(10)),'Sahtiyan' + cast(@i as varchar(10)),'555 55 55'
  set @i=@i+1
end
GO
create clustered index IX_1 on tblIndexDeneme2 ( ID )
GO
create unique nonclustered index IX_2 on tblIndexDeneme2 ( Ad )
GO

DBCC IND('AdventureWorks2008','tblIndexDeneme2',2)

DBCC TRACEON (3604);
DBCC PAGE('AdventureWorks2008',1,41236,3)

--Unique Olmayan Clustered Index + Unique Olmayan NonClustered Index
drop table tblIndexDeneme2
GO
create table tblIndexDeneme2 (ID int, Ad varchar(20), SoyAd varchar(20), Telefon varchar(10))
GO
declare @i int=1
while @i<10000
begin
  insert tblIndexDeneme2
    select cast(@i/10 as int),'Turgay'+cast(@i as varchar(10)),'Sahtiyan' + cast(@i as varchar(10)),'555 55 55'
  set @i=@i+1
end
GO
create clustered index IX_1 on tblIndexDeneme2 ( ID )
GO
create nonclustered index IX_2 on tblIndexDeneme2 ( Ad )
GO

DBCC IND('AdventureWorks2008','tblIndexDeneme2',2)

DBCC TRACEON (3604);
DBCC PAGE('AdventureWorks2008',1,41504,3)


------------------------------------------------------
----NonClustered Index’te Included Kolon Kullanımı----
------------------------------------------------------

--AdventureWorks Person.Address tablosunun kayıt sayısını arttırmak.
declare @i int=1
while @i<5 begin
  insert Person.Address (AddressLine1, AddressLine2,City,StateProvinceID,PostalCode)
    select AddressLine1 + CHAR(@i), isnull(AddressLine2,'') + CHAR(@i)
		,City,StateProvinceID,PostalCode
    from Person.Address
  set @i=@i+1
end

drop index IX_City on Person.Address
create nonclustered index IX_City on Person.Address
	(City)

--Çekmek istediğimiz sorgu. Query Plan'a bakalım.
--City üzerinde NonClustered Index tanımlı
select AddressLine1, PostalCode
from Person.Address
where City='Bothell'

--Hızlandırmak için 1.seçenek 
--City, AddressLine1, PostalCode üzerine composite index tanımlamak
drop index IX_1 on Person.Address

create nonclustered index IX_1 on Person.Address
	(City,AddressLine1,PostalCode) 

--Index tanımladıktan sonra Query Plan'a tekrar bakalım.
select AddressLine1, PostalCode
from Person.Address
where City='Bothell'

--Composite index'in boyutu
--25.210 MB
select b.name,b.index_id,SUM(a.reserved_page_count)*8/1024. as Size_MB
from sys.dm_db_partition_stats a inner join sys.indexes b
on a.object_id=b.object_id and a.index_id=b.index_id
where OBJECT_ID('Person.Address')=a.object_id
	and b.name = 'IX_1'
group by b.name,b.index_id	

--Şimdi composite index yerine included index oluşturalım.
drop index IX_1 on Person.Address
GO
create nonclustered index IX_1 on Person.Address
	(City) INCLUDE (AddressLine1,PostalCode)

--Query Plan
select AddressLine1, PostalCode
from Person.Address
where City='Bothell'

--Bu composite index'in boyutu
--25.02 MB
select b.name,b.index_id,SUM(a.reserved_page_count)*8/1024. as Size_MB
from sys.dm_db_partition_stats a inner join sys.indexes b
on a.object_id=b.object_id and a.index_id=b.index_id
where OBJECT_ID('Person.Address')=a.object_id
	and b.name = 'IX_1'
group by b.name,b.index_id	

--Aradaki boyut farkının sebebi included kolonların 
--non-leaf page'lerde bulunmamasıdır.

DBCC IND('AdventureWorks2008','person.address',7)

DBCC TRACEON (3604);
DBCC PAGE('AdventureWorks2008',1,45274,3)
Not : Blog haricinde, faydali gördügüm yazilari ve linkleri twitter adresimden paylasiyorum. Beni twitter'da takip etmek için : twitter.com/turgaysahtiyan


12.04.2011 tarihinde gerçekleştirmiş olduğum SQL Server’da Index Kavramı - Performance Tuning ve Query Optimization başlıklı webcast’imin videosu aşağıdadır.

Webcast’te kullandığım sunum dosyası ve scriptleri şuradan ulaşabilirsiniz.

İyi seyirler

Turgay Sahtiyan

 

Not : Blog haricinde, faydali gördügüm yazilari ve linkleri twitter adresimden paylasiyorum. Beni twitter'da takip etmek için : twitter.com/turgaysahtiyan


02.05.2011 tarihinde gerçekleştirmiş olduğum Microsoft SQL Azure’a Genel Bakış, SQL Azure Veritabanına İlk Bağlantı başlıklı webcast’imin videosu aşağıdadır.

[more]

İyi seyirler

Turgay Sahtiyan

Not : Blog haricinde, faydali gördügüm yazilari ve linkleri twitter adresimden paylasiyorum. Beni twitter'da takip etmek için : twitter.com/turgaysahtiyan


SQL Server 2008 de Snapshot kullanımını konu alan bu video da şu ana başlıklar dikkate alınmıştır.

  • Snapshot nedir?
  • Hangi amaçla kullanılabilir?
  • Nasıl çalışır?
  • Dikkat edilmesi gereken noktalar
  • Örnekler

Snapshot create kodu;

CREATE DATABASE AdventureWorks_dbss ON
( NAME = AdventureWorks_Data, FILENAME = 'd:\Snapshot\AdventureWorks_data.ss' )
AS SNAPSHOT OF AdventureWorks;
GO


Snapshot tan DB restore kodu

restore database AdventureWorks from database_snapshot='AdventureWorks_dbss'

 

İyi seyirler

SQL Server 2008 de Snapshot Kullanımı from Turgay Sahtiyan on Vimeo.

Not : Blog haricinde, faydali gördügüm yazilari ve linkleri twitter adresimden paylasiyorum. Beni twitter'da takip etmek için : twitter.com/turgaysahtiyan