Architettura di MS SQL Server SQL Server Architecture Campi di

Università degli Studi di Napoli Federico II
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
Corso di Complementi di Informatica
Architettura di MS SQL Server
Prof. Pasquale Basile
[email protected]
SQL Server Architecture
Campi di Applicazione
„
OLTP (online transaction processing)
„
„
Migliaia di transazioni/secondo
OLAP (online analytical processing)
„
Analisi di grandi quantità di dati acquisiti
precedentemente mediante OLTP
1
Scenari Applicativi
Principali classi di applicazioni
„
Applicazioni che trasmettono statement
Transact-SQL all’engine.
„
„
I risultati sono ritornati come result-set.
Applicazioni Internet che inviano Transact-SQL o
query XPath all’engine.
„
Risultati ritornati come XML
Supporto Applicativo
„
API native
„
„
„
Altre API
„
„
„
OLE DB
ODBC
DB-Library (proprietaria di SQL-S)
Embedded SQL
Accesso XML (da un server IIS)
„
„
„
Esecuzione di una URL che contiene una query XPath
Utilizzo di ADO per eseguire una query XPath verso
uno statement SQL con clausola FOR XML
Utilizzo di OLE DB … in modalità simile alla precedente
2
Comunicazione con client
Login
„
Connessione
„
„
„
„
Autenticazione Windows
„
„
„
„
Nome di rete della macchina su cui risiede SQL-S
Nome istanza (opz)
Login ID
Non c’è bisogno di specificare il login ID
Utilizza una trusted connection
Autenticazione SQL-Server
Modalità di Autenticazione
„
„
Windows
Mista
„
Usa l’una o l’altra automaticamente a seconda se si passa il
login ID
Componenti
3
Componenti
„
Replicazione
„
„
Consente di mantenere diverse copie dei dati in siti
diversi, per migliorare la sicurezza e le prestazioni,
garantendone la
Data Transformation Services
„
Consentono, tra l’altro, di prelevare dati da una
sorgente, effettuando anche elaborazioni complesse, e
memorizzarle in un’altra sorgente
„
Copia di database
Net-Libraries [Client e Server]
„
„
„
„
„
„
„
“schermano” i
componenti OLE DB,
ODBC e DB-Lib di SQL
Server dai dettagli delle
comunicazioni con altri
componenti IPC.
NetBEUI
TCP/IP
Named Pipes
AppleTalk
…
Client Network
Configuration
Componenti Server
„
MSSQLServer Service (il database engine)
SQLServer Agent Service
Search Service
MS DTS Service
„
Service Manager
„
„
„
„
Consente di gestire (anche separatamente) i servizi
4
Il servizio SQL-Agent
„
Supporta lo scheduling di
attività o notifiche di
problemi
„
Componenti:
„
„
„
Jobs
Alerts
Operators
Il servizio “Search”
„
Indicizzazione Full-Text
„
„
Crea i cataloghi full-text e i
relativi indici. Processa le
richieste relative alla
gestione dei cataloghi
stessi.
Motore di ricerca
„
„
„
Frasi o parole
Parole ravvicinate
Verbi o aggettivi declinati
Distributed Transaction Coordinator
„
„
Consente di includere in una singola transazione
client differenti sorgenti di dati.
Chiamate di stored
procedure in
„
server remoti
Esecuzione di
aggiornamenti
distribuiti per
l'aggiornamento di
dati in più origini
dati OLE DB
5
Funzionalità - 1
Supporto integrato XML
„
„
„
„
I risultati di statement sql possono essere restituiti come
documenti XML tramite OLE-DB e ADO
I documenti XML possono essere aggiunti ai database
Istruzione OPENXML (esporre i dati di un documento XML come
result set relazionale)
Scalabilità e Affidabilità
„
„
Stesso server su diverse piattaforme
„
„
„
„
„
Condivisione dello stesso ambiente di sviluppo e programmazione
Supporto per terabyte-Database
Impiego di parallelismo
Parallelismo intra-query
Ottimizzatore di Query in grado di fare uso di ottimizzazioni
precedenti
Funzionalità - 2
„
Funzionalità Enterprise-Level
„
„
„
Query distribuite
Semplicità di installazione e amministrazione
Data warehousing
Componenti
„
Engine di database relazionale
„
„
Transact-SQL
Supporto per ambienti diversi: Enterprise Æ CE
„
„
„
„
„
Enterprise: supporto multiprocessore, gruppi di server,
CE: utilizzabile in ambienti “mobili”
Security integrata con il s.o. host
Full Text Search Engine
MS-SQL Analytical Services
„
Sistema di analisi di dati organizzati in datawarehouse
6
Supporto Applicativo
„
Supporto nativo per ADO, OLE DB, ODBC
„
API utilizzabili per inviare statement SQL o XML
all’engine.
„
Supporto HTTP
„
Supporto Amministrativo
„
Query Analyzer.
„
„
„
test e debugging
Tools grafici (enterprise manager)
API di amministrazione
„
„
SQL-DMO (Distributed Management Objects)
DSO (Decision Support Objects) correlato agli Analysis
Services
Altri Componenti
„
Replication
„
„
Data Transformation Services (DTS)
„
„
„
„
Mantenere copie multiple dei dati su diversi server
(fini: prestazioni, affidabilità)
Costruzione di datawarehouse
Migrazione tra engine e fonti di dati differenti
English Query
Meta Data Services
Introduzione all’architettura
7
Tabular Data Stream
Gli statement SQL sono trasmessi dai client tramite il
protocollo proprietario TDS (Tabular Data Stream).
„
„
Problemi di compatibilità su alcuni client
I pacchetti TDS sono costruiti da
„
„
„
„
OLE DB Provider per SQL Server
ODBC Driver per SQL Server
DB-Library DLL
I TDS sono passati al client Net-Library che li incapsula in
pacchetti di rete
Il Net-library lato server estrae i pacchetti TDS e li passa
al motore relazionale
Il processo viene invertito quando si ritornano dati ai
client
„
„
„
Componenti del motore
„
Relational Engine
Storage Engine
„
Esempio: SELECT
„
„
„
„
„
RE compila lo statement
RE usa OLE-DB per richiedere
allo SE l’apertura dei rowset
Durante l’esecuzione dei plans,
RE usa OLEDB per il fetch
delle righe dai rowset richiesti
allo storage engine
RE combina i dati provenienti
dallo SE e li assembla in un
result set per l’utente finale
“Compiti” del Motore Relazionale
„
Parsing statement SQL
„
„
„
Anche suddivisione in piccole operazioni logiche
Ottimizzare gli execution plans
Eseguire le operazioni logiche definite negli
execution plans
„
„
Eseguire gli statement DDL
Formattare i risultati
„
„
Forma tabulare tradizionale
Documento XML
8
Compiti dello “Storage Engine”
„
„
„
„
„
Gestione fisica dei files in cui il database è
memorizzato e organizzato
Accesso alle pagine fisiche utilizzate per la
memorizzazione dei dati
Gestione dei buffer dati e di tutti gli I/O
Logging & Recovery
Implementazione delle funzioni di trasferimento
dati (BACKUP, RESTORE, BulkCopy, etc…)
Localizzazione
„
Formato della data
„
„
„
Definiti in
„
„
Nomi di mesi e giorni
Primo giorno della settimana
master.dbo.syslanguages
Collation (Regole di confronto)
„
„
Supporto di oggetti con differenti regole in uno stesso
database
Regola:
„
ordine per Unicode, ordine per non-Unicode, code-page
Architettura del Query Processor
„
„
Gli statement SQL sono gli unici comandi che
un’applicazione manda a un SQL-Server.
Principali processi per i quali è necessario
l’esecuzione di uno statement SQL:
„
„
Single Statement Processing
Batch Processing
„
„
„
„
Collezione di statement SQL multipli trasferiti come una
singola unità dal client
Stored Procedures, Trigger Execution
Execution plan: caching and reuse
Parallel Query Processing
9
Single SQL Statement
„
„
Ottimizzazione di uno statement SELECT
Execution Plan
„
„
„
Sequenza di esecuzione
Metodo di estrazione dei dati
Query Optimizer
„
„
Basato sui costi
Overhead compensato dalla velocità di esecuzione
della query
Esecuzione di uno statement SELECT
„
„
„
Parsing dello STATEMENT
Creazione della struttura di query (sequenza
logica)
Query Optimizer
„
„
„
Inizia l’esecuzione dell’execution plan
„
„
Seleziona la migliore traiettoria
Modifica la struttura di query e crea l’execution plan
vengono richiesti i dati allo storage engine
I dati, elaborati, vengono restituiti come resultset al client
Qui un esempio di un execution tree
„
[Pubs]
„
„
select * from titleview
[Northwind]
„
„
„
select * from [Customer and Suppliers by City]
select * from [Category Sales for 1997]
select * from [Invoices]
10
Architettura di Memoria
„
„
„
Gestione dinamica della memoria
Gestione dinamica anche in caso di istanze
multiple
Enterprise Edition: AWE (Advanced Windows
Extensions)
„
„
„
„
8 GB di memoria fisica su Advanced Server
64 GB di memoria fisica su Data Center
Gestione Statica della Memoria
Compromesso tra
„
Minimizzare il paging I/O
„
„
„
=> concentrare le risorse di I/O per gli accessi ai files fisici
Minimizzare l’I/O fisico ai database massimizzando la
dimensione dei buffers di cache
Consumi:
„
„
„
8-12 MB allo startup
Allocazione fino a Fisica – [4 | 10]MB
Opzioni di configurazione
„
„
min server memory
max server memory
„
possono anche coincidere (eliminazione delle allocazioni e
deallocazioni)
Architettura Query Distribuite
„
Metodi per fare riferimento a OLE DB Data
Source eterogenee
„
Linked Server Names
„ Usa le SP: sp_addlinkedserver, sp_addlinkedserverlogin
SELECT * FROM
AltroServer.Database.Owner.dbOggetto
„
Connettori Ad Hoc
„
OPENROWSET e OPENDATASOURCE
SELECT * FROM
OPENROWSET(‘Microsoft.Jet.OLEDB.4.0’,
‘c:\db\database.mdb’;’Admin’;’’;tabella)
11
Architettura Query Distribuite
SQL Server utilizza OLE DB per la
comunicazione con lo storage
engine
SQL Server, in funzione di quanto
restituito dall’OLE DB Provider in
termini di grammatica supportata,
cerca di delegare quante più
possibili operazioni al provider
stesso.
„
„
Architettura Full Text
„
„
Finalizzata alle ricerche su colonne di tipo stringa
Indexing Support
„
„
„
„
Creazione dei cataloghi full text
Definizione delle tabelle e delle colonne soggette a full
text search
Gestione dei cataloghi (popolazione, …)
Query Support
„
Esecuzione delle query full text
„
Ritornano l’identità della riga interessata e un valore di
ranking. Queste informazioni vengono utilizzati per la
costruzione del result-set
Full Text
„
„
Si basa sul servizio ‘Microsoft Search’ installato
solo sulle versioni server dei S.O.
I cataloghi e gli indici non sono memorizzati nel
database, ma in file separati
„
„
„
Vengono ignorati nei recovery, backup e restore
Si possono soltanto ricostruire
Funziona solo su Tabelle
12
Database Architecture
„
Slides sull’architettura pratica …. E sulla fase
applicativa (con esempi, possibilmente)
13