Introduzione a Microsoft SQL Server 2008

Di Dario Airoldi, Developer Evangelist

questo articolo include una overview delle nuove funzionalità e benefici di Microsoft SQL Server 2008.

In questa pagina

Introduzione Introduzione
Supporto per applicazioni Mission-critical Supporto per applicazioni Mission-critical
Contenimento costi di gestione e sviluppo Contenimento costi di gestione e sviluppo
Accesso immediato alle informazioni Accesso immediato alle informazioni
Conclusione Conclusione

Introduzione

La quantità di informazioni digitali gestita dalle aziende cresce con velocità impressionante ormai da molti anni e diventa sempre più determinante per il loro business.

In uno scenario di trasformazione così forte, oltre a performance, e scalabilità della piattaforma, diventano sempre più importanti requisiti come sicurezza e alta disponibilità, supporto alla archiviazione di dati eterogenei e facilità di accesso ai dati da dispositivi ed applicazioni diverse, per tutti gli utenti.

SQL Server 2008 indirizza questi requisiti sviluppando la infrastruttura introdotta con SQL Server 2005 ed integrandola con nuove funzionalità in tutti questi ambiti.

Il Progetto Yukon (il nome in codice di SQL Server 2008) sta portando alla luce svariati anni di investimento in ricerca e sviluppo mirati a sviluppare la piattaforma dati in 3 grandi aree:

  • Supporto per applicazioni mission-critical.

  • Il contenimento deicosti di gestione e sviluppo delle infrastrutture dati.

  • Supporto all’accesso immediato alle informazioni per tutti i possibili utenti.

 

Supporto per applicazioni Mission-critical

Consideriamo, in quest’area tutte le funzioni a supporto di caratteristiche di sicurezza, affidabilità e scalabilità delle applicazioni.

SQL Server 2008 estende le provate caratteristiche di sicurezza di SQL Server 2005 con alcune novità importanti:

  • Transparent Data Encryption:SQL Server 2008 permette di abilitare la cifratura dei dati a livello di file dati, transaction log e back up. Applicando l’encryption sono cifrati anche i dati nel temp db proteggendo di fatto il sistema da problemi per furto di dati. La cifratura non altera lo schema dei dati ed avviene pertanto in modo trasparente per le applicazioni.

    Transparent Data Encryption può essere attivata come illustrato in figura, con SQL Management Studio, o mediante gli statement CREATE DATABASE ENCRYPTION KEY e ALTER DATABASE databasename SET ENCRYPTION ON.

  • External Key Management: Le chiavi di cifratura possono ora essere gestite da SQL Server o da sistemi software o hardware esterni.

    Questo permette di indirizzare requisiti di aziende che hanno investito in sistemi avanzati per la gestione di chiavi di sicurezza.

  • Enhanced Auditing: SQL Server 2008 introduce un sistema per l’auditing dei dati, basato sul Transaction Log, che permette di monitorare qualunque accesso e modifica ai dati o lo schema del database.

    L’Audit può essere specificato in modo granulare e filtrato, per uno o più databases. Questo permette di ridurre l’impatto e la dimensione delle informazioni di audit generate e semplifica la amministrazione della configurazione.

Anche sul fronte dell’affidabilità SQL Server 2008 migliora le caratteristiche di SQL Server 2005 su alcuni aspetti chiave.

  • Enhanced Database Mirroring: SQL Server 2008 introduce le seguenti funzioni sul mirroring:

  • Outgoing log stream compression. È ora possibile abilitare la compressione dei dati scambiati per il mirroring dei 2 nodi.

  • Automatic page repair. SQL Server 2008 supporta la correzione automatica dei dati di pagina in caso di corruzione (segnalata da errori 823 e 824), mediante uno speciale protocollo di conversazione tra i server in mirror.

  • Nuovi performance counters e managed views. SQL Server 2008 introduce performance counter specifici per permettere un controllo del tempo speso nelle varie parti del database.
    SQL Server 2008 include inoltre nuove Management Views Dinamiche ed estensioni a quelle esistenti per esporre informazioni sul mirroring delle sessioni.

  • Hot Add CPUSQL Server permette l’aggiunta di CPU a caldo (oltre che di memoria), senza richiedere fermo della applicazione.

SQL Server 2008 introduce inoltre un insieme di caratteristiche per migliorare scalabilità e predicibilità di performance per ogni profilo di carico.

  • Performance data collection:un nuovo componente, il “data collector”, permette di raccogliere informazioni sul funzionamento del sistema in un repository centralizzato, il “management data warehouse”.

    Il data collector supporta tuning dinamico, è estensibile ed è uno strumento importante, a disposizione dell’amministratore, per troubleshooting e performance tuning.

    La figura di seguito mostra il Data Collector nella sua configurazione di default ed il report predefinito con i dati di disk usage per i database del mio computer.

  • Resource Governor: SQL Server 2008 introduce il Resource Governor, un nuovo sistema per controllare le risorse allocate (es CPU, memory etc) per le attività in esecuzione sul sistema. Resource Governor permette di impostare limiti e priorità per la allocazione delle risorse in condizioni critiche di utilizzo. Questo consente un comportamento del sistema predicibile, in caso di elevato carico di elaborazione o elevato livello di concorrenza.

    La figura di seguito mostra la configurazione di un resource pool di nome AdminPool con CPU limitata al 15% in condizioni critiche di utilizzo.

    La figura di seguito mostra la esecuzione di un task associato all’adminPool; in condizioni normali per il sistema il task può allocare valori di CPU anche più elevati rispetto alla soglia assegnata, solo in corrispondenza di un picco di CPU per la macchina, la CPU utilizzata dall’AdminPool viene limitata secondo la comfigurazione (il 15%).

  • Extended Events: SQL Server Extended Events è una infrastruttura di eventi che supporta capturing, filtering, ed azioni in corrispondenza di eventi generati nel processo server. Questo permette la analisi di problemi a runtime e di interagire con il server mediante informazioni di contesto come il TSQL call stack o Query Plan handles.

    Gli eventi possono essere collegati a sistemi di output differenti come Event Tracing for Windows (ETW) per stabilire una correlazione con eventi di sistema operativo.

  • Data & Backup compression:il nuovo supporto alla compressione dei dati permette maggiore efficienza in spazio e riduce i requisiti di storage per i sistemi. La compressione dei dati permette miglioramenti di performance significativi per operazioni IO-bound tipiche del data wharehousing.

    SQL Server introcuce anche un supporto nativo alla compressione per ridurre disk I/O, e storage durante i backup.

  • Plan Freezing: SQL Server 2008 introduce la possibilità di bloccare query plans per permettere una maggiore predicibilità del comportamento delle queries in scenari limite dove i meccanismi di inferenza automatici possono produrre inefficienze.

 

Contenimento costi di gestione e sviluppo

SQL Server 2008 introduce miglioramenti per ridurre tempi e costi di gestione del sistema e migliorare il supporto allo sviluppo di applicazioni, per mezzo di .NET Framework e Visual Studio® Team System.

  • Amministrazione basata su Policy: SQL Server 2008 introduce il Declarative Management Framework (DMF), un nuova infrastruttura di gestione del motore di Database tramite policy dichiarative.

    Questo permette di controllare o prevenire modifiche al sistema definendo delle semplici regole sulla sua configurazione o dei suoi componenti.

    La gestione tramite policies semplifica i task di amministrazione e lo sviluppo stesso del database, grazie alla integrazione con SQL Server Management Studio, che è in grado di verificare e segnalare problemi di compliance con le policies impostate.

    Ogni policy può supportare uno o più modelli di attivazione tra:

    1. enforce” la policy è verificata in modo sincrono, al momento del cambiamento. Se la policy non è verificata, la transazione fallisce.

    2. Check on Changes” al momento del cambiamento. Se la policy non è verificata, la transazione termina correttamente, la mancanza di compliance viene segnalata.

    3. Check on Schedule” la policy è verificata all’occorrenza di controllo periodico configurabile.

  • Deployment e configurazione semplificati: SQL Server 2008 ridefinisce la architettura per il setup e la configurazione del sistema.

    I bit installati sul computer possono ora essere separati dalla loro configuratione, che può essere gestita in modo centralizzato o parzialmente centralizzato.

Visual Studio 2008 e SQL server 2008 segneranno una svolta per lo sviluppo in ambiente .Net in quanto introducono una serie di tecnologie specificatamente rivolte ad offrire una maggiore semplicità e flessibilità nell’accesso ai dati.

  • ADO.NET Entity Framework: I modelli di sviluppo emergenti tendono a separare il modello a oggetti utilizzato dalla applicazione (definito in gerarchie di object entities) dal modello relazionale del database (definito in termini di entità e relazioni). Questa separazione porta una maggiore flessibilità della applicazione ed indipendenza dalla base dati.

    ADO.NET Entity Framework introduce una infrastruttura a supporto di questo modello che permette agli sviluppatori di programmare su dati relazionali in termini di object entities.

    Programmare a questo livello di astrazione migliora radicalmente la produttività e permette agli sviluppatori di trarre il massimo beneficio dal modello Entità relazioni della base dati.

  • Language Integrated Query (LINQ): LINQ è uno strumento di interrogazione dei dati estremamente flessibile, integrato nei linguaggi .Net come C# or Visual Basic.NET.

    Le queries LINQ si applicano a dataset (LINQ to DataSets), oggetti di ADO.NET Entity Framework (LINQ to Entities), ADO.NET (LINQ to SQL) e custom LINQ providers.

    SQL Server 2008 include un provider LINQ to SQL che permette di usare LINQ direttamente su tabelle e colonne SQL Server 2008.

  • CLR integration and ADO.NET object services: Lo strato ADO.NET object services fornisce servizi di gestione dello stato, change tracking, identity resolution, caricamento e navigazione di relazioni, propagazione di modifiche a oggetti verso il database, e creazione di queries per Entity SQL che sono alla base dello stesso ADO.Net Entity Framework.

    SQL Server 2008 offre un supporto ottimizzato a questo tipo di funzionalità.

  • Service Broker Scalability: SQL Server 2008 introduce il concetto di conversation priority sulle comunicazioni asincrone del service broker.

    Il nuovo Diagnostic tool permette di analizzare la configurazione del broker per individuare inconsistenze nella configurazione della topologia (es. missing routes) o la sicurezza.

  • Transact-SQL Improvements: SQL Server 2008 Transact-SQL beneficia di vari miglioramenti significativi:

    1. Table Value Parameters (TVP): TVP forniscono un modo semplice ed efficiente per defimire un table types e permettono alle applicazioni di passare parametri a tabella alle stored procedures.

    2. Object Dependencies: SQL Server 2008 permette la interrogazione di Object Dependencies in modo completo ed affidabile tramite le nuove catalog views e le dynamic management functions. Le dipendenze sono sempre aggiornate sia per oggetti inclusi nello schema corrente o per oggetti esterni.

    3. DATE/TIME Data Types: SQL Server 2008 introduce nuovi tipi di dati per la gestione di date e ore:

  • DATE – realizza un tipo data (senza ora)

  • TIME – realizza un tipo ora (senza data)

  • DATETIME2 - realizza un un tipo date/time maggiore range e precisione del vecchio tipo DATETIME type (eq. SQL Standard TIMESTAMP)

  • DATETIMEOFFSET – come DATETIME2, con timezone (eq. SQL Standard TIMESTAMP WITH TIMEZONE)

Esistono tipologie di dati ‘tradizionalmente’ difficili da gestire con database systems di tipo relazionale. Alcuni esempi includono documenti ed immagini, dati di tipo ‘sparso’, dati gerarchici, o altri tipi di dati, con particolari algoritmi di gestione, come i dati di posizionamento geografico.

SQL Server 2008 introduce novità particolarmente rilevanti per il supporto a questo tipo di scenari, in cui vedremo alcuni esempi di utilizzo della architettura di integrazione con il CLR, introdotta con la versione 2005.

Lo stesso modello di estensibilità può essere utilizzato per supportare altri tipi di dati, in modo perfettamente analogo.

  • HIERARCHY ID: SQL Server 2008introduce il tipo di dato HierarchyId per memorizzare I nodi di un albero gerarchico. HierarchyId è implementato come un CLR user-defined type (UDT) che espone alcuni metodi built-in particolarmente efficienti per creare e gestire gerarchie di nodi.

  • FILESTREAM Data: SQL Server 2008 introduce il tipo FILESTREAM per gestire large binary data come documenti ed immagini.

    Il tipo filestream, permette lo storage di dati binari, tradizionalmente gestiti dal database, utilizzando NTFS streaming API.

    NTFS streaming API permettono di gestire operazioni sui files in modo efficiente e performante senza perdere i servizi del database come la sicurezza ed il backup.

    Il tipo filestream supera i limiti di storage dei campi blob (8GB per SQLServer 2008).

  • Sparse columns: Il supporto alle sparse columns permette di gestire in modo trasparente ed efficiente colonne di tipo sparso.

    Applicando l’attributo SPARSE ad una colonna il database gestirà la colonna come campo “calcolato” a partire da un campo XML, lo Sparse Columns Set. Tale colonna può comunque essere gestita in modo tradizionale per lettura e scrittura.

    La colonna può essere resa persistente, applicando un indice su di essa.

    Pertanto, il database designer non è più costretto vincolare lo schema del database per gestire dati di tipo sparso, fin dalle fasi iniziali del progetto.

    Le sparse columns permettono di superare il limite di 1024 colonne per tabella.

  • Integrated Full-Text Search: il Full-Text Search rende trasparente la transizione tra Search e dati relazionali; abilitando l’utilizzo di indici full-text è possible realizzare ricerche efficientissime su colonne testuali con grandi volumi di dati.

  • Large user-defined types: SQL Server 2008 elimina il limite di 8kbyte per I tipi di dati user defined (UDT).

  • Geographical Information: SQL Server 2008 introduce un support complete a dati di tipo spaziale, per gestire informazioni di location tramite i tipi di dati GEOGRAPHY e GEOMETRY.

    I dati di tipo GEOGRAPHY rappresentano informazioni di tipo “planare” conformi allo standard come Open Geospatial Consortium (OGC). I dati di tipo GEOMETRY permettono di gestire coordinate geodetiche (latitudine e longitudine) secondo standard come il WGS84 diffuso in soluzioni GPS.

    I tipi di dati includono una serie di funzioni interessanti applicabili al calcolo di coordinate e supportano una speciale indicizzazione per ottimizzame il calcolo.

  • Supporto a sistemi disconnessi: SQL Server 2008 realizza un supporto alla sincronizzazione consistente tra applicazioni, data stores e data types, alla base dello sviluppo di applicazioni per dispositivi mobili, connessi solo occasionalmente.

    In particolare, Visual Studio 2008 e SQL server 2008 permettono di realizzare applicazioni disconnesse con i nuovi sincronization services di ADO.NET e l’offline designer di Visual Studio.

    SQL Server include un supporto avanzato per il change-tracking che permette agli sviluppatori di realizzare applicazioni basate su cache, notifiche o sincronizzazione con una infrastruttura robusta e di minimo impatto.

 

Accesso immediato alle informazioni

SQL Server si è sempre distinto come una piattaforma di riferimento per la Business Intelligence (BI).

Questo scenario continua ad essere una area chiave di investimento per il mercato e anche per SQL Server.

SQL Server introduce alcune migliorie significative nel motore di integrazione dei dati per il data warehousing:

  • Change data capture: SQL 2008 introduce varie tecnologie per intercettazione delle operazioni sul database. Change data capture permette di catturare I cambiamenti ai dati di una o più tabelle all’interno di change tables.

    Change data capture è asincrono e basato sul transaction log ed ha pertanto una efficienza elevata e basso impatto sul funzionamento OLTP.

  • Resource Governor: Tramite il resource governor a cui abbiamo già accennato è possibile impostare limiti e priorità di allocazione per le varie attività sul database.

    In questo modo è possibile contenere l’impatto di un picco di carico o concorrenza su una parte della applicazione e le performance del sistema sono globalmente più consistenti e predicibili.

  • Data & Backup compression:La data compression di SQL Server 2008 permette una maggiore efficienza in spazio e performance riducendo il volume di operazioni di I/O.

    Benefici analoghi sono ottenibili per mantenere backups online mediante la nuova funzione di backup compression nativa.

  • Partitioned table parallelism: SQL Server 2008 migliora la gestione del partitioning introdotto in SQL Server 2005 migliorando le performance su grosse tabelle partizionate.

  • Star join query optimizations:SQL Server 2008 introduce nuove ottimizzazioni su Star join queries utilizzate nei data warehouse.

  • MERGE SQL statement: Il nuovo MERGE SQL statement permetterà di gestire in modo semplice ed efficient scenari di aggiornamento del data wharehouse. un singolo merge statement può ora riassumere logiche complesse di confronto tra dati, update, insert e delete.

  • GROUPING SETS: GROUPING SETS sono una estensione ISO della clausola GROUP BY che permette di definire raggruppamenti differenti in una stessa query. I GROUPING SETS producono in modo più efficiente, un result set equivalente ad una UNION ALL delle righe raggruppate secondo I diversi criteri.

  • Scalable Integration Services: SQL Server 2008 introduce un nuovo disegno della architettura di esecuzione delle pipeline SSIS che migliora radicalmente la scalabilità con processori multipli.

    Un nuovo meccanismo di Persistent lookup permette maggiore efficienza nelle estrazioni e trasformazioni di ETL operations.

SQL Server 2008 estende radicalmente le funzioni di reporting con il preciso obiettivo di permettere che ogni utente possa realizzare e/o fruire dei report più rilevanti per se in modo semplice e sicuro.

  • Enterprise reporting engine: Una infrastruttura semplificata di deployment e configurazione permette ad ogni utente di creare e condividere reports di ogni dimensione e complessità.

  • Report Designer: Il nuovo Report Designer permette di creare report dettagliati, per indirizzare tutte le necessità di reporting. Lo strumento è semplice da usare ed i reports possono avere strutture ed aspetti grafici anche complessi.

    L’ambiente è utilizzabile da business users anche per modificare report esistenti indipendentemente da dove essi siano stati creati.

  • Powerful visualization: SQL Server 2008 introduce nuovi componenti di visualizzazione fruibili all’interno di reports. Nuovi tools come maps, gauges, e charts rendono I reports più accessibili e comprensibili.

  • Microsoft Office rendering: SQL Server 2008 introduce la nuova funzione di Microsoft Office rendering che permette agli utenti di accedere ai report direttamente da Word ed Excel.

    Il rendering per Excel è stato molti migliorato per supportare funzioni come nested regions, sub-regions e merged cells.

  • Microsoft SharePoint® integration: SQL Server 2008 Reporting Services è ora pienamente integrato con Microsoft Office SharePoint Server 2007 and Microsoft SharePoint Services.

    Gli utenti possono ora accedere facilmente ai reports direttamente dai loro business portals.

SQL Server migliora alcuni aspetti importanti del motore di analisi multidimensionale, uno dei suoi, tradizionali, maggiori punti di forza:

  • Design to scale: SQL Server 2008 supporta capacità di analisi più vaste con componenti ed aggregazioni più complesse.

    I nuovi tool di progettazione dei cubi semplificano lo sviluppo di infrastrutture di analisi ottimizzate. Per esempio, Il Dimension Designer permette di vedere ed editare attributi e relazioni. I Best Practice Design Alerts avvisano il progettista della compatiblità con best practices nella progettazione dello schema dei dati. Una maggiore flessibilità nelle strutture di datamining permette la creazione di puù modelli su dati filtrati.

  • Block computations: Block computations introduce un miglioramento sensibile per le performance del processing dei dati, permettendo agli utenti di aumentare la profondità delle gerarchie e la complessità delle computazioni.

  • Write-back to MOLAP: SQL Server 2008 fornisce un supporto MOLAP write-back avanzato che elimina, di fatto, la necessità di utilizzare ROLAP partitions. Questo permette di utilizzare write back senza sacrificare le performance di analisi.

  • Resource Monitor: Un nuovo Resource Monitor in SQL Server 2008 fornisce una visualizzazione efficace dell’utilizzo delle resource. L’amministratore del database può controllare facilmente il carico di analisi, identificare le queries attive, il tempo di esecuzione e gli utenti che le hanno lanciate. Questo permette di fatto una migliore ottimizzazione dell’utilizzo del server.

  • Predictive Analysis: Un algoritmo avanzato estende le capacità di forecast. la possibilità di interrogazione delle strutture di data mining abilita reports che possono anche includere attributi dall’esterno del mining model. Nuove funzioni di cross-validation realizzano i confronti con i dati per ottenere risultati più affidabili.

 

Conclusione

SQL Server 2008 introduce miglioramenti significativi in aree chiave per la gestione dei dati e si propone come una piattaforma di riferimento, per sicurezza, robustezza, scalabilità, produttività e flessibilità di analisi.

Questo articolo ha fornito solo una sintesi delle caratteristiche e benefici che introduce; per maggiori informazioni fate riferimento ai riferimenti di seguito.