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
<<  Ekim 2017  >>
PaSaÇaPeCuCuPa
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345
Keywords

13 farklı teknolojide 20 webcast’i konusunda uzman Microsoft mühendislerinden dinleme fırsatını kaçırmayın.!

 

Orjinal duyuru için : http://blog.microsoft.com.tr/microsoft-global-business-support-mea-ekibinin-web-seminer-takvimi-belli-oldu.html

 

Hemen kayıt olun ve bu fırsatı kaçırmayın!

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


Önümüzdeki 3 aylık periyotta gerçekleştirilecek, benim de organizasyon ekibinde bulunduğum ücretsiz webcast serisininin duyurusunu yapmak istiyorum.

Konusunda uzman Microsoft mühendis ve danışmanları tarafından verilecek ücretsiz webcast listesini aşağıda bulabilrsiniz

Linklere tıklayarak kayıt olabilir ve Microsoft ürün ve çözümlerinin Microsoft tarafından nasıl kullanıldığı hakkında detaylı bilgi alma şansını yakalayabilirsiniz.

Görüşmek üzere!

Session

Level

Date

Time

What is new in Hadoop 2.0 and Yarn

Ahmed Abd Allah - Senior Consultant

200

1/6/2014

2:00 PM (GMT+2)

HA & DR with SQL Server AlwaysOn Availability Groups

Turgay Sahtiyan – Senior Premier Field Engineer

200

1/8/2014

11:00 AM (GMT+2)

BizTalk Server Roadmap & What’s new in BizTalk Server 2013
Mohamed Malek – Principal Consultant

200

1/12/2014

2:00 PM (GMT+2)

SQL Server Database Migration

Ahmad Shahin - Consultant

300

1/14/2014

2:00 PM (GMT+2)

SQL Server AlwaysOn with Log Shipping Implementation, Experience from the Field

Situmalli Chandra Mohan – Senior Premier Field Engineer

300

1/14/2014

11:00 AM (GMT+2)

SQL Server Performance Troubleshooting – Which tools can be used for troubleshooting?

Batuhan Yildiz - Senior Premier Field Engineer

300

1/26/2014

11:00 AM (GMT+2)

Big Data Reference Architecture

Ahmed Abd Allah - Senior Consultant

300

2/6/2014

2:00 PM (GMT+2)

BizTalk Rules Engine Concepts

Mohamed Malek – Principal Consultant

300

2/16/2014

2:00 PM (GMT+2)

SQL Server Consolidation Strategies & Practices

Ahmad Shahin - Consultant

300

2/18/2014

2:00 PM (GMT+2)

Top Ten Performance Tips for SQL Server Developers

Turgay Sahtiyan – Senior Premier Field Engineer

300

2/19/2014

11:00 AM (GMT+2)

Writing Custom BizTalk WCF LOB Adapter Deep Dive

Mohamed Malek – Principal Consultant

400

3/9/2014

2:00 PM (GMT+2)

Journey in the life of the Data Scientist

Ahmed Abd Allah - Senior Consultant

200

3/12/2014

2:00 PM (GMT+2)

SQL Server AlwaysOn Availability Groups Deep Dive

Turgay Sahtiyan – Senior Premier Field Engineer

400

3/19/2014

11:00 AM (GMT+2)

SQL Server Internals – Wait Types

Batuhan Yildiz - Senior Premier Field Engineer

300

3/23/2014

11:00 AM (GMT+2)

SharePoint & DR Scenarios

Ahmad Shahin - Consultant

300

3/25/2014

2:00 PM (GMT+2)

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.04.2013 Pazartesi günü yapacağım webcast’in duyurusunu yapmak istiyorum.

SQL Server 2012 Upgrade ve Migration metodları üzerine konuşacağımız webcast saat 14:00’da başlayacak.

Özellikle halihazırda kullandığı SQL Server veritabanlarını SQL Server 2012’ye taşımak isteyenlerin katılmasını önerdiğim bu webcast’e aşağıdaki linki kullanarak kayıt olabilirsiniz.

https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032543843&Culture=TR-TR

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 Mart 2013 Salı (Yarın) günü yapacağım webcast’in duyurusunu yapmak istiyorum.

SQL Server 2012 yenilikleri üzerine konuşacağımız webcast saat 10:00’da başlayacak.

Kayıt olmak için aşağıdaki linki kullanabilirsiniz.

Başlangıcı: 19 Mart 2013 Salı 10:00 
Saat dilimi: (GMT+02:00) 
Süre: 1 saat
Kayıt Linki : http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200178672&CR_EAC=300073606

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


10 Ekim 2012 Çarşamba günü yapacağım webcast’in duyurusunu yapmak istiyorum.

SQL Server 2012 yenilikleri üzerine konuşacağımız webcast saat 10:00’da başlayacak.

Kayıt olmak için aşağıdaki linki kullanabilirsiniz.

Başlangıcı: 10 Ekim 2012 Çarşamba 10:00
Saat dilimi: (GMT+02:00)
Süre: 1 saat 30 dakika
Kayıt Linki : https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032527841&Culture=TR-TR&community=0

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 Eylül 2012 Çarşamba günü yapacağım webcast’in duyurusunu yapmak istiyorum.

SQL Server 2012 ile beraber gelen yeni High Availability çözümü olan AlwaysOn üzerine konuşacağımız bu webcast 10:00’da başlayacak.

Kayıt olmak için aşağıdaki linki kullanabilirsiniz.

Başlangıcı: 12 Eylül 2012 Çarşamba 10:00
Saat dilimi: (GMT+02:00)
Süre: 1 saat 30 dakika
Kayıt Linki : https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032527839&Culture=TR-TR&community=0

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


Merhaba,

19 Nisan 2012 Perşembe günü yapacağım webcast’in duyurusunu yapmak istiyorum.

SQL Server Öncüleri bünyesinde vereceğim SQL Server 2012 ile Gelen Yeni Özellikler başlıklı webcast’im 19.04.2012 tarihinde 10:00-11:00 saatleri arasında gerçekleşecek.

Aşağıdaki url’i kullanarak vereceğim bu webcast’e katılabilirsiniz.

https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032502479&Culture=TR-TR

http://www.sqlserveronculeri.com/10/EventSchedule/342/sql-server-2012-ile-gelen-yeni-ozellikler-i-web-semineri.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


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


14 Aralık 2012 Çarşamba günü yapacağım webcast’in duyurusunu yapmak istiyorum.

SQL Server 2012 ile Gelen Yeni Özellikler başlıklı webcast’im 14.12.2011 tarihinde 21:00-22:00 saatleri arasında gerçekleşecek.

Aşağıdaki url’i kullanarak vereceğim bu webcast’e katılabilirsiniz.

https://www.livemeeting.com/cc/mvp/join?id=4S9MBN&role=attend&pw=2NM%7E%60JK%7Bt

Konu ile ilgili CozumPark linki ise şu şekilde;

http://www.cozumpark.com/forums/thread/272620.aspx

SQL Server’ın 2012’nin ilk yarısında çıkması beklenen yeni versiyonu üzerinde konuşacağımız bu webcast’i kaçırmamanızı tavsiye ederim.

 

İ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


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


23 Kasım Çarşamba günü yapacağım webcast’in duyurusunu yapmak istiyorum.

SQL Server Performance Tuning İpuçları başlıklı webcast’im 23.11.2011 tarihinde 21:00-22:00 saatleri arasında gerçekleşecek.

Aşağıdaki url’i kullanarak vereceğim bu webcast’e katılabilirsiniz.

https://www.livemeeting.com/cc/mvp/join?id=6N4JP9&role=attend&pw=2NM%7E%60JK%7Bt

Webcast süresince şu performans ipuçları üzerinde duracağız.

  1. FILLFACTOR – PAD_INDEX
  2. Filtered Index
  3. Indexed View
  4. Filtered Index vs Indexed View
  5. NC Index’lerde Included Kolon Kullanımı
  6. Index Seek : PT Bitti mi?
  7. Where Bloğunda Case Kullanımı
  8. Where Bloğunda Collate Kullanımı
  9. Eksik Index (Missing Index) Analizi
  10. Index Maintenance
  11. İstatistiğin Güncel Olmasının Önemi
  12. Optimize For Ad Hoc Workloads
  13. Instant File Initialization
  14. Veritabanı Dosya Büyümeleri

 

Not:Katılım url’i webcast başlamadan yarım saat önce aktif hale gelecektir.

 

İ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


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


Nisan ayında yaptığım “SQL Server’da Index Kavramı–Performance Tuning ve Query Optimization” başlıklı web seminerimi SQL Server Öncüleri topluluğu altında perşembe günü tekrar yapıyorum.

İlgili duyuruya aşağıdaki linkten erişebilirsiniz.

http://www.sqlserveronculeri.com/10/EventSchedule/191/sql-server’da-index-kavrami--performance-tuning-ve-query-optimization-web-semineri.aspx

Kayıt olmak için aşağıdaki bağlantıyı kullanabilirsiniz.

https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032495105&culture=tr-TR

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


17 Ağustos Çarşamba günü yapacağım webcast’in duyurusunu yapmak istiyorum.

Microsoft SQL Azure’a Genel Bakış, SQL Azure Veritabanına İlk Bağlantı başlıklı webcast’im 17.08.2011 tarihinde 21:00-22:00 saatleri arasında gerçekleşecek.

Aşağıdaki url’i kullanarak vereceğim bu webcast’e katılabilirsiniz.

https://www.livemeeting.com/cc/mvp/join?id=NS8GZZ&role=attend&pw=2NM%7E%60JK%7Bt

Ajandamız şu şekilde olacak;

  • Neden SQL Azure?
    • Uygun Maliyetli Ölçeklenebilirlik
    • Yüksek Süreklilik (High Availability)
    • Yönetimsel Maliyetlerin Düşürülmesi
  • Topoloji
  • Ring Topology
  • Veri Merkezleri
  • SQL Azure’da Güvenlik
  • Migration – Deployment
  • SQL Server – SQL Azure Farklılıkları
  • SQL Azure’a İlk Bağlantı
  • Soru – Cevap

Not:Katılım url’i webcast başlamadan yarım saat önce aktif hale gelecektir.

İ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


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


23 Mayıs Pazartesi günü yapacağım webcast’in duyurusunu yapmak istiyorum.

SQL Server 2008 Performance Data Collection ile Veritabanı Sunucularınızı İzleyin başlıklı webcast’im 23.05.2011 Pazartesi günü 21:00-22:00 saatleri arasında gerçekleşecek.

Aşağıdaki url’i kullanarak vereceğim bu webcast’e katılabilirsiniz.

https://www.livemeeting.com/cc/mvp/join?id=7Z3BS9&role=attend&pw=w%27%257%265Rnd

Ajandamız şu şekilde olacak;

  • Performance Data Collection (PDC) Nedir ?
  • Datawarehouse Kurulumu
  • Default Collection Set’lerin Kurulması
  • Default Collection Set’lerin Raporlanması
  • PDC’da Server Side Trace Kullanımı
  • Bloklanan Sorguların PDC ile Toplanıp Raporlanması
  • PDC ile Deadlock Monitoring
  • Troubleshoot
  • Soru – Cevap

Not:Katılım url’i webcast başlamadan yarım saat önce aktif hale gelecektir.

İ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


3 Mayıs Salı günü yapacağım webcast’in duyurusunu yapmak istiyorum.

Microsoft SQL Azure’a Genel Bakış, SQL Azure Veritabanına İlk Bağlantı başlıklı webcast’im 03.05.2011 tarihinde 21:00-22:00 saatleri arasında gerçekleşecek.

Aşağıdaki url’i kullanarak vereceğim bu webcast’e katılabilirsiniz.

https://www.livemeeting.com/cc/mvp/join?id=G25R3F&role=attend&pw=rN87%2Cjk-H

Ajandamız şu şekilde olacak;

  • Neden SQL Azure?
    • Uygun Maliyetli Ölçeklenebilirlik
    • Yüksek Süreklilik (High Availability)
    • Yönetimsel Maliyetlerin Düşürülmesi
  • Topoloji
  • Ring Topology
  • Veri Merkezleri
  • SQL Azure’da Güvenlik
  • Migration – Deployment
  • SQL Server – SQL Azure Farklılıkları
  • SQL Azure’a İlk Bağlantı
  • Soru - Cevap

Not:Katılım url’i webcast başlamadan yarım saat önce aktif hale gelecektir.

 

İ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


12 Nisan Salı günü yapmış olduğum webcast’te kullandığım powerpoint dosyasını ve scriptleri sizinle paylaşmak istiyorum.

İlerleyen günlerde webcast’i video formatında da paylaşıyor olacağım.

[more]

PowerPoint Dosyası

http://www.turgaysahtiyan.com/file.axd?file=2011%2f01%2fSQLServerdaIndexKavrami.pptx

Sunumda Kullanılan Scriptler

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

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

DBCC TRACEON (3604);
DBCC PAGE('AdventureWorks2008',1,43218,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

select * from sys.indexes where object_name(object_id)='tblIndexDeneme1'

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

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

--NonClustered Index Leaf Level Page Örneği
DBCC TRACEON (3604);
DBCC PAGE('AdventureWorks2008',1,40603,3)


select * from tblIndexDeneme1 where ID=35000
DBCC IND('AdventureWorks2008','tblIndexDeneme1',1)

DBCC PAGE('AdventureWorks2008',1,3488,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,23297,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,23305,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,52896,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,23069,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,23177,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,23537,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
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
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'

--Bu 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,44133,3)

 

İ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