sql server 2005 developer overview davide mauri factory software davidem@factorysw.com
Post on 01-May-2015
224 Views
Preview:
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