Sql Server 2008 For Developers

          Yakup Tarık Kranda
     Bilgisayar Yüksek Mühendisi
AJANDA
• Hot Add CPU
• Transparent Data Encryption
• Policy Management
• Resource Governor
• Data And Backup Compression
•...
Hot Add CPU
• Çalışma zamanında CPU ekleme olanağı.
• Windows server ürün ailesinin özelliği.
• Sql Server Service Restart...
Transparent Data Encryption
• Sql Server 2005 kolon ve tablo seviyesi
şifreleme ile geldi.

• Önceleri şifrele ve gönder m...
Transparent Data Encryption
Ne sağlar?
Nasıl çalışıyor?
Ne zaman tercih edilmeli?
TempDB kullanımını nasıl etkiler?
Transparent Data
Encryption
Policy Management
• Sql Server 2008 ile policy yönetiminde
Declarative Management Framework
kullanılmaktadır.

• Belirli b...
Policy Management
Uygulama Modları

• On Demand : Manuel olarak, zorlama yok.
• On Schedule : Belirli aralıklarla, uyumsuz...
Policy Management
Policy Management &
Server Group
Management
Resource Governor
• Sistem kaynaklarının veritabanı uygulamaları
arasında paylaşımını yönetir.

• Aynı sunucuyu paylaşan m...
Resource Governor
Data Compression
• Verilerinizi sıkıştırarak gereksiz alan kaybından
kurtulabilirsiniz. (Örn. int 30000 değeri
normalde 4 ...
Data Compression (Page Compression)
                             Sıkıştırma
                             Öncesi




      ...
Data and Backup
Compression
Performance Data Collector
• Problemleri çözmek ve sistemi incelemek
adına Sql Server 2008 ile gelen entegre çözüm
aracı.
...
Performance Data
Collector
Change Data Capture
• Data üzerinde gerçekleşen değişiklikleri eski
zamanlarda trigger yöntemiyle yakalıyorduk.

• Sql Ser...
Change Tracking
• Change Data Capture özelliği gibi veri değişim
bilgisini izlemekte kullanılır.

• Row un değiştiği bilgi...
Change Data Capture




                      Change Tracking
Change Tracking
T-SQL Syntax Enhancements
•   Tek adımda tanımlayıp, ilk değer verme
     DECLARE @i int = 4;
•   Birleşik atama operatörl...
User Defined Table Types
•   Artık bir tabloya birden fazla kayıt
    yerleştirmemiz gerektiğinde N defa yerleştirme
    s...
Table Valued Parameters
•   Çoklu kayıt girişi için bir prosedüre parametre
    olarak kullanıcı tanımlı bir tablo tipi ge...
Table Valued
Parameters
XML Type Enhancements
• Genişletilmiş Şema Desteği
1. Lax Validation
2. Date Time tiplerinde Time Zone validasyon
     des...
Lax Validation
•   processContents durumları;

    skip
    strict
    lax (yeni)
Lax Validation & Union-
List Genişletmeleri
let Anahtar Sözcüğü ve
Yeni Insert İfadesi
New Date Types
• Sql Server 2008 ile yeni Date, Time ve
  DateTimeOffset, DateTime2 veritipleri geldi.
• Önceki sürümlerde...
Date / Time Types



 DECLARE @t0 TIME(2) = ’10:09:54.1234567’,
                @t1 TIME = ‘10:09:54.1234567’

           ...
DateTime2 / DateTimeOffset Types




 DECLARE @d0 DATETIMEOFFSET = '1983-09-15 19:20:00.1234567 +02:00'
 SELECT @d0 as ‘İs...
New Date Types

     SQL                 ODBC                   OLEDB             ADO.NET
     DATE         SQL_TYPE_DATE/...
New Date Functions




•   Sql Server’ ın önceki sürümlerinde varolan
    DATEADD, DATEDIFF, DATEPART, DATENAME gibi
    m...
Spatial Data Types




            geography veri tipi                                 geometry veri tipi
• Geodetic (“Yuv...
Spatial Data Types
• Her iki tipte CLR type özelliğindedir, ancak
kullanılmaları için CLR enable edilmesine gerek
yoktur.
...
Functions For Spatial Data Types
Spatial Indexes
• Spatial veri tipi 4 seviye de hücrelere
ayrıştırılarak indekslenir.
Varsayılan ayarlar ile,
 Seviye 1, ...
Spatial Indexes
• Spatial indekslerin varsayılan hücre ayrıştırma
işlemi ezilebilir.

LOW : 4x4 = 16 hücre
MEDIUM : 8x8 ...
Spatial Veri Tipi
Hierarchyid Data Type
• Verilerin tablo üzerinde belirli bir hiyerarşi
içerisinde parent-ebeveyn ilişkisi ile
saklanabilme...
Hierarchyid Data Type
• Oluşturma sırasında yardımcı methodlar vardır:
         hierarchyid::GetRoot();
         hierarchy...
Hierarchyid Data Type
                 A          Level 0




         B       E      F   Level 1




     C       D      ...
Hierarchyid Veri Tipi
Merge Expression
       Dışarıdan gelen bilginin birleştirilmesi için

  Source Table
 (Stock Trading)
Stock    Quantity ...
Merge Expression
      Çoklu DML operasyonları için tek bir ifade yazma
       kolaylığı
      Kaynak ve hedef arasında ...
Merge Expression
• 3 grup şeklinde ayrıştırılır:

       WHEN MATCHED – 2 adet olabilir, birisi Delete
diğeri Update için,...
Merge Expression
• Varolan tetikleyiciler ve kısıtlar çalışmaya devam
eder, tetikleyiciler bir kere tetiklenir.

• Merge i...
Merge İfadesi
Grouping Sets Clause
  Tek bir ifade içinde çoklu gruplama
  Farklı gruplama işlemlerinin UNION ALL ile
   birliştirilme...
Grouping Sets İfadesi
Sparce Columns
• NULL değer içermesi olasılığı çok fazla olan kolonlar
sparce kolonlara dönüştürülerek yerden tasarruf
sağ...
Sparce Columns
• NULL değerler için kazanım sağlanırken Non-NULL
değerler için yer kaybı vardır.

Create Table CustomerInf...
Sparce Columns
• Ne zaman kullanılmalı?
• Default Değer atanamaz.
• ROWGUID olarak tanımlanamaz, IDENTITY kolon
olamaz.
• ...
Sql Server2008 For Developers By Tarik
Sql Server2008 For Developers By Tarik
Upcoming SlideShare
Loading in …5
×

Sql Server2008 For Developers By Tarik

1,494 views

Published on

New platform and development features inside Sql Server 2008

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,494
On SlideShare
0
From Embeds
0
Number of Embeds
153
Actions
Shares
0
Downloads
34
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Sql Server2008 For Developers By Tarik

  1. 1. Sql Server 2008 For Developers Yakup Tarık Kranda Bilgisayar Yüksek Mühendisi
  2. 2. AJANDA • Hot Add CPU • Transparent Data Encryption • Policy Management • Resource Governor • Data And Backup Compression • Performance Data Collectors • Change Tracking • T-Sql Enhancements • Table Valued Parameters • Xml Type Enhancements • New Date Types • New Spatial Data Types • New Hierarchyid Data Type • Merge Expression • Grouping Sets • Sparce Columns
  3. 3. Hot Add CPU • Çalışma zamanında CPU ekleme olanağı. • Windows server ürün ailesinin özelliği. • Sql Server Service Restart ihtiyacı artık yok. Gereksinimler • 64 bit Win Server 2008 Data Center Edt. ya da Windows Server 2008 Enterprise Edt. • Donanımın desteği • Sql Server 2008 Enterprise Edition Sürümü • RECONFIGURE
  4. 4. Transparent Data Encryption • Sql Server 2005 kolon ve tablo seviyesi şifreleme ile geldi. • Önceleri şifrele ve gönder mekanizması. • Sql Server 2008 ile tüm db files ve loglar şifrelenebilir. • Programalama eforu sarfetmeye gerek yok. • Alınan backup dosyalarıda şifrelenir.
  5. 5. Transparent Data Encryption Ne sağlar? Nasıl çalışıyor? Ne zaman tercih edilmeli? TempDB kullanımını nasıl etkiler?
  6. 6. Transparent Data Encryption
  7. 7. Policy Management • Sql Server 2008 ile policy yönetiminde Declarative Management Framework kullanılmaktadır. • Belirli bir server grubunu tek bir configuration server ayarları ile yönetilebilir. • Naming conventionlar, logon modları vs. Belirli bir standarta kavuşturulabilir. •Sql Server Management Studio kolaylığı
  8. 8. Policy Management Uygulama Modları • On Demand : Manuel olarak, zorlama yok. • On Schedule : Belirli aralıklarla, uyumsuz durumlar loglanır. • On Change – Log Only : Değişiklik olur olmaz, uyumsuz durumlar loglanır. • On Change – Prevent : Değişiklik olur olmaz, uyumsuz durumlar engellenir.
  9. 9. Policy Management
  10. 10. Policy Management & Server Group Management
  11. 11. Resource Governor • Sistem kaynaklarının veritabanı uygulamaları arasında paylaşımını yönetir. • Aynı sunucuyu paylaşan mission-critic uygulamaların birbirini ezmesi engellenir. • Kaynaklar; Resource Pool ve Workload Groups olarak modüllere ayrıştılabilirler. • Her gelen incoming request Classifier Function tarafından ayrıştırılarak uygun workload group özellikleri ile yeni session açılır.
  12. 12. Resource Governor
  13. 13. Data Compression • Verilerinizi sıkıştırarak gereksiz alan kaybından kurtulabilirsiniz. (Örn. int 30000 değeri normalde 4 byte yerine 2 byte ile saklanabilir.) • Backup dosyalarınızı yedekleme esnasında sıkıştırabilirsiniz. Yetersiz disk alanı engeline çözüm. • Row Compression ve Page Compression (Row, Prefix ve Dictionary Compression)
  14. 14. Data Compression (Page Compression) Sıkıştırma Öncesi Prefix Sıkıştırma Sonrası Dictionary Sıkıştırma Sonrası
  15. 15. Data and Backup Compression
  16. 16. Performance Data Collector • Problemleri çözmek ve sistemi incelemek adına Sql Server 2008 ile gelen entegre çözüm aracı. Gereksinimler  Data Collector Account Tanımı  Management Data Warehouse Konfigurasyonu  Sql Server Agent Zamanlayıcısı
  17. 17. Performance Data Collector
  18. 18. Change Data Capture • Data üzerinde gerçekleşen değişiklikleri eski zamanlarda trigger yöntemiyle yakalıyorduk. • Sql Server 2008 ile Change Data Capture özelliği trigger kullanımının yerini aldı. • DDL değişiklikleri de yakalanabilmektedir. • Asenkron olarak bir process transaction log dosyasını izleyerek geri yönelik değişim bilgisini oluşturur.
  19. 19. Change Tracking • Change Data Capture özelliği gibi veri değişim bilgisini izlemekte kullanılır. • Row un değiştiği bilgisi saklanır, ancak değişimin içeriği depo edilmez. • Değişen bilgi saklanmadığı için daha az saklama alanına ihtiyaç duyar. • Değişiklikleri izleyen senkron bir mekanizma ile yürütülür.
  20. 20. Change Data Capture Change Tracking
  21. 21. Change Tracking
  22. 22. T-SQL Syntax Enhancements • Tek adımda tanımlayıp, ilk değer verme DECLARE @i int = 4; • Birleşik atama operatörleri SET @i += 1; • Satır yapılandırıcıları DECLARE @t TABLE (id int, name varchar(20)); INSERT INTO @t VALUES (1, ‘Onur'), (2, ‘Necdet'), (3, ‘Tarık');
  23. 23. User Defined Table Types • Artık bir tabloya birden fazla kayıt yerleştirmemiz gerektiğinde N defa yerleştirme scripti çalıştırmamıza gerek yok. • 1-N ilişkideki tablo girişleri için ideal. • Artık bu tip işler için kullanıcı tanımlı tablolar var. Bu değişkenler bir kolon tipi olamazlar, sadece nonclustered index içerebilirler, default değerleri olamaz.
  24. 24. Table Valued Parameters • Çoklu kayıt girişi için bir prosedüre parametre olarak kullanıcı tanımlı bir tablo tipi geçebiliriz. • Bu parametre READONLY olmalıdır. • Bir kullanıcı tanımlı tablo üzerinde DML manipülasyonu yapamayız. • Dolayısıyle OUTPUT parametresi olarakta tanımlayamamız.
  25. 25. Table Valued Parameters
  26. 26. XML Type Enhancements • Genişletilmiş Şema Desteği 1. Lax Validation 2. Date Time tiplerinde Time Zone validasyon desteği 3. Union ve List Tiplerinde validasyon genişletmeleri • let anahtar sözcüğü desteği ile atama yapma • DML Geliştirmeleri
  27. 27. Lax Validation • processContents durumları; skip strict lax (yeni)
  28. 28. Lax Validation & Union- List Genişletmeleri
  29. 29. let Anahtar Sözcüğü ve Yeni Insert İfadesi
  30. 30. New Date Types • Sql Server 2008 ile yeni Date, Time ve DateTimeOffset, DateTime2 veritipleri geldi. • Önceki sürümlerde;  1753 < DateTime < 9999 arasında  Hassasiyet 0,00333 saniye • Sql Server 2008 ile;  0001 < Date, DateTime2 < 9999  Hassasiyet 100 Nanosec. • Hassasiyet ayarı alan kazandırır. • Date ve Time tipleri alan kazandırır.
  31. 31. Date / Time Types DECLARE @t0 TIME(2) = ’10:09:54.1234567’, @t1 TIME = ‘10:09:54.1234567’ 10:09:54.12 10:09:54.1234567 DECLARE @d3 TIME(7) = SYSDATETIME() WAITFOR DELAY '00:00:01' DECLARE @d4 TIME(7) = SYSDATETIME() SELECT DATEDIFF(millisecond, @d3, @d4) 1000
  32. 32. DateTime2 / DateTimeOffset Types DECLARE @d0 DATETIMEOFFSET = '1983-09-15 19:20:00.1234567 +02:00' SELECT @d0 as ‘İstanbul Zamanı', SWITCHOFFSET(@d0, +00.00) as 'Londra Zamanı'
  33. 33. New Date Types SQL ODBC OLEDB ADO.NET DATE SQL_TYPE_DATE/SQL_DATE DBTYPE_DBDATE DateTime TIME SQL_TIME/SQL_SS_TIME2 DBTYPE_DBTIME/DBTYP TimeSpan E_DBTIME2 DATETIMEOFFSET SQL_SS_TIMESTAMPOFFSE DBTYPE_DBTIMESTAMP DateTimeOffset T OFFSET DATETIME2 SQL_TYPE_TIMESTAMP DBTYPE_DBTIMESTAMP DateTime SQL_TIMESTAMP
  34. 34. New Date Functions • Sql Server’ ın önceki sürümlerinde varolan DATEADD, DATEDIFF, DATEPART, DATENAME gibi methodlar bu yeni veri tipleri ile genişletilmişlerdir.
  35. 35. Spatial Data Types geography veri tipi geometry veri tipi • Geodetic (“Yuvarlak Yeryüzü”) geospatial • Planar (“Düz Yeryüzü”) geospatial model model • Define points, lines, and areas with coordinates • Define points, lines, and areas with longitude • Use for localized areas or non-projected and latitude surfaces such as interior spaces • Account for planetary curvature and obtain accurate “great circle” distances
  36. 36. Spatial Data Types • Her iki tipte CLR type özelliğindedir, ancak kullanılmaları için CLR enable edilmesine gerek yoktur. • Veriler binary olarak saklanmaktadırlar, ancak ifade edilirken Open Geospatial Consortium (OGC) nin tanımladığı Well Known Text (WKT) formatı kullanılabilir. • GML ve Well Known Binary (WKB) de desteklenmektedir.
  37. 37. Functions For Spatial Data Types
  38. 38. Spatial Indexes • Spatial veri tipi 4 seviye de hücrelere ayrıştırılarak indekslenir. Varsayılan ayarlar ile,  Seviye 1, 8x8 hücre, toplam 64 hücre  Seviye 2, ilk seviyenin üzerinden 8x8 hücre, toplam 4096 hücre  Seviye 3, seviye 2 deki her bir hücre için 8x8 hücre, toplam 262.144 hücre  Seviye 4 ise aynı şekilde 3. seviye yi 8x8 hücreye ayrıştırır, toplam 16.777.216 hücre • Ayrıştırma işleminden sonra mozaik döşeme(tessellation) prosesi başlar ve tamamlanır.
  39. 39. Spatial Indexes • Spatial indekslerin varsayılan hücre ayrıştırma işlemi ezilebilir. LOW : 4x4 = 16 hücre MEDIUM : 8x8 = 64 hücre HIGH : 16x16 = 256 hücre
  40. 40. Spatial Veri Tipi
  41. 41. Hierarchyid Data Type • Verilerin tablo üzerinde belirli bir hiyerarşi içerisinde parent-ebeveyn ilişkisi ile saklanabilmesini sağlayan yeni veri tipidir. • CLR Type özelliğine sahiptir ancak CLR Enabled yapılması gerekmez. • Hiyerarşi bilgisinin saklanması konusunda eski yöntemlere göre yerden tasarruf sağlanır. • Çeşitli methodlar ile kolayca oluşturulabilir, izlenebilir.
  42. 42. Hierarchyid Data Type • Oluşturma sırasında yardımcı methodlar vardır: hierarchyid::GetRoot(); hierarchyid::GetDescendant(NULL, NULL); • Gösterim kolaylığı sağlayan methodları vardır: hierarchyid::GetLevel(); hierarchyid::ToString(); hierarchyid::Parse(path); • İlişkileri izlemek için kullanılan Methodlar vardır: hierarchyid::IsDescendantOf(Node) hierarchyid::GetAncestor(n) hierarchyid::GetReparentedValue(existingNode, NewNode)
  43. 43. Hierarchyid Data Type A Level 0 B E F Level 1 C D Level 2
  44. 44. Hierarchyid Veri Tipi
  45. 45. Merge Expression  Dışarıdan gelen bilginin birleştirilmesi için Source Table (Stock Trading) Stock Quantity Target Table Stock Quantity ORCL 150 (Stock Holding) ORCL 150 AMZN 150 INSERT Stock Quantity GOOG 550 AMZN -50 CSCO 500 MSFT 230 MSFT 55 MSFT 200 AMZN 100 GOOG -50 GOOG 50 GOOG 550 UPDATE MSFT -25 CSCO -500
  46. 46. Merge Expression  Çoklu DML operasyonları için tek bir ifade yazma kolaylığı  Kaynak ve hedef arasında kurulan bir join üzerinden işlem görür Pre-SQL 2008 SQL 2008 UPDATE TGT MERGE INTO dbo.StockHolding AS TGT SET TGT.quantity += SRC.quantity, USING dbo.StockTrading AS SRC TGT.LastTradeDate = SRC.TradeDate ON TGT.stock = SRC.stock FROM dbo.StockHolding AS TGT JOIN dbo.StockTrading AS SRC WHEN MATCHED AND (t.quantity + s.quantity = 0) ON TGT.stock = SRC.stock; THEN DELETE INSERT INTO dbo.StockHolding (stock, WHEN MATCHED THEN lasttradedate, quantity) UPDATE SET t.LastTradeDate = s.TradeDate, SELECT stock, tradedate, quantity t.quantity += s.quantity FROM dbo.StockTrading AS SRC WHERE NOT EXISTS WHEN NOT MATCHED THEN (SELECT * FROM dbo.StockHolding AS TGT INSERT VALUES WHERE TGT.stock = SRC.stock); (s.Stock,s.TradeDate,s.Quantity)
  47. 47. Merge Expression • 3 grup şeklinde ayrıştırılır: WHEN MATCHED – 2 adet olabilir, birisi Delete diğeri Update için, ekstra koşul ile ayrıştırılmalıdır. WHEN NOT MATCHED [By TARGET] – Sadece 1 adet olabilir, insert edilecek ifadeleri belirlemekte kullanılır. WHEN NOT MATCHED [By SOURCE] – En fazla 2 adet kullanılabilir, birisi Delete diğeri Update için, ekstra koşul ile ayrıştırılmalıdır.
  48. 48. Merge Expression • Varolan tetikleyiciler ve kısıtlar çalışmaya devam eder, tetikleyiciler bir kere tetiklenir. • Merge işlemi transactional bir işlemdir, açık olarak transaction açmaya gerek yoktur. • On ifadesi üzerinde primary key veya indeks kolon tanımlamaları yapmak performans artışı sağlar. • Tablo hintlerine izin verilir.
  49. 49. Merge İfadesi
  50. 50. Grouping Sets Clause  Tek bir ifade içinde çoklu gruplama  Farklı gruplama işlemlerinin UNION ALL ile birliştirilmesini basitleştirir. Pre-SQL 2008 SQL 2008 SELECT customerType,Null as SELECT TerritoryID,MAX(ModifiedDate) customerType,TerritoryID,MAX(ModifiedDa FROM Sales.Customer GROUP BY te) customerType FROM Sales.Customer UNION ALL GROUP BY GROUPING SETS ((customerType), SELECT Null as (TerritoryID)) order by customerType customerType,TerritoryID,MAX(Modifie dDate) FROM Sales.Customer GROUP BY TerritoryID order by TerritoryID
  51. 51. Grouping Sets İfadesi
  52. 52. Sparce Columns • NULL değer içermesi olasılığı çok fazla olan kolonlar sparce kolonlara dönüştürülerek yerden tasarruf sağlanır. Create Table CustomerInfo ( CustomerID int PRIMARY KEY, CustomerName varchar(100) NOT NULL, LocationCount int NULL ) 1000 kayıt için, sadece 200 adet LocationCount tanımlandıysa, toplam 1000 x 4 = 4000 byte harcanır.
  53. 53. Sparce Columns • NULL değerler için kazanım sağlanırken Non-NULL değerler için yer kaybı vardır. Create Table CustomerInfo ( CustomerID int PRIMARY KEY, CustomerName varchar(100) NOT NULL, LocationCount int NULL SPARSE ) 200 x (4 + 4 byte overhead) = 1600 byte + 0 byte = 1600 byte < 4000 byte
  54. 54. Sparce Columns • Ne zaman kullanılmalı? • Default Değer atanamaz. • ROWGUID olarak tanımlanamaz, IDENTITY kolon olamaz. • GEOGRAPHY, GEOMETRY, TEXT, NTEXT, IMAGE, TIMESTAMP, Kullanıcı Tanımlı Tipler, VARBINARY(MAX), FILESTREAM tipleri haricindeki tipleri destekler. • Tablo Tipleri sparse kolon içeremez. • Sparse kolona sahip bir tablo sıkıştırılamaz. • Merge Replication desteklemez, ancak Change Tracking, Change Data Capture, Transactional Replication destekler.

×