sql server 2005 developer overview davide mauri factory software [email protected]

55
Sql Server 2005 Developer Overview Davide Mauri Factory Software [email protected]

Upload: giacinta-gatto

Post on 01-May-2015

224 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

Sql Server 2005

Developer OverviewDeveloper Overview

Davide Mauri Factory Software

[email protected]

Page 2: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

2

Agenda

Introduzione Nuovi ambienti di sviluppo Novità T-SQL SQLCLR XML Web Services Service Broker Integration Services Reporting Services

Page 3: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

3

Nuovi Ambienti di Sviluppo

Page 4: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

4

Situazione attuale (SQL 2000):

Tool di admin e query separati Enterprise Manager, dbmaint.exe Query Analyzer

Strumenti separati per il tuning Index Tuning Wizard Profiler

Tool di configurazione differenti Client Network Utility Server Network Utility Service Manager

Page 5: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

5

Obiettivi dei tools in SQL Server 2005 Indirizzare le problematiche aperte con

SQL Server 2000 Scalabilità e produttività prima di tutto

Investire in una nuova piattaforma Managed code dappertutto Integrazione tra i vari servizi

SQL Server, Analysis Server, DTS, Reporting Server, SQL Server Mobile Edition, Notification Services…

Integrazione con Sql Server CE

Page 6: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

6

Nuovi Ambienti di Sviluppo

SQL Server Management Studio Sostituisce EM e Query Analyzer Elementi chiave

Object Explorer Query Editor Dialog Summary View Activity Monitor Help

Amministrazione database Attività “Workflow” in DTS Generazione di T-SQL

Page 7: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

7

Nuovi Ambienti di Sviluppo

SQL Computer Manager Pensato per il sistemista Supporto per tutti i servizi

SQL Server (relational) SQL Server Analysis Services Reporting Services

Estensione di Computer Manager MMC-based Utilizza le API di WMI Disponibile anche in SQL Server Express Rimpiazza Client Network Utility, Server

Network Utility, SQL Service Manager

Page 8: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

8

Nuovi Ambienti di Sviluppo

Agent Miglioramenti su performance e scalability Supporto per AS e DTS Alert basati su eventi WMI Sicurezza completamente ridisegnata

SQLCMD Rinpiazza osql e isql Estensioni di T-SQL Supporto per la connessione admin dedicata

Page 9: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

9

Nuovi Ambienti di Sviluppo

SQLiMail Supporto a SMTP e cluster Non richiede ne Outlook ne MAPI

Surface Area Configuration Per minimizare i possibili punti di attacco abilitare / disabilitare le feature

Reporting Services Configurator Non più necessario editare a mano i file XML

Page 10: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

10

Novita T-SQL

Page 11: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

11

Novità di T-SQL

Nuovi statement Funzioni di Ranking CTE e query ricorsive Nuovi operatori relazionali Gestione degli errori DDL Trigger Snapshot Isolation

Page 12: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

12

Nuovi Statement

Al posto di stored procedure di sistema nuovi statement: CREATE LOGIN CREATE USER

Possibilità di criptare i dati

Possibilità di utilizzare certificati digitali

insert tab1(id, cardno)  values (1, encryptByKey(Key_GUID('fookey'), '12345678')) insert tab1(id, cardno)  values (1, encryptByKey(Key_GUID('fookey'), '12345678'))

Page 13: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

13

Funzioni di Ranking

Funzioni “row oriented” ROW_NUMBER() RANK() DENSE_RANK() NTILE(<espressione>)

<funzione_ranking>OVER([funzione_partizionamento]<clausola_order_by>)<funzione_ranking>OVER([funzione_partizionamento]<clausola_order_by>)

Page 14: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

14

Clausola TOP

In SQL Server 2000: SELECT TOP <costante>

In SQL Server 2005: SELECT TOP <espressione> dove <espressione> può essere una variabile o una sub-

query non correlata che ritorna uno scalare supportata anche per i comandi INSERT, UPDATE e

DELETE

Rimozione parziale supporto clausola ROWCOUNT funziona ancora con SELECT di default è ignorata per UPDATE, DELETE ed INSERT se

l’istanza non è impostata per essere compatibile con la versione 2000

Page 15: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

15

Common Table Expression

Common Table Expression Simile ad una vista ma incorporata nella

query

WITH YearOrdersCTE (ordertear, numorders)AS( SELECT YEAR(OrderDate), COUNT(*) FROM Orders GROUP BY YEAR(OrderDate))SELECT * FROM YearOrdersCTE

WITH YearOrdersCTE (ordertear, numorders)AS( SELECT YEAR(OrderDate), COUNT(*) FROM Orders GROUP BY YEAR(OrderDate))SELECT * FROM YearOrdersCTE

Page 16: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

16

Nuovi operatori: PIVOT/UNPIVOT PIVOT: trasforma righe in

colonne può effettuare anche

aggregazioni utile per scenari OLAP o

reportistica NON è dinamico! è

necessario sapere il numero di colonne a priori

UNPIVOT: trasforma colonne in righe è l’inverso dell’operazione

di PIVOT utile per normalizzare dati

k1 k2 c1

1 A v1

1 B v2

1 C v3

2 A v4

2 B v5

2 C v6

k1 A B C

1 v1 v2 v3

2 v4 v5 v6

k1 A B C

1 v1 v2 v3

2 v4 v5 v6

k1 k2 c1

1 A v1

1 B v2

1 C v3

2 A v4

2 B v5

2 C v6

PIVOT

UNPIVOT

Page 17: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

17

Gestione degli errori: TRY/CATCH Finalmente: modello TRY/CATCH Se si verifica un errore nel blocco TRY,

l’esecuzione passa al blocco CATCH Se non si verifica nessun errore, il blocco CATCH

viene ignorato Ogni errore che imposta @@error è intercettabile

BEGIN TRY INSERT INTO Employees (empid, empname, mgrid) VALUES (1, 'Emp1', NULL)END TRYBEGIN CATCH /* eventuali azioni correttive */END CATCH

BEGIN TRY INSERT INTO Employees (empid, empname, mgrid) VALUES (1, 'Emp1', NULL)END TRYBEGIN CATCH /* eventuali azioni correttive */END CATCH

Page 18: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

18

Gestione errori: informazioni

Quattro nuove funzioni nel blocco CATCH: ERROR_NUMBER() ERROR_MESSAGE() ERROR_SEVERITY() ERROR_STATE()

Tutte e quattro le funzioni possono essere chiamate più volte e mantengono il valore (non come @@error…)

Page 19: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

19

Scenari di snapshot isolation

Business Reportistica e query ad hoc che girano insieme

ad attività OLTP Database che normalmente hanno accessi in

lettura ma con alcune scritture Migrazione di applicazioni da Oracle®

DBA e sviluppatori Aggregazioni consistenti (e.s. AVG, SUM) Join e intersezione di indici senza escalation ad

un livello di isolamente più alto Riduzione dei deadlock

Page 20: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

20

SQLCLR

Page 21: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

21

SQLCLR

E’ possibile utilizzare .Net per scrivere Stored Procedure User Defined Function Aggregates User Defined Data Types Trigger

NON E’ STATO PENSATO PER SOSTITUIRE T-SQL Ma per sostituire le Stored Procedure Estese!

Page 22: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

22

Esempio di UDF

using System.Data.SqlServer;using System.Data.Sql;public class TestUDF {

public static int Cube(int x){ return x*x*x; }

}

csc.exe /t:library /r:sqlaccess.dll /out: TestUDF.dll TestUDF.cs

CREATE ASSEMBLY TestUdf FROM ‘TestUdf.dll‘

CREATE FUNCTION Cube(@x int) RETURNS INT AS EXTERNAL NAME TestUDF.

[MyNamespace.TestUdf].CubeSELECT dbo.Cube()

Page 23: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

23

XML

Page 24: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

24

XML in un Database Relazionale? E’ lo standard de facto

Utilizzato come Lingua Franca

Dati trasmessi e ricevuti come XML Sempre più utilizzato

I database prima o poi devono cominciare a fare i conti con questa realtà Allora meglio farlo nel modo migliore

Page 25: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

25

XML in un Database RelazionaleCREATE TABLE xml_tab ( the_id INTEGER, xml_col XML)

CREATE PROCEDURE transform ( @x XML, @y XML OUTPUT)AS... CREATE FUNCTION simple (

@x NVARCHAR(max))RETURNS XMLASDECLARE @a XMLSET @a = @x...RETURN @a

Page 26: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

26

XML in un Database Relazionale

Supporto per XML Schema Validations XML Indexes XQuery & XPath 2.0 Casting

Memorizzazione interna come BLOB Rappresentazione interna binaria (compressa) XML encoding trasformato in UTF-16

Page 27: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

27

XML in un Database Relazionale

CREATE TABLE xml_tab ( the_id INTEGER, xml_col XML)GO

-- auto conversionINSERT INTO xml_tab VALUES(1, '<doc/>')INSERT INTO xml_tab VALUES(2, N'<doc/>')

SELECT CAST(xml_col AS VARCHAR(MAX)) FROM xml_tab WHERE the_id < 10

-- fails, not well formedINSERT INTO xml_tab VALUES(3, '<doc><x1><x2></x1></x2></doc>')

Page 28: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

28

Typed & Untyped XML

E’ possibile fare in modo che il tipo XML sia validato da un XML Schema

Per validare i dati inseriti

Per assicurarsi che tutte le entità abbiano la stessa struttura Definizione dei tipi di dati utilizzati

Page 29: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

29

XML Indexes

Ottimizzano le query sulle colonne XML Due tipi

Primary Secondary

Necessaria la presenza di un indice cluster sulla primary key della tabellaCREATE TABLE xml_tab ( id integer primary key, doc xml)GOCREATE PRIMARY XML INDEX xml_idx on xml_tab (doc)GO

Page 30: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

30

XQuery

XQuery è l’evoluzione di XPath Più correttamente è un SuperSet

Supporto di un subset di XQuery implementazione basata sul draft Novembre

2003 http://www.w3.org/TR/xquery

Permette di poter fare query su dati semistrutturati e/o destrutturati XML

Page 31: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

31

xml.value()-- insert some rowsINSERT xml_tab VALUES('<people><person name=“alessandro"/></people>')INSERT xml_tab VALUES('<people><person name=“davide"/></people>')INSERT xml_tab VALUES('<people><person name=“franco"/></people>')

-- this query SELECT id, xml_col.value('/people/person/@name','varchar(50)') AS nameFROM xml_tab

-- yields this resultset id name--------------------------1 alessandro2 davide3 franco

Page 32: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

32

Web Services

Page 33: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

33

Web Services

Architettura per ottenere interoperatività tra sistemi (anche eterogenei) XML come supporto protocolli standard numerose specifiche per soddisfare le varie

esigenze

Stanno diventando il modello di integrazione de facto supportati da tutti i linguaggi e da tutte le

piattaforme

Page 34: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

34

Web Services e SQL Server

Solo TDS a volte può essere limitante per i client necessita di librerie apposite

ADO.NET OLEDB / ODBC JDBC FreeTDS

Web Services HTTP/XML: tutti i client li supportano

Page 35: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

35

Web Services e SQL Server

Necessità non nuova Con Sql 2000: SQLXML

Meglio far si che sia direttamente SQL a mettere a disposizione l’infrastruttura meno strati più integrata più sicura più veloce

Page 36: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

36

Web Services e SQL Server

Page 37: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

37

Web Services e SQL Server

Utilizzo dell’HTTP Kernel Protocol Stack Necessario Windows Server 2003 (o XP SP2)

Supporto per SSL

Funzionamento senza necessità di utilizzare IIS

Page 38: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

38

Typical web service configuration

CREATE ENDPOINT AccountingSTATE = STARTEDAS HTTP ( SITE = 'www.account.com', PATH = '/nwind', AUTHENTICATION = (INTEGRATED), PORTS = (CLEAR), RESTRICT_IP = NONE, EXCEPT_IP = (13.24.15.16, 12.24.44.5))FOR SOAP ( WEBMETHOD 'http://tempUri.org/'.'GetCustomerInfo' (name='Northwind.dbo.GetCustInfo', schema=STANDARD ),

WSDL = DEFAULT, BATCHES = ENABLED, DATABASE = 'northwind', NAMESPACE = 'http://Northwind/Customers')GO

Page 39: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

39

Service Broker

Page 40: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

40

Cos’è il Service Broker?

Piattaforma per la creazione di applicazioni asincrone basate sull’uso di messaggi Facilita lo sviluppo di applicazioni Loosely

Coupled

Completamente gestito tramite TSQL

Basato sul concetto di coda

Page 41: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

41

Cos’è il Service Broker?

Affidabile Garantisce l’invio e la ricezione dei messaggi

Transazionale “Exactly once” message processing

Utilizzabile su più instanze di Sql Server

Page 42: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

42

Service Broker Elements

Messages Contracts Queues Services

Page 43: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

43

Integration Services

Page 44: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

44

Integration Services

Successore dei DTS

COMPLETAMENTE riscritto

Bastato sul .NET Framwork

MOLTO MOLTO più potente e flessibile

Page 45: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

45

Integration Services

BI Development Studio Praticamente è Visual Studio

Designer molto più ordinato tramite l’utilizzo di aree “tematiche”

Supporto per sistemi di gestione del codice Visual SourceSafe

Migliorate le capacità di debugging

Page 46: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

46

Integration Services

Molti elementi permettono l’utilizzo di un “Linguaggio” interno: DTS Expressions

Possibilità di creare workflow molto complessi

Possibilità di gestire gli eventi (es. OnError)

Programmabili ed estendibili con .NET

Page 47: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

47

Reporting Services

Page 48: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

48

Overview

MS Reporting Services (SSRS) è una piattaforma per la creazione e la gestione di report Per applicazioni connesse

E’ basato su tecnologie standard HTTP, XML e Web Services .NET SQL Server

Fornisce tool per: sviluppo amministrazione consultazione

E’ completamente estendibile e personalizzabile

Page 49: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

49

Features principali

Sorgenti dati Relazionali Multidimensionali Xml

Report Tabulari A Matrice (Pivot) Free-form

Page 50: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

50

Features principali

Report Interattivi Drill through

Report Parametrici Supporto per query dinamiche

Navigabilità Anchor Treeview Calendar

Page 51: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

51

Features principali

Elementi Grafici Immagini Charts

Aggregazione dei dati Totali / Subtotali / Avg

Render multiformato Html / PDF / Excel Printer

Page 52: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

52

Features principali

Rich Client Printing Stampa senza

necessità di esportare Download di un

controllo ActiveX sul client

Supporto per Page Layout Preview

Page 53: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

53

Features principali

Configurazione tramite tool Report Service Configuration Manager

Page 54: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

54

Domande ?

Page 55: Sql Server 2005 Developer Overview Davide Mauri Factory Software davidem@factorysw.com

© 2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.