View
110
Download
2
Category
Preview:
Citation preview
Le système de gestion et Le système de gestion et d’analyse des données de d’analyse des données de nouvelle générationnouvelle génération
patricg@microsoft.compatricg@microsoft.comArchitecte InfrastructureArchitecte Infrastructure
AgendaAgenda
GénéralitésGénéralités
SQL Server 2005 pour les administrateursSQL Server 2005 pour les administrateurs
SQL Server 2005 pour les développeursSQL Server 2005 pour les développeurs
SQL Server 2005 pour les analystes décisionnels SQL Server 2005 pour les analystes décisionnels
NotaNota : Fonctionnalités et exemples basés sur la CTP d’Avril 2005 : Fonctionnalités et exemples basés sur la CTP d’Avril 2005
Valeur de l’offre Gestion automatique
Performance et Sécurité Intégration du Décisionnel
Objectifs long terme :
SQL Server 6.0/6.5
Différentiation de Différentiation de Sybase SQL Sybase SQL ServerServer
Intégration à Intégration à WindowsWindows
Intégration de la Intégration de la RéplicationRéplication
1ere Génération
SQL Server 7.0
SQL Server 2000
Performance, Performance, montée en chargemontée en charge
Support du XMLSupport du XML Intégration des Intégration des
services de services de Notification, de Notification, de Reporting et de Reporting et de Data MiningData Mining
Réécriture du Réécriture du moteur relationnelmoteur relationnel
Gestion Gestion automatisée des automatisée des ressourcesressources
Intégration des Intégration des services OLAP et services OLAP et ETLETL
2ème Génération
SQL Server 2005
Haute disponibilitéHaute disponibilité SécuritéSécurité Intégration CLRIntégration CLR XML NatifXML Natif Nouveau moteur Nouveau moteur
ETL d’entrepriseETL d’entreprise 64 bits IA-32 et x6464 bits IA-32 et x64
3ème Génération
Une version majeure
Une offre globale
EnterpriseEnterpriseLa plate-forme intégrée La plate-forme intégrée
pour la gestion et pour la gestion et l’analyse de données l’analyse de données
des applications critiques des applications critiques de l’entreprisede l’entreprise
Pas de limitation + Pas de limitation + PartitionnementPartitionnement
Miroir BD complet & Miroir BD complet & Cluster 8 nœuds Cluster 8 nœuds
Opérations en ligne Opérations en ligne et redémarrage rapideet redémarrage rapide
Clichés BDClichés BD
Outils avancés (ETL, Outils avancés (ETL, OLAP et Data Mining)OLAP et Data Mining)
Serveurs de rapports Serveurs de rapports mutiplesmutiples
Nouveauté SQL Server 2005
ExpressExpress WorkgroupWorkgroup StandardStandardAdaptée aux Adaptée aux
développeurs pour développeurs pour apprendre, construire apprendre, construire
et déployeret déployer
La base de données La base de données pour les petites entités pour les petites entités
et les activités en et les activités en croissancecroissance
La plate-forme complète La plate-forme complète pour la gestion et pour la gestion et
l’analyse des données l’analyse des données destinée aux entités destinée aux entités moyennes à grandesmoyennes à grandes
Gratuit
2 Proc 2 Proc 3 Go mémoire3 Go mémoire
Outil Outil d’administration d’administration
Management StudioManagement Studio
SQL AgentSQL Agent
Assistant Assistant d’optimisationd’optimisation
Recherche en Recherche en texte intégraltexte intégral
Serveur de Serveur de Réplication limitéRéplication limité
Transfert journaux Transfert journaux ((Log shippingLog shipping))
4 Proc 4 Proc versions 32 & 64-bitversions 32 & 64-bit
Miroir de BD limitéMiroir de BD limité
Cluster 2 noeudsCluster 2 noeuds
Integration ServicesIntegration Services (ETL)(ETL)
Analysis ServicesAnalysis Services (Serveur OLAP)(Serveur OLAP)
Data MiningData Mining
Réplication complèteRéplication complète
Notification ServicesNotification Services
1 Proc1 Proc1 Go mémoire1 Go mémoire
4 Go base4 Go base
Outil d’administration Outil d’administration simplifiésimplifié
Sécurité intégréeSécurité intégrée
Support XML & Support XML & Améliorations T-SQLAméliorations T-SQL
Intégration .Net & Intégration .Net & CLRCLR
Serveur de rapportsServeur de rapports
Import/ExportImport/Export
Client RéplicationClient Réplication
Une offre adaptée à vos besoins
Prix croissant
TransactionnelTransactionnel Enregistrement des données de marchéEnregistrement des données de marché
Pic de Pic de 12 000 Transaction par Seconde12 000 Transaction par Seconde
TransactionnelTransactionnel Internet Auction Co., Ltd (Korea )Internet Auction Co., Ltd (Korea ) SGBDR et moteur OLAPSGBDR et moteur OLAP
Volumétrie : Volumétrie : 2,7To2,7To
Transaction par seconde : 3 600 Transaction par seconde : 3 600
CRMCRM SGBDR pour SiebelSGBDR pour Siebel
Nb d’utilisateurs: 8 000 SiebelNb d’utilisateurs: 8 000 Siebel eService eService
Volumétrie: 1 To SANVolumétrie: 1 To SAN
ERPERP Utilisation de SQL comme BDD pour SAPUtilisation de SQL comme BDD pour SAP
Volumétrie : 1 To+, Volumétrie : 1 To+, 5 To Stockage5 To Stockage
Nb d’utilisateurs : 2000 concurrentsNb d’utilisateurs : 2000 concurrents
ERPERP Utilisation de SQL Server pour l’appli. de facturationUtilisation de SQL Server pour l’appli. de facturation
Volumétrie: Volumétrie: 5 To & 33 Milliards de lignes & 15 To 5 To & 33 Milliards de lignes & 15 To totaltotal
Services WebServices Web 5 Millions d’images, + 10 Millions de fichiers5 Millions d’images, + 10 Millions de fichiers
99,99 % de disponibilité99,99 % de disponibilité
20 Serveurs20 Serveurs
DécisionnelDécisionnel SQL Server 64 bits comme moteur OLAPSQL Server 64 bits comme moteur OLAP
Volumétrie: 2,5 To & Croissance de 30% / anVolumétrie: 2,5 To & Croissance de 30% / an
Coût: réduct. 70% / Perf multipliées par 4Coût: réduct. 70% / Perf multipliées par 4
Une offre crédibleRéférences 2000
IBM a été
dépassé en 2003
Oracle42%
20032003
SQL Server24%
Other
12%
IBM22%
Windows
51%
Non-mainframe DB ($5.4B)Growth & SharesGrowth & Shares
Non-mainframe DB ($5.4B)Growth & SharesGrowth & Shares
20042004
Oracle43%
SQL Server26%
IBM20%
Other
11%
+18%+18%**
+15%+15%**
+2%+2%**
Non-mainframe DB ($5.4B)Growth & SharesGrowth & Shares
Non-mainframe DB ($5.4B)Growth & SharesGrowth & Shares
20042004
Oracle43%
SQL Server26%
IBM20%
Other
11%
Oracle42%
20032003
SQL Server24%
Other
12%
IBM22%
+18%*+18%*
+15%*+15%*
+2%*+2%* IBM a été dépassé en 2003
Le marché des SGBD en 2004Le marché des SGBD en 2004
Source: Gartner
Windows est la
plateforme leader pour les SGBD
Non-mainframe DB ($6 Bil)By OS PlatformBy OS Platform
Non-mainframe DB ($6 Bil)By OS PlatformBy OS Platform
Unix/Linux49%
SQL Server domine sur Windows Windows DatabaseMarket ($3.1 Bil)
Windows DatabaseMarket ($3.1 Bil)
Oracle25%
SQL Server51%
IBM16%
Other8%
*Percentages reflect revenue growth*Percentages reflect revenue growth
Des outils optimisésDes outils optimisésPropriétés « Serveur »
Nouveautés pour la disponibilité
• Miroir de base de données
• Clichés de bases de données
• Maintenance des index en ligne
• Restauration de fichiers et de pages en ligne
Nouveautés pour la gestion des données
• Tables partitionnées
• Vues dynamiques
• Réplication d’égal à égal et avec des bases Oracle
Nouveautés pour la sécurité
• Encryption dans la base
• SQL Server Surface Area Configuration
Administration
Nouveautés2005
Nouveautés pour la disponibilité
• Redémarrage rapide
• Miroir de base de données
• Améliorations Clusters
• Clichés de bases de données
• Maintenance des index en ligne
• Restauration de fichiers et de pages en ligne
• Améliorations de la sauvegarde et de la restauration
Administration
Nouveautés2005
• Svg/Restauration rapide• Restauration jusqu’à un instant donné
• Cliché Base de données
La problématique de la La problématique de la disponibilité…disponibilité…
Corruption Corruption des Donnéesdes Données
InterruptionsInterruptionsNon-Planifiées Non-Planifiées
• Opérations de maintenance des index en ligne
• Tables partitionnées
• Transfert de journaux• Réplication• Base de Données Miroir
• Cluster de basculement• Base de Données Miroir
Réorganisation Réorganisation des donnéesdes données
ChangementsChangementsliés au systèmeliés au système
OpérationsOpérationsde Maintenancede Maintenance
Arrêt du Arrêt du SystèmeSystème
Erreurs Erreurs HumainesHumaines
•Cluster de basculement•Base de Données Miroir 2005
2005
2005
2005
2005
2005
2005
Redémarrage rapideRedémarrage rapide(« fast recovery »)(« fast recovery »)
SQL Server 2000SQL Server 2000 La base est accessible après avoir rejouée les transactions validées et défait les La base est accessible après avoir rejouée les transactions validées et défait les transactions non validées.transactions non validées.
SQL Server 2005SQL Server 2005
La base est accessible dès que les transactions validées ont été rejouées. Les pages La base est accessible dès que les transactions validées ont été rejouées. Les pages correspondant à des transactions non validées restent verrouillées jusqu’à ce que les correspondant à des transactions non validées restent verrouillées jusqu’à ce que les transactions soient défaites.transactions soient défaites.
Temps de redémarrage (et de basculement) réduit
Défaire Défaire (undo)Refaire Refaire (redo)
Base AccessibleBase Accessible
Défaire Défaire (undo)Refaire Refaire (redo)
Base AccessibleBase Accessible
tempstemps
NouveauSS 2005
Solutions pour la Haute Solutions pour la Haute DisponibilitéDisponibilité
CommunicationCommunicationGranu-Granu-larité larité
BasculementBasculement Pertes Pertes potentiellespotentielles
MiroirMiroir
de BDde BD
TCP TCP endpointsendpoints BDBD Automatique Automatique (qq sec)(qq sec)
Aucune en Aucune en synchronesynchrone
ClusterCluster Base uniqueBase unique
Disques partagésDisques partagés
InstanceInstance Automatique Automatique (qq dizaine de (qq dizaine de sec à qq min)sec à qq min)
AucuneAucune
Transfert Transfert des journauxdes journaux
Log Log ShippingShipping
Copie de fichiers Copie de fichiers et restaurationet restauration
InstanceInstance ManuelManuel Transactions Transactions depuis la depuis la dernière copiedernière copie
RéplicationRéplication Copie de fichiers Copie de fichiers et chargementet chargement
TableTable ManuelManuel Transactions Transactions depuis la depuis la dernière copiedernière copie
2005
Améliorations 2005
Améliorations 2005
Un espace disque Un espace disque partagépartagé par plusieurs par plusieurs serveurs, mais un seul serveur y accède à serveurs, mais un seul serveur y accède à un instant donnéun instant donné
Détection d’erreurs & basculement Détection d’erreurs & basculement automatiqueautomatique
Plusieurs modes : Plusieurs modes :
Une SEULE base, une SEULE Une SEULE base, une SEULE instanceinstance
Actif / actif possible avec n instances Actif / actif possible avec n instances travaillant sur n bases travaillant sur n bases
Fournit un Fournit un redémarrage àredémarrage à chaudchaud dans un dans un délai de l’ordre de la minutedélai de l’ordre de la minute
Jusqu’à 50 instancesJusqu’à 50 instances
Jusqu’à 8 nœuds (Windows Server 2003 Jusqu’à 8 nœuds (Windows Server 2003 x86) ou 4 nœuds en (Win2003 - IA-64 ou x86) ou 4 nœuds en (Win2003 - IA-64 ou x64)x64)
Tous les services sont compatibles–cluster: Tous les services sont compatibles–cluster: SQL Server Agent, SQL Server Agent, Analysis Services, Full-Text SearchAnalysis Services, Full-Text Search
Une seule installation globaleUne seule installation globale
Cluster de basculementCluster de basculement (« Failover Cluster »)(« Failover Cluster »)
Stockage partagé
AdresseServeurVirtuel
2005AttentionAttention
Un cluster ne protège pas contre les corruptions, la perte de la baie RAID, les désastres sur un site.
Un cluster ne permet d’augmenter la puissance
Base de Données Miroir (« (« Database Mirroring Database Mirroring ») 1/2») 1/2
Miroir
PrincipalPrincipal
Témoin
DonnéesJournaux
NouveauSS 2005
Le miroir est toujours en train de rejouer les journaux
SQL Server
DonnéesJournaux
SQL Server
Application
commitcommit
Base de Données Miroir (« (« Database Mirroring Database Mirroring ») 2/2») 2/2
Utilisation de cette architecture :Utilisation de cette architecture :
Tous les environnements où une Tous les environnements où une disponibilité maximale est requise sur disponibilité maximale est requise sur des données critiquesdes données critiques
TémoinBénéfices :Bénéfices :
Pas de pertes de transactions
Rapidité du basculement (qq sec)
Pas de contraintes sur le matériel
Pas de limite de distance
Solution simple SGBD uniquement
Contraintes :Contraintes :Impact à évaluer sur les performances en fonction du débit transactionnel sur le site primaire-> Mode asynchrone possible-> Mode asynchrone possible
Cliché BD (“DB Snapshot”) Cliché BD (“DB Snapshot”) Comment ça marche ?Comment ça marche ?
MonSnap – Cliché en lecture simpleMonSnap – Cliché en lecture simpleUSE MonSnapUSE MonSnapSELECT SELECT (pages 4, 6, 9, 10, 14)(pages 4, 6, 9, 10, 14)
11
PagePage
22 33 4’4’ 55 66 77 88 9’9’ 10’10’ 1111 1212 1313 1414 1515 1616
CREATE DATABASE MonSnap AS SNAPSHOT OF MaBaseCREATE DATABASE MonSnap AS SNAPSHOT OF MaBase
MaBase MaBase
USE MaBaseUSE MaBaseUPDATEUPDATE (pages 4, 9, 10) (pages 4, 9, 10)
44 99 101011 22 33 44 55 66 77 88 99 1010 1111 1212 1313 1414 1515 1616
NouveauSS 2005
Si nécessaire : RESTORE DATABASE MaBase FROM SNAPSHOT MonSnap
Votre solution est dans la Votre solution est dans la combinaison de ces techniques…combinaison de ces techniques…
Miroir
Principal
Clients OLTP
Cliché
Témoin
Client de Reporting
Ex.: Miroir de base de données + Cliché
NouveauSS 2005
Opérations en ligne Opérations en ligne
Il n’est plus nécessaire de Il n’est plus nécessaire de s’arrêter pour…s’arrêter pour…
La maintenance des indexes « Online »La maintenance des indexes « Online »
Create, Rebuild, Reorganize, Drop, Add et Create, Rebuild, Reorganize, Drop, Add et
drop constraintdrop constraint
Opérations complètement parallèlesOpérations complètement parallèles
La restauration de pages et de fichiersLa restauration de pages et de fichiersLa base reste accessibleLa base reste accessible
Seule les données en cours de restauration Seule les données en cours de restauration sont inaccessibles.sont inaccessibles.
On peut toujours les faire « Offline »On peut toujours les faire « Offline »
Exemple de créationExemple de créationd’indexd’index en ligne en ligne
Création d’indexCréation d’index
CREATE CLUSTERED INDEX myidx ON mytab (a, b, c) WITH ( PAD_INDEX = ON, FILLFACTOR = 75, ONLINE = ON, MAXDOP = 6) ON
filegroup1
Reconstruction d’index Reconstruction d’index (était (était DBCC DBREINDEX))
ALTER INDEX myidx ON mytab REBUILD WITH ( ONLINE = ON, MAXDOP = 4 )
NouveauSS 2005
Sauvegarde amélioréeSauvegarde amélioréePossibilité de faire des sauvegardes sur 2 à 4 périphériques (identiques) en parallèle
Possibilité de calculer une somme de contrôle (« checksum ») pour garantir la fiabilité de la sauvegarde
BACKUP DATABASE adventureworks TO DISK=‘D:\backups\full.bak' MIRROR TO DISK=‘E:\backups\full.bak‘ WITH FORMAT,CHECKSUM
NouveauSS 2005
BD
Svg 1
Svg 2
Copy-Only BackupsPermet de faire une sauvegarde complète sans perturber la chaîne des sauvegardes
Idéal pour faire une copie de la base de production sans perturber l’exploitation de production sans perturber l’exploitation
BACKUP DATABASE <dbname>BACKUP DATABASE <dbname> WITH COPY_ONLY WITH COPY_ONLY
Améliorations des Améliorations des restaurationsrestaurations
AméliorationAmélioration dans la détection d’erreurs dans la détection d’erreursEn 2000,En 2000, ALTER DATABASE <db_name> SET PAGE_VERIFY TORN_PAGE_DETECTION ALTER DATABASE <db_name> SET PAGE_VERIFY CHECKSUM
RESTORE VERIFY_ONLYRESTORE VERIFY_ONLYSTOP_ON_ERROR et CONTINUE_AFTER_ERROR
Restauration partielle (groupe de fichiers)Restauration partielle (groupe de fichiers)Existe depuis SQL Serveur 2000, mais avec SQL Serveur 2005 Existe depuis SQL Serveur 2000, mais avec SQL Serveur 2005 la base reste accessible pendant la restauration tant que l’on la base reste accessible pendant la restauration tant que l’on accède pas au fichier en questionaccède pas au fichier en question
Restauration de pagesRestauration de pagesRestaurer d’un page unique depuis une sauvegardeRestaurer d’un page unique depuis une sauvegardeA n’utiliser qu’avec beaucoup de précaution et l’aval du support Microsoft!A n’utiliser qu’avec beaucoup de précaution et l’aval du support Microsoft!
NouveauSS 2005
Nouveautés pour la gestion des données
• Tables partitionnées
• Réplication d’égal à égal
• Réplication avec des bases Oracle
Mais aussi :
• Vues dynamiques (sys.dm_*)
• clause ATTACH_REBUILD_LOG
• procédure sp_create_plan_guide
• paramètre AUTO_UPDATE_STATISTICS_ASYNC
• fichiers de paramètrage XML pour l’utilitaire bcp
•…
Administration
Nouveautés2005
Partitionner ?Partitionner ?
Quoi?Quoi?Partitionnement de tables, d’indexes, vues indexéesPartitionnement de tables, d’indexes, vues indexées
Pourquoi?Pourquoi?Grosses tablesGrosses tables
Ajout/suppression facile de grandes quantités de données Ajout/suppression facile de grandes quantités de données (Archivage)(Archivage)Backup/Restore par groupe de fichiersBackup/Restore par groupe de fichiers
Mieux utiliser des opérateurs parallèles sur des machines avec Mieux utiliser des opérateurs parallèles sur des machines avec beaucoup de CPU (16, 32, …) beaucoup de CPU (16, 32, …) Concurrence d’accès (Lock Escalation)Concurrence d’accès (Lock Escalation)
Comment?Comment?Partitionnement d’enregistrement (horizontal)Partitionnement d’enregistrement (horizontal)
A, B, CA, B, C D, E, FD, E, F G, H, IG, H, I J, K, LJ, K, L
A, B, C, D, E, F, G, H, I, J, K, LA, B, C, D, E, F, G, H, I, J, K, LDonnées Non PartitionnéesDonnées Non Partitionnées
DonnéesDonnées PartitionnéesPartitionnées
3 étapes3 étapes
A chaque ligne correspond une partition grâce à la A chaque ligne correspond une partition grâce à la « « partition functionpartition function »»CREATE PARTITION FUNCTION Part_Fon (int) as RANGE CREATE PARTITION FUNCTION Part_Fon (int) as RANGE
RIGHT FOR VALUES (10, 20, 30)RIGHT FOR VALUES (10, 20, 30)
A chaque partition correspond un emplacement A chaque partition correspond un emplacement physique (Filegroup) grâce au « physique (Filegroup) grâce au « partition schemepartition scheme »»CREATE PARTITION SCHEME Part_Sche AS PARTITION CREATE PARTITION SCHEME Part_Sche AS PARTITION
Part_Fon TO ([Filegroup1], [Filegroup2], [Filegroup3], Part_Fon TO ([Filegroup1], [Filegroup2], [Filegroup3], [Filegroup4])[Filegroup4])
CREATE TABLE Employees (EmpId int, EmpName varchar(50)) CREATE TABLE Employees (EmpId int, EmpName varchar(50)) ON Part_ScheON Part_Sche (EmpId);(EmpId);
Un index utilisant une fonction et une clef de Un index utilisant une fonction et une clef de partitionnement similaire à la table est dit « aligné » partitionnement similaire à la table est dit « aligné » best practisebest practise
Tables & Index partitionnésTables & Index partitionnés
La clé de partitionnement doit correspondre à une La clé de partitionnement doit correspondre à une seule colonneseule colonne
Les tables et les index sont créés sur le schéma Les tables et les index sont créés sur le schéma de de partition (au lieu des (au lieu des Filegroups)Filegroups)
Le partitionnement est transparent pour les Le partitionnement est transparent pour les requêtesrequêtes
Des tables et index différents Des tables et index différents peuvent peuvent partager des fonctions et de schémas de partitionnementdes fonctions et de schémas de partitionnement
Table ouTable ouIndexIndex
PartitionPartitionSchémaSchéma
PartitionPartitionFonctionFonction
11 nn nn
Comment ajouter ou supprimer Comment ajouter ou supprimer des partitions?des partitions?
Permet de traiter le cas typique d’ajout et/ou de Permet de traiter le cas typique d’ajout et/ou de suppression d’une partition entièresuppression d’une partition entière
Réalisé à l’aide de 3 opérations simples sur les Réalisé à l’aide de 3 opérations simples sur les partitions :partitions :
SplitSplit sépare 1 partition en 2sépare 1 partition en 2
MergeMerge réunit 2 partitions en 1réunit 2 partitions en 1
SwitchSwitch échange 1 table et une partitionéchange 1 table et une partition
ALTERALTER PARTITION FUNCTION annual_range PARTITION FUNCTION annual_range()()SPLIT RANGE (‘2006-01-01’)SPLIT RANGE (‘2006-01-01’)
ALTER TABLE BSWITCH TO A PARTITION 2
Un schéma à 3 niveaux :Un schéma à 3 niveaux :1 émetteur 1 émetteur ((publisherpublisher))
1 distributeur 1 distributeur ((distributordistributor))
N receveurs N receveurs ((subscriberssubscribers))
1 distributeur peut gérer plusieurs 1 distributeur peut gérer plusieurs émetteursémetteurs
1 receveur peut recevoir des données de 1 receveur peut recevoir des données de plusieurs émetteurs et les republier à son plusieurs émetteurs et les republier à son tourtour
Tous les types de réplications permettent Tous les types de réplications permettent les 2 modes :les 2 modes :
l’émetteur propage les modifications (push)l’émetteur propage les modifications (push)
Les receveurs demandent les modifications Les receveurs demandent les modifications (pull) (pull)
Modifications possibles sur le receveur Modifications possibles sur le receveur (« peer to peer »)(« peer to peer »)
Réplication des changements de schémasRéplication des changements de schémas
Nombreuses optimisations de Nombreuses optimisations de performancesperformances
Reprise des échanges arrêtés, sans Reprise des échanges arrêtés, sans réémission complète des donnéesréémission complète des données
Réplication Fusion sur HTTPS (idéale pour Réplication Fusion sur HTTPS (idéale pour la réplication vers les mobiles)la réplication vers les mobiles)
RéplicationRéplicationss
2005
2005
Solutions de réplicationSolutions de réplicationQuoi ?Quoi ? Quand ?Quand ? Résolution Résolution
des conflitsdes conflits
Utilisations Utilisations standardsstandards
ClichéCliché
SnapshotSnapshot
Copie des objets Copie des objets à un instant tà un instant t
PériodiquePériodiquementment
N/AN/A Initialisation;Initialisation;
Données Données faiblement faiblement modifiéesmodifiées
TransactionTransactionnellenelle
Les transactionsLes transactions Au fil de Au fil de l’eaul’eau
Par Par transactiontransaction
Serveur à Serveur à serveurserveur
Peu d’écarts Peu d’écarts entre les sitesentre les sites
FusionFusion
MergeMerge
Les données Les données modifiées entre modifiées entre deux instantsdeux instants
PériodiquePériodiquementment
Ligne par ligneLigne par ligne Multiples Multiples receveursreceveurs
Mise à jour Mise à jour asynchronesasynchrones
D’égal à égalD’égal à égal
Peer to peerPeer to peer
Les transactionsLes transactions Au fil de Au fil de l’eaul’eau
Par Par transactiontransaction
Serveur à Serveur à serveurserveur
Peu d’écarts Peu d’écarts entre les sitesentre les sites2005
Distribution Agent
DistDB
Logreader Agent
Distribution Agent
DistDB
Logreader Agent
Distribution Agent
DistDB
Logreader Agent
“Ouest” “Nord”
“Sud”
Réplication Transactionnelle: Replication Réplication Transactionnelle: Replication Peer-to-Peer Peer-to-Peer
Réplication depuis OracleRéplication depuis OracleRéplication TransactionnelleRéplication Transactionnelle
Une base Oracle en tant qu’émetteurUne base Oracle en tant qu’émetteurv8+, Unix , Linux, Windowsv8+, Unix , Linux, Windows
Administration depuis SQL ServerAdministration depuis SQL ServerAucun logiciel ne doit être installé sur la base OracleAucun logiciel ne doit être installé sur la base Oracle
Utilise pleinement les fonctions de Réplication de SQL Utilise pleinement les fonctions de Réplication de SQL ServerServer
Réplication Transactionnelle et par SnapshotRéplication Transactionnelle et par Snapshot
L’inverse est également possible (déjà disponible en L’inverse est également possible (déjà disponible en 2000)2000)
SQL ServerDistributeur
Abonnés
Nouveautés pour la sécurité
• SQL Server Surface Area Configuration
• Séparation utilisateur - schéma
Administration
Nouveautés2005
Désactivé par défautDésactivé par défautSQL Server Surface Area SQL Server Surface Area ConfigurationConfiguration
Séparation Utilisateur-Schéma Séparation Utilisateur-Schéma
Chaque schéma est possédé Chaque schéma est possédé par un rôle ou un utilisateurpar un rôle ou un utilisateurChaque utilisateur possède un Chaque utilisateur possède un schéma par défaut pour la schéma par défaut pour la résolution des nomsrésolution des nomsLes objets BD appartiennent à Les objets BD appartiennent à un schémaun schémaLa création d’un objet dans un La création d’un objet dans un schéma nécessite les droits schéma nécessite les droits
CREATE TABLE etCREATE TABLE etLa possession du schéma ou La possession du schéma ou ALTER ou CONTROLALTER ou CONTROL
Utilisateur 1
possèdeA comme défaut
possède
Rôle 2
possède
Schéma2
Schéma3
SP1F1
Tab1
Base
Rôle1
Schéma1
Le problème…Le problème…
Utilisateur 1Utilisateur 1Objet Objet
SGBDSGBD
Possédé par
TableTable
VueVue
ProcédureProcédure
FonctionFonctionUtilisateur 2Utilisateur 2
Résolution des nomsRésolution des nomsSelect * from FooSelect * from Foo
Utilisateur.fooUtilisateur.foo
Dbo.fooDbo.foo
Supprimer un utilisateur pouvait nécessiter Supprimer un utilisateur pouvait nécessiter de modifier l’application !de modifier l’application !
La solution…La solution…
UserUserObjetObjet
SGBDSGBDSchémaSchéma
Appartient à Possédé parPossédé par
TableTable
VueVue
ProcédureProcédure
FonctionFonction
User 2User 2
Possédé par
Supprimer un utilisateur NE nécessite PLUS de Supprimer un utilisateur NE nécessite PLUS de modifier l’applicationmodifier l’application
Appartient à
Résolution de nomRésolution de nom
SchémaSchéma
TableTable
VueVue
ProcédureProcédure
FonctionFonction
User 2User 2
Possédé par
Schéma par défautSchéma par défaut
Utilisateur 1Utilisateur 1
Schéma par défaut S1Schéma par défaut S1
Utilisateur 3Utilisateur 3
Résolution du Résolution du nomnomSelect * from fooSelect * from foo
•S1. fooS1. foo
•Dbo.fooDbo.fooUtilisateur 2Utilisateur 2
SQL Server 2005 pour les SQL Server 2005 pour les développeursdéveloppeurs
Intégration renforcée avec .Net
• Intégration avec Visual Studio
• Intégration de la CLR dans le moteur SGBD
• Nombreux langages : T-SQL amélioré, VB.NET, C#, J#...
Extensibilité
• Type de données XML natif
• Type de données créé par l’utilisateur
• Snapshot Isolation
Applications distribuées ou asynchrones
• Intégration de Web services
• Nouveau service distribuée : Service Broker
• Notification Services (requêtes asynchrones)
La Productivité des Développeurs
Intégration renforcée avec .Net
• Intégration avec Visual Studio
• Intégration de la CLR dans le moteur SGBD
• Nombreux langages : T-SQL amélioré, VB.NET, C#, J#...
Extensibilité
• Type de données XML natif
• Type de données créé par l’utilisateur
• Snapshot Isolation
La Productivité des Développeurs
Nouveautés2005
Le choix dans le stockage des Le choix dans le stockage des donnéesdonnées
T-SQLT-SQL
XMLXML
CLRCLR
Accès par Accès par calcul et calcul et par .Netpar .Net
Accès Accès relationnelrelationnel
Accès semi-Accès semi-structuréstructuré
Intégration .NETIntégration .NET
Microsoft® Visual
Studio® .NET Project
Assembly: “TaxLib.dll”
Microsoft®SQL Server™
SQL Data Definition: create assembly … create function … create procedure … create trigger … create type …
SQL Queries: select sum(tax(sal,state) ) from Emp where county = ‘King’
CLR hébergée dans SQL
Server
construire
déployer
La CLR 2.0 est hébergéeLa CLR 2.0 est hébergée
WindowsWindows
SQL OSSQL OS
SQL EngineSQL Engine
CLR 2.0CLR 2.0
CLR 2.0CLR 2.0
SQL Server et .NET Framework 2.0SQL Server et .NET Framework 2.0
Environnement de programmation pourEnvironnement de programmation pourFunctionsFunctions
Stored ProceduresStored Procedures
TriggersTriggers
User Defined TypesUser Defined Types
AggregatesAggregates
SécuritéSécuritéIntégration de la sécurité SQL Server et CLRIntégration de la sécurité SQL Server et CLR
Trois niveaux de sécuritéTrois niveaux de sécuritéSafe, External-Access (verifiable), UnsafeSafe, External-Access (verifiable), Unsafe
Quelle technologie utiliser ?Quelle technologie utiliser ?
T-SQLT-SQL Langages CLRLangages CLR
User Defined FunctionsUser Defined Functions XX XX
Stored ProceduresStored Procedures XX XX
TriggersTriggers XX XX
User-Defined TypesUser-Defined Types XX
AggregatesAggregates XX
Sécurité CLR : Permission SetsSécurité CLR : Permission SetsSAFESAFE
Aucun accès aux ressources externes à SQL Server Aucun accès aux ressources externes à SQL Server
Aucun appel à du code non managé (Win32, COM…)Aucun appel à du code non managé (Win32, COM…)
Doit-être « verifiable »Doit-être « verifiable »
EXTERNAL_ACCESSEXTERNAL_ACCESSSAFE + accès à certaines ressources externes (Fichier, SAFE + accès à certaines ressources externes (Fichier, Network…)Network…)
Accès aux ressources externes uniquement via des Accès aux ressources externes uniquement via des classes .NETclasses .NET
SQL Server 2005 change le contexte d’exécution du codeSQL Server 2005 change le contexte d’exécution du code
Doit-être « verifiable »Doit-être « verifiable »
UNSAFEUNSAFEPeut appeler du code non managé, peut-être « un-verifiable »Peut appeler du code non managé, peut-être « un-verifiable »
LE CODE PEUT TOUT FAIRE – DECONSEILLE !!!!LE CODE PEUT TOUT FAIRE – DECONSEILLE !!!!
Nouveautés Transact-SQL 2005Nouveautés Transact-SQL 2005
Instructions DDL (Data Définition Language)Instructions DDL (Data Définition Language)
Varchar(max), nvarchar(max), varbinary(max), xmlVarchar(max), nvarchar(max), varbinary(max), xml
Déclencheurs sur les instructions DDL (DDL Déclencheurs sur les instructions DDL (DDL Triggers)Triggers)
Instructions DML (Data Manipulation Language)Instructions DML (Data Manipulation Language)
Gestion des Exceptions (Try/Catch)Gestion des Exceptions (Try/Catch)
Instructions CTE (Common Table Expression)Instructions CTE (Common Table Expression)
Opérateur PivotOpérateur Pivot
Fonctions de ClassementFonctions de Classement
TOPTOP
La Clause OutputLa Clause Output
Mode de Verrouillage (Snapshot Isolation)Mode de Verrouillage (Snapshot Isolation)
Définition des données (DDL)Définition des données (DDL)
Nouveaux types de donnéesNouveaux types de donnéesVarchar(max), nvarchar(max), varbinary(max), xmlVarchar(max), nvarchar(max), varbinary(max), xml
Déclencheurs sur les instructions DDLDéclencheurs sur les instructions DDL (DDL (DDL Triggers)Triggers)
Gestion des contraintes d’intégrité référentiellesGestion des contraintes d’intégrité référentielles
Gestion des identifiants/utilisateursGestion des identifiants/utilisateursCreate loginCreate login
Create userCreate user
Types de DonnéesTypes de DonnéesDML
Types de données
Déclencheurs sur les instructions DDL
Gestion descontraintes d’intégrité référentielle
Type de Données
• Les Types Image et Text ont des limitations
• Peu de fonctions permettant de manipuler ces types de données• Pas utilisables en tant que paramêtres dans une procédure ou batch• Ne peut pas être mis à jour directement
• Nouveaux Types de données•VARCHAR(MAX), NVARCHAR(MAX), VARBINARY(MAX)• Taille : <= 2 Goctets
CREATE FUNCTION dovmax(@in varchar(max))
RETURNS varchar(max)varchar(max)ASBEGIN-- supporte la concatenationRETURN @in + '12345'END
Déclencheurs (Triggers) sur les Déclencheurs (Triggers) sur les instructions DDLinstructions DDL
DML
Types de données
Déclencheurs sur les instructions DDL
Gestion descontraintes d’intégrité référentielle
Déclencheurs sur les instructions DDL
• SQL Server 2005 permet de définir des déclencheurs sur des instructions de type DDL.• Les déclencheurs DDL s’exécutent dans le contexte de la transaction qui les initie• Une instruction ROLLBACK peut être exécutée pour défaire le travail du déclencheur.
CREATE TRIGGER trgSchemaAuditing ON DATABASE FOR CREATE_TABLE, ALTER_TABLE,FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLEDROP_TABLEASBEGIN INSERT INTO dbo.tblSchemaChangeLog SELECT CONVERT(nvarchar(max), EventData())EventData())END
Gestion des Contraintes Gestion des Contraintes d’intégrité référentielled’intégrité référentielle
DML
Types de données
Déclencheurs sur les instructions DDL
Gestion des contraintes d’intégrité référentielle
Gestion des Contraintes RI
CREATE TABLE Orders ( orderid INT NOT NULL, customerid CHAR(5) NULL DEFAULT('DUMMY'), orderdate DATETIME NOT NULL, CONSTRAINT PK_Orders PRIMARY KEY(orderid),
CONSTRAINT FK_Orders_Customers FOREIGN KEY(customerid) REFERENCES Customers(customerid)
ON DELETE SET NULL ON UPDATE ON DELETE SET NULL ON UPDATE SET DEFAULTSET DEFAULT )
Manipulation des données Manipulation des données (DML)(DML)
Gestion des exceptionsGestion des exceptions
Try/catchTry/catch
Common Tables ExpressionCommon Tables Expression
RécursivitéRécursivité
Nouveaux OpérateursNouveaux Opérateurs
Pivot, Unpivot, ApplyPivot, Unpivot, Apply
Fonctions de classementFonctions de classement
Row_number, Rank, Dense_rank, Ntile, TOPRow_number, Rank, Dense_rank, Ntile, TOP
Nouveau Mode de Verrouillage Nouveau Mode de Verrouillage
Snapshot IsolationSnapshot Isolation
Output ClauseOutput Clause
Fulltext SearchFulltext Search
AutresAutres
Gestion des ExceptionsGestion des Exceptions
DML Gestion des Exceptions
•Bloc Try/catch• Nouvelles fonctions de gestion des erreurs
•ERROR_NUMBER()•ERROR_SEVERITY()•ERROR_STATE()•ERROR_MESSAGE()•XACT_STATE()
-- Exemple BEGIN TRYBEGIN TRY SELECT * FROM authors END TRYEND TRY BEGIN CATCHBEGIN CATCH -- Test tx state IF (XACT_STATE()) = -1 ROLLBACK TRANSACTION IF (XACT_STATE()) = 1 COMMIT TRANSACTIONEND CATCHEND CATCHGO
Gestion des exceptions
Common Table Expression
Nouveaux Opérateurs
Fonctions de classement
Mode de Verrouillage
Output Clause
Fulltext Search
Autres
Common Table Expression Common Table Expression (CTE)(CTE)
DML Common Table Expression
DéfinitionDéfinition : Un jeu de résultats : Un jeu de résultats temporaire, qui dérive d’une requête temporaire, qui dérive d’une requête simple de type : Select, Insert, Update ou simple de type : Select, Insert, Update ou Delete.Delete.
Exemple :Exemple :
USE AdventureWorks ;USE AdventureWorks ;GOGO
WITH DirReps(ManagerID, DirectReports) AS WITH DirReps(ManagerID, DirectReports) AS (( SELECT ManagerID, COUNT(*) SELECT ManagerID, COUNT(*) FROM HumanResources.Employee AS eFROM HumanResources.Employee AS e WHERE ManagerID IS NOT NULLWHERE ManagerID IS NOT NULL GROUP BY ManagerIDGROUP BY ManagerID))SELECT * FROM DirReps ORDER BY ManagerIDSELECT * FROM DirReps ORDER BY ManagerIDGOGO
Gestion des exceptions
Common Table Expression
Nouveaux Opérateurs
Fonctions de classement
Mode de Verrouillage
Output Clause
Fulltext Search
Autres
Nouveaux OpérateursNouveaux OpérateursDML Tableaux DynamiquesNouveaux Opérateurs
• PIVOT• UNPIVOT• Apply
IdId PropNamePropName PropValPropVal
11 NameName xxx.docxxx.doc
11 CrDateCrDate 12/3/200112/3/2001
22 NameName yyy.xlsyyy.xls
22 AuthorAuthor V.HugoV.Hugo
IdId NameName AuthorAuthor
11 xxx.docxxx.doc NULLNULL
22 yyy.xlsyyy.xls V.HugoV.Hugo
SELECT * FROM table
PIVOT(MIN(PropVal)
FOR PropName
IN ([Name],[Author]) ) t
BrandBrand YearYear SalesSales
MsMs 19901990 20002000
OtherOther 19901990 500500
MsMs 19911991 30003000
OtherOther 19911991 600600
BrandBrand 19901990 19911991
MsMs 20002000 30003000
OtherOther 500500 600600
SELECT * FROM table
PIVOT(SUM(Sales)
FOR Year
IN ([1990], [1991]) ) t
• Exemple:
Gestion des exceptions
Common Table Expression
Nouveaux Opérateurs
Fonctions de classement
Mode de Verrouillage
Output Clause
Fulltext Search
Autres
Fonctions de classement avec SQL Fonctions de classement avec SQL Server 2005Server 2005
DML Fonctions de classement
• Fonctions de classement:• RANK()• NTILE(<expression>)
<ranking_function>
OVER( [PARTITION BY <column>]
ORDER BY <column>)
SELECT Athlete, Time,
RANK() OVER(ORDER BY Time) AS Rank,
DENSE_RANK() OVER(ORDER BY Time) AS Dense_Rank,
NTILE(3) OVER(ORDER BY Time) as NTILE_3,
FROM RaceResults
• Exemple:
• DENSE_RANK()• ROW_NUMBER()
AthleteAthlete TimeTime RankRank Dense_RankDense_Rank NTile_3NTile_3
JoeJoe 1010 11 11 11
BobBob 10.510.5 22 22 11
MarkMark 10.510.5 22 22 22
WillWill 10.610.6 44 33 22
JohnJohn 11.011.0 55 44 33
Gestion des exceptions
Common Table Expression
Nouveaux Opérateurs
Fonctions de classement
Mode de Verrouillage
Output Clause
Fulltext Search
Autres
Nouveau Mode de Verrouillage avec SQL Nouveau Mode de Verrouillage avec SQL Server 2005Server 2005
DML Mode de Verrouillage
Transaction 2 SET TRANSACTION ISOLATION LEVEL SNAPSHOT
BEGIN TRAN
SELECT c2 FROM t1 WHERE c1 = 1
-- SQL Server returns 5
SELECT c2 FROM t1 WHERE c1 = 1 -- SQL Server returns 5
COMMIT TRAN
SELECT c2 FROM t1 WHERE c1 = 1 -- SQL Server returns 9
Transaction 1BEGIN TRANUPDATE t1 SET c2 = 9 WHERE c1 =1
COMMIT TRAN
Transaction level ‘Snapshot Isolation’Transaction level ‘Snapshot Isolation’Garanti l’intégrité Transactionnelle (ACID)Garanti l’intégrité Transactionnelle (ACID)
Les Lecteurs ne posent pas de verrouLes Lecteurs ne posent pas de verrou
DéclarationDéclaration
Set Transaction Isolation level SnapshotSet Transaction Isolation level Snapshot
Alter database mydatabase set allow_snapshot_isolation onAlter database mydatabase set allow_snapshot_isolation on
Gestion des exceptions
Common Table Expression
Nouveaux Opérateurs
Fonctions de classement
Mode de Verrouillage
Output Clause
Fulltext Search
Autres
Snapshot IsolationExampleCREATE TABLE t1 (c1 int unique, c2 int)INSERT INTO t1 VALUES (1, 5)
Transaction 2 (Snapshot Isolation)
SET TRANSACTION ISOLATION LEVEL SNAPSHOT
BEGIN TRAN
SELECT c2 FROM t1 WHERE c1 = 1
-- SQL Server returns 5
SELECT c2 FROM t1 WHERE c1 = 1
-- SQL Server returns 5
COMMIT TRAN
SELECT c2 FROM t1 WHERE c1 = 1
-- SQL Server returns 9
Transaction 1
BEGIN TRANUPDATE t1
SET c2 = 9 WHERE c1 =1
COMMIT TRAN
Time
Transaction 3 (RCSI)
BEGIN TRAN
SELECT c2 FROM t1 WHERE c1 = 1
-- SQL Server returns 5
SELECT c2 FROM t1 WHERE c1 = 1
-- SQL Server returns 9
COMMIT TRAN
SELECT c2 FROM t1 WHERE c1 = 1
-- SQL Server returns 9
DML Avec des Résultats (OUTPUT Clause)DML Avec des Résultats (OUTPUT Clause)
DML Output Clause
• OUTPUT clause pour les instructions DML :
• Utilisez “inserted” or “deleted” pour récupérer l’image Avant ou Après modification.
• Option pour stocker les enregistrements : OUTPUT …INTO
UPDATE OrdersSET status=’processed’OUTPUT DELETED.*, INSERTED.*OUTPUT DELETED.*, INSERTED.* WHERE status=‘unprocessed’
DELETE Sales.ShoppingCartItemOUTPUT DELETED.* INTO @MyTableVarOUTPUT DELETED.* INTO @MyTableVar
Gestion des exceptions
Common Table Expression
Nouveaux Opérateurs
Fonctions de classement
Mode de Verrouillage
Output Clause
Fulltext Search
Autres
Fulltext SearchFulltext Search
DML Fulltext Search
• Programmation• Create Fulltext Catalog/Index• Alter fulltext Catalog/Index• Drop fulltext catalog/Index
• Nouvelles Fonctionnalités• Support des Thésaurus• Support Multi-colonnes :
CONTAINS((col1, col2), ‘yukon’)• Peut fonctionner avec des serveurs liés
• Administration et Exploitation• Intégré dans les fonctions backup/restore• Transport Fulltext avec les fonctions attach / detach
• Optimisation• 30 à 50% d’amélioration en lecture• Jusqu’à 700% d’amélioration en temps d’indexation
Gestion des exceptions
Common Table Expression
Nouveaux Opérateurs
Fonctions de classement
Mode de Verrouillage
Output Clause
Fulltext Search
Autres
AutresAutres
DML Autres
•Bulk Operations on Openrowset SELECT a.* FROM OPENROWSET( BULK 'c:\test\values.txt', FORMATFILE = 'c:\test\values.fmt') AS a
INSERT INTO myTable(FileName, FileType, Document) SELECT 'Text1.txt' AS FileName, '.txt' AS FileType, * FROM OPENROWSET(BULK N'C:\Text1.txt', SINGLE_BLOB) AS Document
• Améliorations sur l’instruction TOPInstruction TOP accessible depuis les ordres Insert/Update/DeleteUtilisation d’une variable dans l’instruction TOPExemple
Declare @p as intset @p = 10Select TOP(@P) * from
HumanResources.Employee
• Requêtes DistribuéesEXECUTE ('CREATE TABLE SalesTbl (SalesID int, SalesName varchar(10));', 'SalesData') AT ServeurParis;
• Tablesample
Gestion des exceptions
Common Table Expression
Nouveaux Opérateurs
Fonctions de classement
Mode de Verrouillage
Output Clause
Fulltext Search
Autres
Nouveautés XML Nouveautés XML SQL Server 2005SQL Server 2005
Nouveau type de donnée Nouveau type de donnée natif XMLnatif XML
Gestion des schémas Gestion des schémas optionnelleoptionnelle
Indexation des colonnes de Indexation des colonnes de type XMLtype XML
Manipulation du XMLManipulation du XMLSupport de Xquery 1.0Support de Xquery 1.0
AméliorationsAméliorationsFor XMLFor XMLOpenXMLOpenXML
CREATE TABLE Invoices (InvoiceID int, SalesDate datetime, CustomerID int, ItemList xml)
INSERT INTO Invoices VALUES (1, GetDate(), 2, '<Items> <Item ProductID="2" Quantity="3"/> <Item ProductID="4" Quantity="1"/> </Items>')
CREATE XML SCHEMA COLLECTION ResumeSchemaCollection
as N’<xsd:schema>...</xsd:schema>’
SELECT ItemList.query(' <Items> { for $i in /Items/Item return <Quantity> {number($i/@Quantity)} </Quantity> } </Items>')from Invoices
Nouveautés2005
Applications distribuées ou asynchrones
• Intégration de Web services
• Nouveau service distribuée : Service Broker
• Notification Services (requêtes asynchrones)
La Productivité des Développeurs
Gestion des Web ServicesGestion des Web Services
Gestion des Web ServicesGestion des Web Services
ConfigurationConfiguration
SécuritéSécurité
WSDLWSDL
Accès depuis une application tierceAccès depuis une application tierce
HTTP Endpoint
HTTP.sys
SQL Server
WSDL
SQL Service BrokerSQL Service Broker
Services et environnement de programmation pour Services et environnement de programmation pour construire des applications réparties fiables asynchronesconstruire des applications réparties fiables asynchrones
Apporte une nouvelle infrastructure de communicationsApporte une nouvelle infrastructure de communicationsDialogues (conversations) bidirectionnellesDialogues (conversations) bidirectionnelles
Livraison fiable vers des queues locales et distantesLivraison fiable vers des queues locales et distantes
Exactement une livraisonExactement une livraison
Pas besoin du commit à 2 phases du DTCPas besoin du commit à 2 phases du DTC
Préserve l’ordre des messages, même dans des tx séparéesPréserve l’ordre des messages, même dans des tx séparées
Messages volumineux jusqu’à 2 GB – fragmentésMessages volumineux jusqu’à 2 GB – fragmentés
Pas de dépendance sur MSMQPas de dépendance sur MSMQ
APP 1APP 1
SQL EngineSQL Engine SQL EngineSQL Engine
APP 2APP 2
ArchitectureArchitecture Service BrokerService Broker
ApplicationInitiatrice
ApplicationCible
MessageType
MessageType
Service Service
Queue
Contract Contract
Queue
Niveau applicatif
Niveau logique
Niveau physique
TCP/IP
Endpoint
Transport Transport
Dialog Conversation
Endpoint
Fragmentation des messagesFragmentation des messagesSQL Service Broker est conçu pour des messages de très grande tailleSQL Service Broker est conçu pour des messages de très grande taille
SSB assure la création de fragments et les réassemble lorsqu’ils SSB assure la création de fragments et les réassemble lorsqu’ils arrivent au service destinatairearrivent au service destinataire
Le service destinataire reçoit ces gros messages comme s’il était d’un seul Le service destinataire reçoit ces gros messages comme s’il était d’un seul tenanttenant
Cette caractéristique permet de faire passer d’autres messages sans les Cette caractéristique permet de faire passer d’autres messages sans les bloquerbloquer
La taille maximale est varbinary(MAX) – 2 GBLa taille maximale est varbinary(MAX) – 2 GB
Service Service
Dialog DialogDialog
SQL EngineSQL Engine
When Complete…
Service Service
Dialog DialogDialog
SQL EngineSQL EngineSQL EngineSQL Engine
When Complete…
Notifications Services : Notifications Services : Evènements, Evènements, abonnements et notificationsabonnements et notifications
Events
StockSymbol
MSFT
Stock Value
41
ORCL 11 1/4
SUNW 9 1/2
INTC 22
IBM 65
CSCO 11 1/2
SELECT s.SubscriberId, e.StockSymbol, e.StockValueFROM Events e, Subscriptions sWHERE (e.StockSymbol = s.StockSymbol)AND (e.StockValue > s.Trigger)
Les abonnements sont Les abonnements sont aussi des enregistrementsaussi des enregistrementsdans une table.dans une table.
Les évènements sont Les évènements sont des enregistrementsdes enregistrementsdans une table.dans une table.
Effectuer une Effectuer une jointurejointurepermet de produire des résultats permet de produire des résultats (notifications)(notifications)- à intervalles réguliers- à intervalles réguliers- à des moments précis- à des moments précis- de complexité arbitraire- de complexité arbitraire
Sur 3 canaux : HTTP, SMTP et Sur 3 canaux : HTTP, SMTP et fichierfichier
Subscriptions
StockSymbol
MSFT
Trigger
40
SubscriberId
billg@msn.com
Fonctionnement d’une Fonctionnement d’une application de SQL NSapplication de SQL NS
Sources
d’Infor-mation
Sources
d’Infor-mation
Abonnés: ordinateurs, navigateurs, téléphones, messagers
…
Abonnés: ordinateurs, navigateurs, téléphones, messagers
…
SouscriptionsSouscriptions(millions)(millions)
NotificationsNotifications(millions)(millions)
GénérateurGénérateur
AbonnésAbonnés
Evène-Evène-mentsments
En pratique: fichiers XML et code à En pratique: fichiers XML et code à écrireécrire
Les fichiers XML suivants définissent ce qu’est Les fichiers XML suivants définissent ce qu’est une application et une instance SQL NSune application et une instance SQL NS
Instance Configuration File
Application Definition File
XMLEventFiles
Application Definition File
XSLTContentFormatter
XSD XMLEventFiles
// Managed Code Content Providersusing System;using System.Configuration;
Code .Net à écrireCode .Net à écrire// Test de SQL NS: création de l’instance, des abonnés et des abonnementsusing Microsoft.SqlServer.NotificationServices;
// Création de l’objet NSInstancestring instanceName = “Localisation”;NSInstance myInstance = new NSInstance(instanceName);
// Création de l’objet SubscriberSubscriber mySubscriber = new Subscriber(myInstance);
// Ajout d’un abonnémySubscriber.SubscriberId = “sqlnsuser@sqldays.com";mySubscriber.Add();
XSLTContentFormatter
XSD
SQL Server 2005 pour les SQL Server 2005 pour les analystes décisionnelsanalystes décisionnels
Enrichissement des Enrichissement des données avec la données avec la logique d’entrepriselogique d’entreprise
Exploration de Exploration de l’information avec l’information avec les outils de data les outils de data miningmining
Présentation et Présentation et distribution des distribution des données données
Accès aux données Accès aux données pour touspour tous
Acquisition et Acquisition et intégration de données intégration de données de système sourcesde système sources
Transformation et Transformation et agrégation de donnéesagrégation de données
IntégrerIntégrer AnalyserAnalyser RestituerRestituer
Business Intelligence
Acquisition et Acquisition et intégration de données intégration de données de système sourcesde système sources
Transformation et Transformation et agrégation de donnéesagrégation de données
IntégrerIntégrer
Business Intelligence
ETL d’entrepriseETL d’entrepriseModule entièrement nouveauModule entièrement nouveauHaute performance et évolutivitéHaute performance et évolutivité
Meilleur DesignMeilleur DesignEnvironnement de développementEnvironnement de développementGestion des versionsGestion des versionsAnalyse pas à pas visuelle du flux et Analyse pas à pas visuelle du flux et des donnéesdes donnéesNombreuses transformations nativesNombreuses transformations natives
ExtensibleExtensibleTâches personnaliséesTâches personnaliséesTransformations personnaliséesTransformations personnaliséesSources de données personnaliséesSources de données personnalisées
Business Intelligence : Integration Services
Nouvelles contraintes techniques Nouvelles contraintes techniques adresséesadressées
Disparition de la fenêtre batchDisparition de la fenêtre batch
Capture des données en amont des application Capture des données en amont des application traditionnelles (RFID, ClickWeb, RSS…)traditionnelles (RFID, ClickWeb, RSS…)
De plus en plus de sourcesDe plus en plus de sourcesSGBD, fichiers platsSGBD, fichiers plats
XML, SAP, Web Services, RSS, …XML, SAP, Web Services, RSS, …Et autant de ciblesEt autant de cibles
Structurée, semi structurée, non structuréeStructurée, semi structurée, non structurée
Des volumes toujours plus grandsDes volumes toujours plus grands
Au-delà de l’alimentation d’un entrepôt:Au-delà de l’alimentation d’un entrepôt: prise en compte de nouvelles destinations.prise en compte de nouvelles destinations.
Exemple: SANS Integration ServicesExemple: SANS Integration Services
Centre d’appel :données semi structurées
Gros systèmes :fichiers binaires
Base de donées :données relationnelles
ETL Warehouse
Rapports
Mobile
Data mining
Alertes & escalades
• Chaque étape nécessite des opérations séparées• La préparation des données nécessite des outils différents et parfois incompatibles• L’ensemble introduit des délais dans les réponses• Les gros volumes de données posent des problèmes
Codagespécifique
Stockageintermédiaire
Text Mining
ETL Stockageintermédiaire
Nettoyage&
ETL
Stockageintermédiaire
ETL
Exemple: AVEC Integration ServicesExemple: AVEC Integration Services
Centre d’appel :données semi structurées
Gros systèmes :fichiers binaires
Base de donées :données relationnelles
Alertes & escalades
• Intégration et création d’entrepôt se font dans une seule opération • Récuparation, préparation et chargement des données dans un seul processus auditable• Possibilité de gérer des très gros volumes de données
SQL Server Integration Services
TraitementDu texte
Sourcespécifique
Sources standards
Nettoyage des données
Fusions
Data mining
Warehouse
Rapports
Mobile
Les données peuvent ensuite être partitionnées et séparées…
Control Flow
Loop
Les composants de SSISLes composants de SSIS
FTP
Execute SQL
Data Flow
Send Mail
Data Flow
Flat File Source
Oracle ADO.NET Source
Merge
De-duplicate
Split
SQL Server Flat File
Le Control flow permet de définir un enchainement de taches complexe.Le Control flow peut comprendre différents types de tâchesGroupes en boucles, séquences… et reliées par des contraintes.Le Data Flow est une tâche spéciale …Qui a son propre modèle dédié au déplacement et à la transformation de données.Les données peuvent provenir de sources multiples et hétérogènes …Les données, provenant de sources variées, peuvent être fusionnées dans un flot unique Elles peuvent alors être nettoyées …Et chargées dans des destinations multiples et hétérogènes .
PerformancesPerformances
3 fois plus rapide en 64 bits qu’en 323 fois plus rapide en 64 bits qu’en 32
Note: Fréquence 32-bit @ 3 GHz et fréquence 64-bit @ 1.5 GHz
64-bit vs. 32-bit parallel Lookups Performance (Six lookups with 100M Dim rows with fast parse enabled)
20
67
0
25
50
75
100
Platform Type
Exe
cuti
on
Tim
es (
min
ute
s)
64-bit 16 CPU,
32-bit 16 CPU
Enrichissement des Enrichissement des données avec la données avec la logique d’entrepriselogique d’entreprise
Exploration de Exploration de l’information avec l’information avec les outils de data les outils de data miningmining
AnalyserAnalyser
Business Intelligence
Acquisition et Acquisition et intégration de données intégration de données de système sourcesde système sources
Transformation et Transformation et agrégation de donnéesagrégation de données
IntégrerIntégrer
Business Intelligence : Analysis Services
Unified Dimensional ModelUnified Dimensional ModelRéunion du monde relationnel et Réunion du monde relationnel et décisionneldécisionnel
Pro-active cachingPro-active caching
Business Intelligence AvancéeBusiness Intelligence AvancéeIndicateurs Clés de PerformancesIndicateurs Clés de Performances
ScriptsScripts
Multi langueMulti langue
Analyses ServicesAnalyses Services
Composant OLAP de SQL Server 2005Composant OLAP de SQL Server 2005
• Propose une vue multidimensionnelle Propose une vue multidimensionnelle et intuitive des donnéeset intuitive des données
• Permet d’associer une vue métier Permet d’associer une vue métier aux donnéesaux données
• Calcul d’agrégations permettant une Calcul d’agrégations permettant une récupération rapide des données récupération rapide des données
Analyses ServicesAnalyses ServicesAAu niveau du serveur :u niveau du serveur :
Gestion, administration des cubes multidimensionnelsGestion, administration des cubes multidimensionnels
Optimise le stockage des cubes (cellules vides, Optimise le stockage des cubes (cellules vides, agrégations)agrégations)
Optimise les agrégations pour fournir une réponse rapideOptimise les agrégations pour fournir une réponse rapide
Nouveau modèle UDM (Unified Dimensionnal Model)Nouveau modèle UDM (Unified Dimensionnal Model)
Intègre un module de création d’indicateurs clés et de data Intègre un module de création d’indicateurs clés et de data miningmining
Intègre les Intègre les PivotTable servicesPivotTable services pour les applications de pour les applications de création de tableaux et graphiques croisés dynamiquescréation de tableaux et graphiques croisés dynamiques
Nombreux assistantsNombreux assistants
Analyses ServicesAnalyses Services• Au niveau du client :Au niveau du client :
Supporte les connexions des différents Supporte les connexions des différents clients aux données multidimensionnellesclients aux données multidimensionnelles
Génération de rapports à partir de données Génération de rapports à partir de données multidimensionnellesmultidimensionnelles
Support natif des clients XML/ASupport natif des clients XML/A
Améliorations depuis Analysis Améliorations depuis Analysis Services 2000Services 2000
DSV, Data Source ViewsDSV, Data Source Views
Intellicube pour la construction des cubesIntellicube pour la construction des cubes
Évolutions dans les dimensionsÉvolutions dans les dimensions
Notion de perspective pour les cubesNotion de perspective pour les cubes
Gestion d’indicateurs clésGestion d’indicateurs clés
Data mining amélioréData mining amélioré
Intégration de SQL ProfilerIntégration de SQL Profiler
Possibilité de multi instances avec SSASPossibilité de multi instances avec SSAS
SSAS est « clusterisable »SSAS est « clusterisable »
Scripts MDX…Scripts MDX…
Unified Dimensional ModelUnified Dimensional Model
DataWarehouse
UDM
Clients
Accès OLAP
Reporting
CacheCache
XM
L/A
ou
OD
BO
Analysis Services
Source de données
KPI
Data mining
Analysis Analysis ServicesServices
Proactive Caching – Basic OperationProactive Caching – Basic Operation
UpdateUpdate
Update NotificationUpdate NotificationMDXMDXUDMUDM
CacheCache
XM
L/A
or
OD
BO
XM
L/A
or
OD
BO
SQL QuerySQL Query
NewNewVersionVersion
Analysis Analysis ServicesServices
Proactive Caching – Basic OperationProactive Caching – Basic Operation
MDXMDXUDMUDM
CacheCache
XM
L/A
or
OD
BO
XM
L/A
or
OD
BO
SQL QuerySQL Query
NewNewVersionVersion
Indicateurs clés (KPI)Indicateurs clés (KPI)Caractéristiques des cubes, calculés coté Caractéristiques des cubes, calculés coté serveur et gérés par SSASserveur et gérés par SSAS
Définition de valeurs clésDéfinition de valeurs clés
Les composants d’un KPI :Les composants d’un KPI :• Valeur, but, état, tendanceValeur, but, état, tendance
Création des KPI depuisCréation des KPI depuisBIBI Development StudioDevelopment Studio
API d’accès aux KPIAPI d’accès aux KPI
Étapes pour la création de KPI :Étapes pour la création de KPI :• Choix de la valeur à mesurerChoix de la valeur à mesurer
• Cible/objectif pour cette valeurCible/objectif pour cette valeur
• Statut de la valeur par rapport à l’objectifStatut de la valeur par rapport à l’objectif
• Évaluation de la tendanceÉvaluation de la tendance
Data Mining – Points clésData Mining – Points clés
• 7 algorithmes proposés :7 algorithmes proposés :• Decision trees, Navie Bayes, Decision trees, Navie Bayes,
Neural network, Clustering, Time Neural network, Clustering, Time Series, Sequence Clustering, Series, Sequence Clustering, AssociationAssociation
• Développement d’un projet Développement d’un projet de Data mining :de Data mining :• Au travers de BI Development Au travers de BI Development
StudioStudio• Assistant pour la définition d’un Assistant pour la définition d’un
modèle de miningmodèle de mining• Editeur de modèle de miningEditeur de modèle de mining
• Intégration avec SSISIntégration avec SSIS
Présentation et Présentation et distribution des distribution des données données
Accès aux données Accès aux données pour touspour tous
RestituerRestituer
Business Intelligence
Enrichissement des Enrichissement des données avec la données avec la logique d’entrepriselogique d’entreprise
Exploration de Exploration de l’information avec l’information avec les outils de data les outils de data miningmining
AnalyserAnalyser
Acquisition et Acquisition et intégration de données intégration de données de système sourcesde système sources
Transformation et Transformation et agrégation de donnéesagrégation de données
IntégrerIntégrer
Introduit avec SQL Server 2000Introduit avec SQL Server 2000Solution de Rapports d’entreprise Solution de Rapports d’entreprise
Création, Gestion, Diffusion de rapportsCréation, Gestion, Diffusion de rapports
Intégration à OfficeIntégration à Office
Nouveautés SQL Server 2005Nouveautés SQL Server 2005Intégration avec Analysis ServicesIntégration avec Analysis Services
Nouvelles interactions utilisateurNouvelles interactions utilisateur
Créateur de rapports pour utilisateurs finauxCréateur de rapports pour utilisateurs finaux
Business Intelligence : Reporting Services
Évolutions avec SQL Server Évolutions avec SQL Server 2005 2005
Report Builder, outil utilisateur finalReport Builder, outil utilisateur finalÉvolution des ContrôlesÉvolution des ContrôlesTri interactifTri interactifParamètres multi valuésParamètres multi valuésSélecteur de dateSélecteur de dateIntégration à Management Studio Intégration à Management Studio Générateur de requêtes MDXGénérateur de requêtes MDX
Custom Report ItemCustom Report ItemFloating headersFloating headersImpression depuis IE (SP2)Impression depuis IE (SP2)Web Parts (SP2)Web Parts (SP2)Support du 64 bitSupport du 64 bitSupport de Multi-instance Support de Multi-instance Évolution de l’éditeur Évolution de l’éditeur d’expressiond’expression
SQL Server Catalog
Report Server
ArchitectureArchitecture
Exportation
Cibles(Courrier, Fichier,
Autre)
Services Sécurité(NT, Passeport,
Autre)
Securité
Data Sources(SQL, OLE DB, ODBC,
Oracle, Custom)
Formats (HTML, Excel,
PDF, Autre)
Report Processing
Navigateur Administration Application
URL WMI Web Service
Interrogationdes données
Formatage
Report Builder
Scénarios d’utilisationScénarios d’utilisation
Rapports InternesRapports InternesRapports “Maison” (Vente, Finance, DRH)Rapports “Maison” (Vente, Finance, DRH)
Administrable, portail et intégration aux solutions d’entrepriseAdministrable, portail et intégration aux solutions d’entreprise
Rapports embarquésRapports embarqués Afficher des rapports dans n’importe quelle application Afficher des rapports dans n’importe quelle application d’entreprise (ERP, CRM) ou analytiqued’entreprise (ERP, CRM) ou analytique
Architecture extensible et flexibleArchitecture extensible et flexible
Rapports CollaboratifRapports CollaboratifB2B, B2C, Echanges inter ou intra entreprise …B2B, B2C, Echanges inter ou intra entreprise …
Rapports ExternesRapports ExternesPublier des rapports via extranets, InternetPublier des rapports via extranets, Internet
Isolation de données, sécurité extensibleIsolation de données, sécurité extensible
MigrationMigration
Avant de migrer…Avant de migrer…
Upgrade Advisor Report
Mis
e à
niv
eau
Ap
rès
la m
ise
à n
ivea
u
Prêt
Upgrade Advisor
Migration ou Mise à niveauMigration ou Mise à niveau
AvantAvant AprèsAprès
Mise à niveauMise à niveau
MigrationMigration
SQL Server 7.0/2000SQL Server 7.0/2000
SQL Server 7.0/2000SQL Server 7.0/2000
SQL Server 7.0/2000SQL Server 7.0/2000
SQL Server 2005SQL Server 2005
SQL Server 2005SQL Server 2005
Mise à niveauMise à niveau
MigrationMigration
MigrationMigration
AvantagesAvantagesFournit un contrôle plus fin sur les opérationsFournit un contrôle plus fin sur les opérations
Permet d’avoir l’ancienne et la nouvelle version côte à Permet d’avoir l’ancienne et la nouvelle version côte à côte pour des tests et des vérificationscôte pour des tests et des vérifications
L’instance de production reste disponible pendant la L’instance de production reste disponible pendant la migration migration
Possible avec des technologies de basculement Possible avec des technologies de basculement
InconvénientsInconvénientsPeut nécessiter des ressources matérielles Peut nécessiter des ressources matérielles
supplémentairessupplémentaires
Les applications doivent être redirigées vers une Les applications doivent être redirigées vers une nouvelle instancenouvelle instance
Mise à niveauMise à niveau
AvantagesAvantagesPlus simple et rapide pour les petits systèmesPlus simple et rapide pour les petits systèmes
Ne nécessite pas de matériel supplémentaireNe nécessite pas de matériel supplémentaire
Les applications pointent sur la même instanceLes applications pointent sur la même instance
InconvénientsInconvénientsMoins de possibilité de contrôleMoins de possibilité de contrôle
L’instance reste inacessible pendant la mise à niveauL’instance reste inacessible pendant la mise à niveau
Ce n’est pas la recommandation pour tous les Ce n’est pas la recommandation pour tous les composents :composents :
Il est recommandé de migrer les cubes Analysis ServicesIl est recommandé de migrer les cubes Analysis Services
Recommended