Presentation laddar. Vänta.

Presentation laddar. Vänta.

André Henriksson & Anders Wedahl ISV DE DPE Microsoft Corporation.

Liknande presentationer


En presentation över ämnet: "André Henriksson & Anders Wedahl ISV DE DPE Microsoft Corporation."— Presentationens avskrift:

1 André Henriksson & Anders Wedahl ISV DE DPE Microsoft Corporation

2 Historik och Framtid Data som en plattform Nyheter; T-SQL i SQL Server 2008 Datatyper, TSQL Ny funktionalitet i SQLServer 2008 som berör hur vi designar våra applikationer. ServiceBroker, CDC, Change Tracking

3 Credit: Euan Garden

4 Ny Spelplan

5 Dynamisk utveckling Mer än relationsdatabas Djup insikt Dataplattformen för företag Mobile and Desktop OLAP FILE XML RDBMS Services Query AnalysisReportingIntegrationSynch Search Cloud Server “Enabling customers of all sizes to derive value from ALL data, birth through archival”

6 Object modell __________________________________________ Konceptuell modell __________________________________________ Fysiks datamodell

7

8 Datatyper SQL Query Language Procedural Language CLR Integration Globalisering Mer än relationsdatabas Annat

9 Separata datatyper för tid och datum Större precision tider < 1 sekund Större datumintervall Tids-/datumdatatyper som hanterar tidszoner

10 Endast datum till Gregorian Date Endast tid Precision upp till 100 nanosekunder Time Tidszoner sparas, UTC Precision upp till 100 nanosekunder DateTimeOffset Stora datumintervall Precision upp till 100 nanosekunder Hanterar inte tidszoner DateTime2

11 SQLODBCOLEDBADO.NET DATESQL_TYPE_DATE/SQL_DATEDBTYPE_DBDATE DateTime TIMESQL_TIME/SQL_SS_TIME2DBTYPE_DBTIME/DBTYPE _DBTIME2 TimeSpan DATETIMEOFFSETSQL_SS_TIMESTAMPOFFSETDBTYPE_DBTIMESTAMPOF FSET DateTimeOffset DATETIME2SQL_TYPE_TIMESTAMP SQL_TIMESTAMP DBTYPE_DBTIMESTAMPDateTime

12 CREATE TABLE t1 (c1 DATE, c2 TIME(3), c3 DATETIME2(7) NOT NULL DEFAULT GETDATE(), c4 DATETIMEOFFSET CHECK (c4 < CAST(GETDATE() AS DATETIMEOFFSET(0))) ); INSERT INTO t1 VALUES (' ', '23:59:59', ' :59: ', ' :59: :00'); INSERT INTO t1 VALUES (' ', '23:59:59', ' :59: ', ' :59: :00'); SELECT c4, DATEPART(TZOFFSET, c4), DATEPART(ISO_WEEK, c4), DATEPART(MICROSECOND, c4) FROM t1;

13

14 SQL Server™ 2005 User-Defined Types (UDTs) hanterade 8K Räckte för många objekt men vissa tex spatiala objekt blev för stora SQL Server 2008 UDTs kan vara lika stora som de “inbyggda” – konceptuellt identisk med varbinary(max) Storleken på en UDT definieras av datatypen Konverteras till varbinary(max) eller image för äldre klienter

15 TABLE ( [CustomerID] int NULL, [FirstName] varchar(50) NOT NULL, [LastName] varchar(50) NOT NULL, [CompanyName] [nvarchar](128) NULL )

16 Egendefinierade tabelldatatyper Ny datatyp definierad av användaren Formad i linje med definitionen på tabellvariabler Kan användas för att definiera tabellvariabler Kan definiera index och “constraints” Ny vy för att se definierade typer: Sys.table_types Fördelar Användarvänligt, Typmatchning CREATE TYPE myT AS table (a int, b varchar(100))

17 CREATE TYPE myTableType AS TABLE ( STOCK VARCHAR(10) PRIMARY KEY CLUSTERED, TradeDate DATE CHECK (TradeDate < convert(date,SYSDATETIME())), Quantity INT); myTableType; INSERT VALUES ('MSFT',convert(date,SYSDATETIME()),1) INSERT SELECT Stock, MAX(CONVERT(DATE, TradeTime)), SUM(Quantity) FROM DailyTrades GROUP BY Stock SELECT * WHERE stock = 'MSFT' SET stock = 'microsoft' WHERE stock = 'MSFT'

18 Datatyper SQL Query Language Procedural Language CLR Integration Globalisering Mer än relationsdatabas Annat

19 Nytt DML-uttryck som kombinerar multipla DML-operationer Byggsten för effektiv ETL Uppfyller SQL-2006 standarden XXXXX XXX XXX XXXX XXX XXXXXXXXXX XX XXXX XXXXX XXX XX Source Source kan vara en tabell eller en fråga

20 Nytt DML-uttryck som kombinerar multipla DML-operationer Byggsten för effektiv ETL Uppfyller SQL-2006 standarden XXXXX XXX XXX XXXX XXX XXXXXXXXXX XX XXXX XXXXX XXX XX SourceTarget XXXXX X XXXX XXX Target kan vara en tabell eller en uppdaterbar vy

21 Nytt DML-uttryck som kombinerar multipla DML-operationer Byggsten för effektiv ETL Uppfyller SQL-2006 standarden XXXXX XXX XXX XXXX XXX XXXXXXXXXX XX XXXX XXXXX XXX XX SourceTarget XXXXX X XXXX XXX XX XXX XXX Om source matchar target, UPDATE UPDATE

22 Nytt DML-uttryck som kombinerar multipla DML-operationer Byggsten för effektiv ETL Uppfyller SQL-2006 standarden XXXXX XXX XXX XXXX XXX XXXXXXXXXX XX XXXX XXXXX XXX XX SourceTarget XXXXX XXX XXX XXXX XXX XXXXXXXXXX XX XXXX XXXXX XXX XX XXX Ingen träff, INSERT

23 Nytt DML-uttryck som kombinerar multipla DML-operationer Byggsten för effektiv ETL Uppfyller SQL-2006 standarden XXXXX XXX XXX XXXX XXX XXXXXXXXXX XX XXXX XXXXX XXX XX SourceTarget XXXXX XXX XXX XXXX XXX XXXXXXXXXX XX XXXX XXXXX XXX XX XXX Om source INTE matchar, DELETE DELETE

24 CREATE TABLE Source (id INT, name NVARCHAR(100), qty INT); CREATE TABLE Target (id INT, name NVARCHAR(100), qty INT); -- Synchronize source data with target MERGE Target AS t USING Source AS s ON t.id = s.id WHEN MATCHED AND (t.name != s.name OR t.qty!= s.qty) THEN -- Row exists and data is different UPDATE SET t.name = s.name, t.qty = s.qty WHEN NOT MATCHED THEN -- Row exists in source but not in target INSERT VALUES (s.id, s.name, s.qty) WHEN SOURCE NOT MATCHED THEN -- Row exists in target but not in source DELETE OUTPUT $action, inserted.id, deleted.id;

25 Tillägg till GROUP BY Möjligt att definiera flera grupperingar i samma fråga Producera ett resulatat set som är ekvivalent med UNION ALL på rader som är grupperade olika. Följer SQL 2006 standarden Mycket lättare och snabbare att skriva frågor med aggregat som ofta är underliggande vid rapportunderlag.

26 -- Use UNION ALL on dual SELECT statements SELECT customerType,Null as TerritoryID,MAX(ModifiedDate) FROM Sales.Customer GROUP BY customerType UNION ALL SELECT Null as customerType,TerritoryID,MAX(ModifiedDate) FROM Sales.Customer GROUP BY TerritoryID order by TerritoryID -- Use GROUPING SETS on single SELECT statement SELECT customerType,TerritoryID,MAX(ModifiedDate) FROM Sales.Customer GROUP BY GROUPING SETS ((customerType), (TerritoryID)) order by customerType

27 Datatyper SQL Query Language Procedural Language CLR Integration Globalisering Mer än relationsdatabas Annat

28 Använder lokala temporära tabeller Skapar mycket disk I/O Känsligt “Locking and Blocking” Kräver att DU städar bort dina temporära tabeller. Leder ofta till omkompilering av SPar Multiparameteranvändning Ger många “round trips” Multipla anrop till samma SP Ineffektiv kod…

29 Parametrar av typen “Table Type” Input parameter till SPs/Funktioner Måste använda det nya nyckerlordet “ReadOnly”. /* Create a procedure to receive data for the table-valued parameter. */ CREATE PROCEDURE LocationTableType READONLY AS TVPs “lever” inom en SP/Funktion Bättre på att hantera större datamängder. Fungerar som BCP fast inne i servern… En enklare programmeringsmodell Starkt typad Reducerar antalet klient/server “round trips” Orsakar inte omkompileringar

30 -- Create a user TABLE type CREATE TYPE myTableType AS TABLE (id INT, name NVARCHAR(100), qty INT); -- Create a stored procedure that accepts a table-variable -- of type TABLE as a parameter CREATE PROCEDURE myProc myTableType READONLY) AS UPDATE Inventory SET qty += s.qty FROM Inventory AS i INNER AS tvp ON i.id = tvp.id GO -- Declare & populate variable of the TABLE type AS myTableType; INSERT VALUES (1, ‘Bicycle’, 10), (2, ‘Roller blades’, 5), (3, ‘Soccer ball’, 25); -- Execute the stored procedure with TVP EXEC

31 Support för klienten Full support i ADO.Net 3 Ny parameter typ: SqlDbType.Structured Kan skickas som en; DataTable IEnumerable (fully streamed) DbDataReader Supporterad i ODBC/OLEDB Ny parameter typ SQL_SS_Table Bind med den familjära: SQLBindParameter Effektiv implementation i TDS lagret

32 Using (MyConnection){ //Create a data table DataTable dt = new DataTable(“TVPOrdersDataTable”); dt.Columns.Add(“ProductType”, typeof(string)); dt.Columns.Add(“Quantity”, typeof(int)); // Add rows dt.Rows.Add(“Canon Digital Camera”, 20); dt.Rows.Add(“June”, 10); dt.Rows.Add(“Xbox-360”, 8); // Create a command and bind parameter SqlCommand tvp_cmd = new SqlCommand(“sp_UpdataInventory”, MyConnection); SqlParameter tvpParam = dt); //Execute command tvp_cmd.ExecuteNonQuery();

33

34 TSQL

35 Upprepa dina VALUES i en enda INSERT Använda operatorerna: +=, -=, *=, /= Initializera variablerna redan vid variabel deklarationen INSERT INTO contacts VALUES ('John Doe', ' '), ('Jane Doe', ' '), ('John Smith', ' '); INSERT INTO contacts VALUES ('John Doe', ' '), ('Jane Doe', ' '), ('John Smith', ' '); UPDATE Inventory SET quantity += s.quantity FROM Inventory AS i INNER JOIN Sales AS s ON i.id = s.id UPDATE Inventory SET quantity += s.quantity FROM Inventory AS i INNER JOIN Sales AS s ON i.id = s.id int = 5; varchar(10) = ‘xxxxx’; int = 5; varchar(10) = ‘xxxxx’;

36 Använd CONVERT funktionen att konvertera data mellan binary och char data: select convert(char(4), col1_of_type_binary,1),.... from t select from t1, t2 where convert(char(4), t1.col1_of_type_binary,1) = t2.col1_of_type_char ;

37 Nytt i SQLServer 2005 Nu vaknar det... Conversation Priorities Prioritera de meddelanden som är viktiga så att resurserna spenderas på rätt saker vid rätt tidpunkt. SSB Diagnose Hjälper till vid felsökning... External activation

38 Change TrackingCDC (Change Data Capture) Synkron mekanism för att hålla koll på förändringar. Är en del av transaktionen; görs inom samma DML operation. Betyder att “Change tracking” kan användas för två vägs sync scenarion då konflikter kan upptäckas. Designad för “delta” scenarios. Senaste datat är det viktiga! Låg kostnad! Asynkron process för att bestämma och fånga förändringar genom att läsa Transaktionsloggen. Inte lämpligt för två väg synkronisering. Fångar ALLA förändringar med alla värden inte bara det senaste. Ger möjlighet att fånga alla förändringar inom ett tidsintervall. Datawarehouse bästa vän! Alla data förändingar. Overheadkostnaden ca 10% (CPU)

39 Mekanism för att enkelt kunna hålla koll på förändringar på en tabell Alla ändringar fångas asynkront från transaktionsloggen Information om VAD som förändrats i ursprungstabellen Table-Valued Functions (TVF) för att fråga på det fångade datat Enkelt att använda från Integration Services XXXXX XXX XXX XXXX XXX XXXXXXXXXX XX XXXX XXXXX XXX XX XXXXX XXX XXX XXXX XXX XXXXXXXXXX X XXX XXXX XXXXX XXXXXX XXX Source Table Transaction Log Change Table CDC Functions Capture Process

40 Mekanism för att enkelt kunna hålla koll på förändringar på en tabell Alla ändringar fångas asynkront från transaktionsloggen Information om VAD som förändrats i ursprungstabellen Table-Valued Functions (TVF) för att fråga på det fångade datat Enkelt att använda från Integration Services XXXXX XXX XXX XXXX XXX XXXXXXXXXX XX XXXX XXXXX XXX XX XXXXX XXX XXX XXXX XXX XXXXXXXXXX X XXX XXXX XXXXX XXXXXX XXX Source Table Transaction Log Change Table CDC Functions Capture Process sys.sp_cdc_enable_db_change_data_capture sys.sp_cdc_enable_table_change_data_capture cdc.fn_cdc_get_all_changes_ cdc.fn_cdc_get_net_changes_

41 Datatyper SQL Query Language Procedural Language CLR Integration Globalisering Mer än relationsdatabas Annat

42 Stora aggregat Ingen 8K gräns längre Multi-input aggregates Specificera sorteringsordning i (TVFs) Bättre performance Möjlighet att registrera statiska metoder som User Defined Functions (UDFs)

43 Datatyper SQL Query Language Procedural Language CLR Integration Globalisering Mer än relationsdatabas Annat

44 Stödjer Windows Vista ® collations Adderar Windows nya collations i SQL Server 2008 Adderar nya versioner av existerande Windows collations (*_100_*) För vissa sker MYCKET STORA ÄNDRINGAR Chinese_Taiwan_Stroke_100 and Chinese_Taiwan_Bopomofo_100 har nu culture-correct viktning för varje character, speciellt för Ext. A + B

45 Datatyper SQL Query Language Procedural Language CLR Integration Globalisering Mer än relationsdatabas Annat

46 Utökar SQL Server med typer, operationer och index för spatial geometry Enklare att spara lokations data Gör SQL Server till en plattform för geo- spatial lösningar (ISV) Standardbased data och programmeringsmodel Baserad på STORA UDT:er

47 SQL Server är med SQLServer 2008 en bättre spelar för att hantera semi- strukturerad data XML: Förbättrad schema och data modell support. Hierarchy Id Sparse Columns: Breda tabeller med mycket luft hanteras effektivt. Filtered Indexes: Index på subset av data

48 En system data typ med variable längd CLR UDT Microsoft.SqlServer.Types Varbinary encoding ( < 900 bytes) Representera en position i en hierarki. Håller en representation av den logiska positionen Inbyggda metoder för att manipulera hierarkier Förenklar sparande och frågande på hierarkist data Insert och delete kan göras på vilken nod som helst. / /1 /1/1 /1/1/1 /1/1/2 /1/2 /2/3 /3/1/3/2

49 “Sparse” sätts som ett attribute på en kolumn Lagringsoptimering: 0 bytes sparas för NULL värden NULL komprimeras I (Tabular Data Stream) TDS lagret Ingen förändring vid frågor/DML // Sparse as a storage attibute in Create/Alter table statements Create Table Products(Id int, Type nvarchar(16)…, Resolution int SPARSE, ZoomLength int SPARSE); // No Change in Query/DML Behavior Select Id, Type, Resolution, ZoomLength from Products; Update Products set Resolution=3, ZoomLength = 105 where Id = 101; // Sparse as a storage attibute in Create/Alter table statements Create Table Products(Id int, Type nvarchar(16)…, Resolution int SPARSE, ZoomLength int SPARSE); // No Change in Query/DML Behavior Select Id, Type, Resolution, ZoomLength from Products; Update Products set Resolution=3, ZoomLength = 105 where Id = 101;

50 Varbinary(max) with FILESTREAM Filsystems datat manageras av SQL Server Supporterar Win32 “file streaming” för bästa performance Backup och Restore Kernel Transactions I Windows Server 2008?

51 Datatyper SQL Query Language Procedural Language CLR Integration Globalisering Mer än relationsdatabas Annat

52 Deprecation nivåer Announcement/Warning Final support/Removal Future deprecation SQL Server 2008 implementerar “deprecation policy” Det finns Perfcounters för alla “deprecated features” Trace events för att hålla koll på “deprecated feature” användning DEPRECATION_ANNOUNCEMENT DEPRECATATION_FINALSUPPORT

53 SQL Server Developer Center Microsoft SQL Server 2008 MSDN forums T-SQL Programmability Resources Microsoft SQL Server Microsoft SQL Server 2008 June CTP Microsoft SQL Server Books Online

54 Technical Communities, Webcasts, Blogs, Chats, and User Groups MSDN, the Microsoft ® Developer Network, and TechNet Trial Software and Virtual Labs Microsoft Learning and Certification

55 © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


Ladda ner ppt "André Henriksson & Anders Wedahl ISV DE DPE Microsoft Corporation."

Liknande presentationer


Google-annonser