sql server 2005 developer overview davide mauri factory software davidem@factorysw.com

Post on 01-May-2015

224 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Sql Server 2005

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

3

Nuovi Ambienti di Sviluppo

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

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

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

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

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

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

10

Novita T-SQL

11

Novità di T-SQL

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

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

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

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

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

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

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

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

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

20

SQLCLR

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!

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

23

XML

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

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

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

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

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

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

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

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

32

Web Services

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

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

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

36

Web Services e SQL Server

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

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

39

Service Broker

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

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

42

Service Broker Elements

Messages Contracts Queues Services

43

Integration Services

44

Integration Services

Successore dei DTS

COMPLETAMENTE riscritto

Bastato sul .NET Framwork

MOLTO MOLTO più potente e flessibile

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

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

47

Reporting Services

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

49

Features principali

Sorgenti dati Relazionali Multidimensionali Xml

Report Tabulari A Matrice (Pivot) Free-form

50

Features principali

Report Interattivi Drill through

Report Parametrici Supporto per query dinamiche

Navigabilità Anchor Treeview Calendar

51

Features principali

Elementi Grafici Immagini Charts

Aggregazione dei dati Totali / Subtotali / Avg

Render multiformato Html / PDF / Excel Printer

52

Features principali

Rich Client Printing Stampa senza

necessità di esportare Download di un

controllo ActiveX sul client

Supporto per Page Layout Preview

53

Features principali

Configurazione tramite tool Report Service Configuration Manager

54

Domande ?

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

top related