Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parAbelle Lopes Modifié depuis plus de 11 années
1
Le système de gestion et d’analyse des données de nouvelle génération
Architecte Infrastructure
2
Agenda Généralités SQL Server 2005 pour les administrateurs
SQL Server 2005 pour les développeurs SQL Server 2005 pour les analystes décisionnels Après les généralités, on regroupera les nouvelles fonctionnalités en 3 catégories : - administration - développement - analyse décisionnelle Nota : Fonctionnalités et exemples basés sur la CTP d’Avril 2005
3
Une version majeure SQL Server 7.0 SQL Server 2000 2ème Génération
Performance, montée en charge Support du XML Intégration des services de Notification, de Reporting et de Data Mining Réécriture du moteur relationnel Gestion automatisée des ressources Intégration des services OLAP et ETL 2ème Génération SQL Server 2005 Haute disponibilité Sécurité Intégration CLR XML Natif Nouveau moteur ETL d’entreprise 64 bits IA-32 et x64 3ème Génération 1ere Génération SQL Server 6.0/6.5 Différentiation de Sybase SQL Server Intégration à Windows Intégration de la Réplication Une version majeure avec de très nombreuses nouveautés Valeur de l’offre Gestion automatique Performance et Sécurité Intégration du Décisionnel Objectifs long terme :
4
Une offre globale Derrière une boite et vendu comme un seul produit se cachent une offre globale, complète, cohérente
5
Une offre adaptée à vos besoins
Nouveauté SQL Server 2005 Une offre adaptée à vos besoins Express Workgroup Standard Enterprise La base de données pour les petites entités et les activités en croissance La plate-forme complète pour la gestion et l’analyse des données destinée aux entités moyennes à grandes La plate-forme intégrée pour la gestion et l’analyse de données des applications critiques de l’entreprise Adaptée aux développeurs pour apprendre, construire et déployer 1 Proc 1 Go mémoire 4 Go base Outil d’administration simplifié Sécurité intégrée Support XML & Améliorations T-SQL Intégration .Net & CLR Serveur de rapports Import/Export Client Réplication 2 Proc Go mémoire Outil d’administration Management Studio SQL Agent Assistant d’optimisation Recherche en texte intégral Serveur de Réplication limité Transfert journaux (Log shipping) 4 Proc versions 32 & 64-bit Miroir de BD limité Cluster 2 noeuds Integration Services (ETL) Analysis Services (Serveur OLAP) Data Mining Réplication complète Notification Services Pas de limitation + Partitionnement Miroir BD complet & Cluster 8 nœuds Opérations en ligne et redémarrage rapide Clichés BD Outils avancés (ETL, OLAP et Data Mining) Serveurs de rapports mutiples La licence par processeur inclut le support de l’HyperThreading et du Multi-core (jusqu’à 3 licences économisées par processeurs s’il est Dual-Core et HT !!!) Toutes les éditions supérieures incluent les fonctionnalités des éditions inférieures… Gratuit Prix croissant
6
Une offre crédible Références 2000 Transactionnel
Enregistrement des données de marché Pic de Transaction par Seconde Internet Auction Co., Ltd (Korea ) SGBDR et moteur OLAP Volumétrie : 2,7To Transaction par seconde : 3 600 CRM SGBDR pour Siebel Nb d’utilisateurs: Siebel eService Volumétrie: 1 To SAN ERP Utilisation de SQL comme BDD pour SAP Volumétrie : 1 To+, 5 To Stockage Nb d’utilisateurs : 2000 concurrents Utilisation de SQL Server pour l’appli. de facturation Volumétrie: 5 To & 33 Milliards de lignes & 15 To total Services Web 5 Millions d’images, + 10 Millions de fichiers 99,99 % de disponibilité 20 Serveurs Décisionnel SQL Server 64 bits comme moteur OLAP Volumétrie: 2,5 To & Croissance de 30% / an Coût: réduct. 70% / Perf multipliées par 4 Des références significatives Attention : références SQL Server 2000 !!!
7
Le marché des SGBD en 2004 SQL Server domine sur Windows +18%* +18%*
Non-mainframe DB ($5.4B) Growth & Shares 2004 Oracle 43% SQL Server 26% IBM 20% Other 11% Non-mainframe DB ($5.4B) Growth & Shares 2004 Oracle 43% SQL Server 26% IBM 20% Other 11% Oracle 42% 2003 SQL Server 24% Other 12% IBM 22% +18%* +15%* +2%* Non-mainframe DB ($6 Bil) By OS Platform SQL Server domine sur Windows +18%* +15%* +2%* Unix/Linux 49% Windows 51% Windows Database Market ($3.1 Bil) IBM a été dépassé en 2003 IBM a été dépassé en 2003 Oracle 42% 2003 SQL Server 24% Other 12% IBM 22% Other 8% Relational Database only, excluding all mainframe (also note that this excludes MS Access which Gartner does not consider to be a “relational” database) Database software new license revenues from Gartner Dataquest annual survey. Latest data available is for calendar year Data is collected and made public 4-5 months after close of calendar year. Survey measures revenues, because there is no agreement on what DB units Gartner should count (users, devices, servers, processors, megahertz, sites, companies, etc..). This cut of the data removes mainframe database revenues. Non-mainframe database market is commonly cited by IBM and Oracle and is agreed to be a more accurate component of “new license” part of database market. Very few new mainframes are being put in place today for new workloads although some mainframe workloads are still migrating from legacy DBMS to DB2 and DB2 revenues grow as mainframe hardware MHz (MIPS) grows. Windows est la plateforme leader pour les SGBD IBM 16% SQL Server 51% Oracle 25% *Percentages reflect revenue growth Source: Gartner
8
Administration Développement Décisionnel
9
Des outils optimisés Propriétés « Serveur »
10
Administration 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 Nouveautés 2005
11
Administration 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 Nouveautés 2005
12
La problématique de la disponibilité…
Arrêt du Système Cluster de basculement Base de Données Miroir 2005 Interruptions Non-Planifiées Corruption des Données Transfert de journaux Réplication Base de Données Miroir 2005 Svg/Restauration rapide Restauration jusqu’à un instant donné Cliché Base de données 2005 Erreurs Humaines 2005 Opérations de maintenance des index en ligne Tables partitionnées 2005 Réorganisation des données Opérations de Maintenance 2005 Cluster de basculement Base de Données Miroir Changements liés au système 2005
13
Redémarrage rapide (« fast recovery »)
Nouveau SS 2005 Redémarrage rapide (« fast recovery ») SQL Server 2000 La base est accessible après avoir rejouée les transactions validées et défait les transactions non validées. SQL Server 2005 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 transactions soient défaites. Temps de redémarrage (et de basculement) réduit Refaire (redo) Défaire (undo) Base Accessible temps Défaire (undo) Refaire (redo) Base Accessible
14
Solutions pour la Haute Disponibilité
Communication Granu-larité Basculement Pertes potentielles Miroir de BD TCP endpoints BD Automatique (qq sec) Aucune en synchrone Cluster Base unique Disques partagés Instance Automatique (qq dizaine de sec à qq min) Aucune Transfert des journaux Log Shipping Copie de fichiers et restauration Manuel Transactions depuis la dernière copie Réplication Copie de fichiers et chargement Table 2005 Améliorations 2005 Améliorations 2005
15
Cluster de basculement (« Failover Cluster »)
Un espace disque partagé par plusieurs serveurs, mais un seul serveur y accède à un instant donné Détection d’erreurs & basculement automatique Plusieurs modes : Une SEULE base, une SEULE instance Actif / actif possible avec n instances travaillant sur n bases Fournit un redémarrage à chaud dans un délai de l’ordre de la minute Jusqu’à 50 instances Jusqu’à 8 nœuds (Windows Server 2003 x86) ou 4 nœuds en (Win IA-64 ou x64) Tous les services sont compatibles–cluster: SQL Server Agent, Analysis Services, Full-Text Search Une seule installation globale Adresse Serveur Virtuel Stockage partagé 2005 Attention 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
16
Base de Données Miroir (« Database Mirroring ») 1/2
Nouveau SS 2005 Base de Données Miroir (« Database Mirroring ») 1/2 Témoin Application commit Miroir Principal SQL Server SQL Server Le miroir est toujours en train de rejouer les journaux Journaux Données Journaux Données
17
Base de Données Miroir (« Database Mirroring ») 2/2
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 : Impact à évaluer sur les performances en fonction du débit transactionnel sur le site primaire -> Mode asynchrone possible Témoin Utilisation de cette architecture : Tous les environnements où une disponibilité maximale est requise sur des données critiques
18
Cliché BD (“DB Snapshot”) Comment ça marche ?
Nouveau SS 2005 Cliché BD (“DB Snapshot”) Comment ça marche ? CREATE DATABASE MonSnap AS SNAPSHOT OF MaBase USE MaBase UPDATE (pages 4, 9, 10) MaBase Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 4’ 5 6 7 8 9’ 9 10’ 10 11 12 13 14 15 16 USE MonSnap SELECT (pages 4, 6, 9, 10, 14) MonSnap – Cliché en lecture simple Si nécessaire : RESTORE DATABASE MaBase FROM SNAPSHOT MonSnap
19
Votre solution est dans la combinaison de ces techniques…
Nouveau SS 2005 Votre solution est dans la combinaison de ces techniques… Miroir Principal Clients OLTP Cliché Témoin Client de Reporting Ex.: Miroir de base de données + Cliché
20
Opérations en ligne
21
Il n’est plus nécessaire de s’arrêter pour…
La maintenance des indexes « Online » Create, Rebuild, Reorganize, Drop, Add et drop constraint Opérations complètement parallèles La restauration de pages et de fichiers La base reste accessible Seule les données en cours de restauration sont inaccessibles. On peut toujours les faire « Offline »
22
Exemple de création d’index en ligne
Nouveau SS 2005 Exemple de création d’index en ligne Cré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 (était DBCC DBREINDEX) ALTER INDEX myidx ON mytab REBUILD WITH ( ONLINE = ON, MAXDOP = 4 )
23
Nouveau SS 2005 Sauvegarde améliorée Possibilité 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 BD Une sauvegarde différentielle faite après un « copy-only backup » ne l’utilisera pas comme référence Svg 1 Svg 2 Copy-Only Backups Permet 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 BACKUP DATABASE <dbname> WITH COPY_ONLY
24
Améliorations des restaurations
Nouveau SS 2005 Améliorations des restaurations Amélioration dans la détection d’erreurs En 2000, ALTER DATABASE <db_name> SET PAGE_VERIFY TORN_PAGE_DETECTION ALTER DATABASE <db_name> SET PAGE_VERIFY CHECKSUM RESTORE VERIFY_ONLY STOP_ON_ERROR et CONTINUE_AFTER_ERROR Restauration partielle (groupe de fichiers) Existe depuis SQL Serveur 2000, mais avec SQL Serveur 2005 la base reste accessible pendant la restauration tant que l’on accède pas au fichier en question Restauration de pages Restaurer d’un page unique depuis une sauvegarde A n’utiliser qu’avec beaucoup de précaution et l’aval du support Microsoft!
25
Administration Vues dynamiques (sys.dm_*)
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 … Nouveautés 2005 clause ATTACH_REBUILD_LOG permet de rattacher une base sans avoir tous les fichiers journaux procédure sp_create_plan_guide permet d’optimiser des requêtes sans modifier le texte de la requête directement (cas d’une application dont on ne peut/veut modifier le source) Paramètre AUTO_UPDATE_STATISTICS_ASYNC permet de recalculer les statistiques de manière asynchrone, sans pénaliser les requêtes
26
Partitionner ? Quoi? Pourquoi? Comment? Données Non Partitionnées
A, B, C, D, E, F, G, H, I, J, K, L Données Non Partitionnées A, B, C D, E, F G, H, I J, K, L Données Partitionnées Quoi? Partitionnement de tables, d’indexes, vues indexées Pourquoi? Grosses tables Ajout/suppression facile de grandes quantités de données (Archivage) Backup/Restore par groupe de fichiers Mieux utiliser des opérateurs parallèles sur des machines avec beaucoup de CPU (16, 32, …) Concurrence d’accès (Lock Escalation) Comment? Partitionnement d’enregistrement (horizontal)
27
3 étapes A chaque ligne correspond une partition grâce à la « partition function » CREATE PARTITION FUNCTION Part_Fon (int) as RANGE RIGHT FOR VALUES (10, 20, 30) A chaque partition correspond un emplacement physique (Filegroup) grâce au « partition scheme » CREATE PARTITION SCHEME Part_Sche AS PARTITION Part_Fon TO ([Filegroup1], [Filegroup2], [Filegroup3], [Filegroup4]) CREATE TABLE Employees (EmpId int, EmpName varchar(50)) ON Part_Sche (EmpId); Un index utilisant une fonction et une clef de partitionnement similaire à la table est dit « aligné » best practise
28
Tables & Index partitionnés
La clé de partitionnement doit correspondre à une seule colonne Les tables et les index sont créés sur le schéma de partition (au lieu des Filegroups) Le partitionnement est transparent pour les requêtes Des tables et index différents peuvent partager des fonctions et de schémas de partitionnement La création de tables et d’index directement sur les filegroups est bien sûr toujours possible Table ou Index Partition Schéma Fonction 1 n
29
Comment ajouter ou supprimer des partitions?
Permet de traiter le cas typique d’ajout et/ou de suppression d’une partition entière Réalisé à l’aide de 3 opérations simples sur les partitions : Split sépare 1 partition en 2 Merge réunit 2 partitions en 1 Switch échange 1 table et une partition ALTER PARTITION FUNCTION annual_range() SPLIT RANGE (‘ ’) ALTER TABLE B SWITCH TO A PARTITION 2
30
Réplications Un schéma à 3 niveaux :
1 émetteur (publisher) 1 distributeur (distributor) N receveurs (subscribers) 1 distributeur peut gérer plusieurs émetteurs 1 receveur peut recevoir des données de plusieurs émetteurs et les republier à son tour Tous les types de réplications permettent les 2 modes : l’émetteur propage les modifications (push) Les receveurs demandent les modifications (pull) Modifications possibles sur le receveur (« peer to peer ») Réplication des changements de schémas Nombreuses optimisations de performances Reprise des échanges arrêtés, sans réémission complète des données Réplication Fusion sur HTTPS (idéale pour la réplication vers les mobiles) Si la même instance est utilisée comme émetteur et distributeur, on parle de distributeur local. Sinon on parle de distributeur distant 2005 2005
31
Solutions de réplication
Quoi ? Quand ? Résolution des conflits Utilisations standards Cliché Snapshot Copie des objets à un instant t Périodiquement N/A Initialisation; Données faiblement modifiées Transactionnelle Les transactions Au fil de l’eau Par transaction Serveur à serveur Peu d’écarts entre les sites Fusion Merge Les données modifiées entre deux instants Ligne par ligne Multiples receveurs Mise à jour asynchrones D’égal à égal Peer to peer 40% de pages en moins dans le Wizard de Publication 2005
32
Réplication Transactionnelle: Replication Peer-to-Peer
“Ouest” “Nord” Logreader Agent Logreader Agent Dist DB Dist DB “Sud” Distribution Agent Distribution Agent Logreader Agent Standard transactional replication assumes read-only Subscribers and is hierarchical in structure: typically a single Publisher publishes data to one or more Subscribers. Standard transactional replication also supports a republishing hierarchy: updates are delivered from a Publisher to a set of republishing Subscribers, who in turn deliver updates to a final set of leaf-node Subscribers. Updating subscriptions offer the ability for Subscribers to push changes back to the Publisher, but the arrangement is still hierarchical because changes follow the hierarchical structure when moving between Subscribers and Publishers. In contrast to read-only transactional replication and transactional replication with updating subscriptions, the relationships between nodes in a peer-to-peer replication topology are peer relationships rather than hierarchical ones, with each node containing identical schema and data. Dist DB Distribution Agent
33
Réplication depuis Oracle Réplication Transactionnelle
Une base Oracle en tant qu’émetteur v8+, Unix , Linux, Windows Administration depuis SQL Server Aucun logiciel ne doit être installé sur la base Oracle Utilise pleinement les fonctions de Réplication de SQL Server Réplication Transactionnelle et par Snapshot L’inverse est également possible (déjà disponible en 2000) Matt SQL Server Distributeur Abonnés
34
Administration Nouveautés pour la sécurité
SQL Server Surface Area Configuration Séparation utilisateur - schéma Nouveautés 2005
35
Désactivé par défaut SQL Server Surface Area Configuration
36
Séparation Utilisateur-Schéma
Chaque schéma est possédé par un rôle ou un utilisateur Chaque utilisateur possède un schéma par défaut pour la résolution des noms Les objets BD appartiennent à un schéma La création d’un objet dans un schéma nécessite les droits CREATE TABLE et La possession du schéma ou ALTER ou CONTROL Base Utilisateur 1 Rôle 2 Rôle1 A comme défaut possède possède possède Schéma1 Schéma2 Schéma3 SP1 F1 Tab1
37
Le problème… Résolution des noms
Table Vue Procédure Fonction Utilisateur 2 Objet SGBD Possédé par Utilisateur 1 Résolution des noms Select * from Foo Utilisateur.foo Dbo.foo Supprimer un utilisateur pouvait nécessiter de modifier l’application !
38
La solution… Table Vue Procédure Fonction User 2 Possédé par Objet SGBD Possédé par Appartient à Possédé par Schéma User Supprimer un utilisateur NE nécessite PLUS de modifier l’application
39
Résolution de nom Résolution du nom Schéma par défaut S1. foo Dbo.foo
Table Vue Procédure Fonction User 2 Possédé par Appartient à Schéma Résolution du nom Select * from foo S1. foo Dbo.foo Schéma par défaut Utilisateur 1 Utilisateur 2 Schéma par défaut S1 Utilisateur 3
40
SQL Server 2005 pour les développeurs
41
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 Applications distribuées ou asynchrones Intégration de Web services Nouveau service distribuée : Service Broker Notification Services (requêtes asynchrones)
42
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 Nouveautés 2005
43
Le choix dans le stockage des données
Accès par calcul et par .Net T-SQL CLR XML Faire le bon choix dans le stockage et la méthode d’accès aux données. La seule règle d’or : le bon sens ! Critère : format des données en entrée et en sortie les opérations à effectuer dessus Accès semi-structuré Accès relationnel
44
Assembly: “TaxLib.dll”
Intégration .NET construire Assembly: “TaxLib.dll” Microsoft® Visual Studio® .NET Project déployer SQL Data Definition: create assembly … create function … create procedure … create trigger … create type … CLR hébergée dans SQL Server SQL Queries: select sum(tax(sal,state) ) from Emp where county = ‘King’ Microsoft® SQL Server™
45
La CLR 2.0 est hébergée Windows SQL OS SQL Engine CLR 2.0
46
SQL Server et .NET Framework 2.0
Environnement de programmation pour Functions Stored Procedures Triggers User Defined Types Aggregates Sécurité Intégration de la sécurité SQL Server et CLR Trois niveaux de sécurité Safe, External-Access (verifiable), Unsafe
47
Quelle technologie utiliser ?
T-SQL Langages CLR User Defined Functions X Stored Procedures Triggers User-Defined Types Aggregates
48
Sécurité CLR : Permission Sets
SAFE Aucun accès aux ressources externes à SQL Server Aucun appel à du code non managé (Win32, COM…) Doit-être « verifiable » EXTERNAL_ACCESS SAFE + accès à certaines ressources externes (Fichier, Network…) Accès aux ressources externes uniquement via des classes .NET SQL Server 2005 change le contexte d’exécution du code Doit-être « verifiable » UNSAFE Peut appeler du code non managé, peut-être « un-verifiable » LE CODE PEUT TOUT FAIRE – DECONSEILLE !!!!
49
Nouveautés Transact-SQL 2005
Instructions DDL (Data Définition Language) Varchar(max), nvarchar(max), varbinary(max), xml Déclencheurs sur les instructions DDL (DDL Triggers) Instructions DML (Data Manipulation Language) Gestion des Exceptions (Try/Catch) Instructions CTE (Common Table Expression) Opérateur Pivot Fonctions de Classement TOP La Clause Output Mode de Verrouillage (Snapshot Isolation)
50
Définition des données (DDL)
Nouveaux types de données Varchar(max), nvarchar(max), varbinary(max), xml Déclencheurs sur les instructions DDL (DDL Triggers) Gestion des contraintes d’intégrité référentielles Gestion des identifiants/utilisateurs Create login Create user
51
Types de Données Les Types Image et Text ont des limitations
DML Type de Données Types de données Déclencheurs sur les instructions DDL Gestion des contraintes d’intégrité référentielle 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 varchar(max)) RETURNS varchar(max) AS BEGIN -- supporte la concatenation + '12345' END
52
Déclencheurs (Triggers) sur les instructions DDL
DML Déclencheurs sur les instructions DDL Types de données Déclencheurs sur les instructions DDL Gestion des contraintes d’intégrité référentielle 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, DROP_TABLE AS BEGIN INSERT INTO dbo.tblSchemaChangeLog SELECT CONVERT(nvarchar(max), EventData()) END
53
Gestion des Contraintes d’intégrité référentielle
DML Gestion des Contraintes RI Types de données Déclencheurs sur les instructions DDL Gestion des contraintes d’intégrité référentielle 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 SET DEFAULT )
54
Manipulation des données (DML)
Gestion des exceptions Try/catch Common Tables Expression Récursivité Nouveaux Opérateurs Pivot, Unpivot, Apply Fonctions de classement Row_number, Rank, Dense_rank, Ntile, TOP Nouveau Mode de Verrouillage Snapshot Isolation Output Clause Fulltext Search Autres
55
Gestion des Exceptions
DML Gestion des Exceptions Gestion des exceptions Common Table Expression Nouveaux Opérateurs Fonctions de classement Mode de Verrouillage Output Clause Fulltext Search Autres Bloc Try/catch Nouvelles fonctions de gestion des erreurs ERROR_NUMBER() ERROR_SEVERITY() ERROR_STATE() ERROR_MESSAGE() XACT_STATE() -- Exemple BEGIN TRY SELECT * FROM authors END TRY BEGIN CATCH -- Test tx state IF (XACT_STATE()) = -1 ROLLBACK TRANSACTION IF (XACT_STATE()) = 1 COMMIT TRANSACTION END CATCH GO
56
Common Table Expression (CTE)
DML Common Table Expression Gestion des exceptions Common Table Expression Nouveaux Opérateurs Fonctions de classement Mode de Verrouillage Output Clause Fulltext Search Autres Définition : Un jeu de résultats temporaire, qui dérive d’une requête simple de type : Select, Insert, Update ou Delete. Exemple : USE AdventureWorks ; GO WITH DirReps(ManagerID, DirectReports) AS ( SELECT ManagerID, COUNT(*) FROM HumanResources.Employee AS e WHERE ManagerID IS NOT NULL GROUP BY ManagerID ) SELECT * FROM DirReps ORDER BY ManagerID
57
Nouveaux Opérateurs DML Nouveaux Opérateurs Tableaux Dynamiques
Gestion des exceptions Common Table Expression Nouveaux Opérateurs Fonctions de classement Mode de Verrouillage Output Clause Fulltext Search Autres PIVOT UNPIVOT Apply Exemple: Id PropName PropVal 1 Name xxx.doc CrDate 12/3/2001 2 yyy.xls Author V.Hugo Brand Year Sales Ms 1990 2000 Other 500 1991 3000 600 SELECT * FROM table PIVOT(MIN(PropVal) FOR PropName IN ([Name],[Author]) ) t SELECT * FROM table PIVOT(SUM(Sales) FOR Year IN ([1990], [1991]) ) t Id Name Author 1 xxx.doc NULL 2 yyy.xls V.Hugo Brand 1990 1991 Ms 2000 3000 Other 500 600
58
Fonctions de classement avec SQL Server 2005
DML Fonctions de classement Gestion des exceptions Common Table Expression Nouveaux Opérateurs Fonctions de classement Mode de Verrouillage Output Clause Fulltext Search Autres Fonctions de classement: RANK() NTILE(<expression>) <ranking_function> OVER( [PARTITION BY <column>] ORDER BY <column>) DENSE_RANK() ROW_NUMBER() Exemple: 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 Athlete Time Rank Dense_Rank NTile_3 Joe 10 1 Bob 10.5 2 Mark Will 10.6 4 3 John 11.0 5
59
Nouveau Mode de Verrouillage avec SQL Server 2005
DML Mode de Verrouillage Gestion des exceptions Common Table Expression Nouveaux Opérateurs Fonctions de classement Mode de Verrouillage Output Clause Fulltext Search Autres Transaction level ‘Snapshot Isolation’ Garanti l’intégrité Transactionnelle (ACID) Les Lecteurs ne posent pas de verrou Déclaration Set Transaction Isolation level Snapshot Alter database mydatabase set allow_snapshot_isolation on Transaction 1 BEGIN TRAN UPDATE t SET c2 = WHERE c1 =1 COMMIT TRAN 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 = SQL Server returns 5 COMMIT TRAN SELECT c2 FROM t1 WHERE c1 = SQL Server returns 9
60
Snapshot Isolation Example
CREATE TABLE t1 (c1 int unique, c2 int) INSERT INTO t1 VALUES (1, 5) Transaction 1 BEGIN TRAN UPDATE t1 SET c2 = 9 WHERE c1 =1 COMMIT TRAN Transaction 2 (Snapshot Isolation) SET TRANSACTION ISOLATION LEVEL SNAPSHOT BEGIN TRAN SELECT c2 FROM t1 WHERE c1 = SQL Server returns 5 SELECT c2 FROM t1 WHERE c1 = SQL Server returns 5 COMMIT TRAN SELECT c2 FROM t1 WHERE c1 = SQL Server returns 9 Transaction 3 (RCSI) BEGIN TRAN SELECT c2 FROM t1 WHERE c1 = SQL Server returns 5 SELECT c2 FROM t1 WHERE c1 = SQL Server returns 9 COMMIT TRAN SELECT c2 FROM t1 WHERE c1 = SQL Server returns 9 Time
61
DML Avec des Résultats (OUTPUT Clause)
Gestion des exceptions Common Table Expression Nouveaux Opérateurs Fonctions de classement Mode de Verrouillage Output Clause Fulltext Search Autres 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 Orders SET status=’processed’ OUTPUT DELETED.*, INSERTED.* WHERE status=‘unprocessed’ DELETE Sales.ShoppingCartItem OUTPUT DELETED.*
62
Fulltext Search DML Fulltext Search Gestion des exceptions
Common Table Expression Nouveaux Opérateurs Fonctions de classement Mode de Verrouillage Output Clause Fulltext Search Autres 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
63
Autres DML Autres Gestion des exceptions Common Table Expression
Nouveaux Opérateurs Fonctions de classement Mode de Verrouillage Output Clause Fulltext Search 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 TOP Instruction TOP accessible depuis les ordres Insert/Update/Delete Utilisation d’une variable dans l’instruction TOP Exemple as int = 10 Select * from HumanResources.Employee Requêtes Distribuées EXECUTE ('CREATE TABLE SalesTbl (SalesID int, SalesName varchar(10));', 'SalesData') AT ServeurParis; Tablesample
64
Nouveautés XML SQL Server 2005
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>') Nouveau type de donnée natif XML Gestion des schémas optionnelle Indexation des colonnes de type XML Manipulation du XML Support de Xquery 1.0 Améliorations For XML OpenXML CREATE XML SCHEMA COLLECTION ResumeSchemaCollection as N’<xsd:schema>...</xsd:schema>’ SELECT ItemList.query(' <Items> { for $i in /Items/Item return <Quantity> </Quantity> } </Items>') from Invoices
65
La Productivité des Développeurs
Applications distribuées ou asynchrones Intégration de Web services Nouveau service distribuée : Service Broker Notification Services (requêtes asynchrones) Nouveautés 2005
66
Gestion des Web Services
Configuration Sécurité WSDL Accès depuis une application tierce WSDL HTTP.sys SQL Server HTTP Endpoint
67
SQL Service Broker SQL Engine SQL Engine APP 1 APP 2 Services et environnement de programmation pour construire des applications réparties fiables asynchrones Apporte une nouvelle infrastructure de communications Dialogues (conversations) bidirectionnelles Livraison fiable vers des queues locales et distantes Exactement une livraison Pas besoin du commit à 2 phases du DTC Préserve l’ordre des messages, même dans des tx séparées Messages volumineux jusqu’à 2 GB – fragmentés Pas de dépendance sur MSMQ The key thing that differentiates the Service Broker from other queuing solutions is that it is built into the database. This has a number of implications: One programming model T-SQL like syntax Common Language Support The messaging part of an application and the data part of an application use the same language and tools in a Service Broker application. This leverages the developer’s familiarity with ADO and other database programming techniques for message-based programming. With the Common Language Runtime stored procedures available in Yukon, stored procedures that implement a Service Broker service can be written in a variety of languages and still take advantage of the common administration benefits of Service Broker. Queues are first class database objects so all the manipulation and management features that other database objects have – DDL, DML, views, extended properties, Meta Data, events, etc. are also available on queues. New DML and DDL statements have been added to TSQL to support messaging and queuing. These statements are parsed and optimize by the same logic as other TSQL statements. The same API’s and tools that you use for database programming (ADO, OLEDB, ADO.Net, etc) are used for messaging and queuing operations. A single connection to the database handles both database and messaging operations. Because messaging and other database operations share the same database connection, transactional messaging doesn’t require two-phase commit. This improves performance and reduces the complexity of transactional messaging. Activation One issue many messaging applications have is that it is difficult to keep the correct number of queue readers running to handle the current message load. The Service Broker has a hook in the transaction commit logic that detects a message being inserted into a queue and if activation is configured on the queue, it will ensure that a queue reader is running to receive the message that just was placed on the queue. Simple backup, recovery and admin Because your message store and you application data store is the same database, you can manage and maintain them together – one backup ensures that both are backed up and always in sync. Supports failover clustering and mirroring!!! service broker is part of the engine, not a separate install, and not a separate service to manage.
68
Architecture Service Broker
Niveau applicatif Application Cible Application Initiatrice Message Type Niveau logique Message Type Contract Contract Dialog Conversation Service Service Niveau physique Queue Queue TCP/IP Transport Transport Endpoint Endpoint
69
Fragmentation des messages
SQL 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 arrivent au service destinataire Le service destinataire reçoit ces gros messages comme s’il était d’un seul tenant Cette caractéristique permet de faire passer d’autres messages sans les bloquer La taille maximale est varbinary(MAX) – 2 GB
70
Exemple d’utilisation de DML pour SSB
Begin Transaction; BEGIN FROM SERVICE [CustomerSvc] TO SERVICE ‘TravelSvc‘ ON CONTRACT [BookTravel]; SEND ON MESSAGE TYPE [ReservationRequest] Commit Transaction; WAITFOR (RECEIVE * from [CustomerSvcQueue]), TIMEOUT 5000 ; END Begin Transaction; LOOP UNTIL EMPTY QUEUE WAITFOR ( RECEIVE @hConv=conversation_handle, @msgbody=message_body FROM [TravelServiceQueue]), TIMEOUT 5000; SEND ON MESSAGE TYPE [ReservationResponse] END END-LOOP Commit Transaction;
71
Nouveaux ordres Nouveautés DDL Nouveautés DML CREATE MESSAGE TYPE
CREATE CONTRACT CREATE QUEUE CREATE SERVICE ALTER SERVICE ALTER MESSAGE TYPE ALTER QUEUE ALTER CONTRACT DROP MESSAGE TYPE DROP CONTRACT DROP QUEUE DROP SERVICE CREATE ROUTE ALTER ROUTE DROP ROUTE BEGIN DIALOG CONVERSATION END CONVERSATION MOVE CONVERSATION GET SERVICE INSTANCE RECEIVE SEND BEGIN DIALOG TIMER
72
Notifications Services : Evènements, abonnements et notifications
Les évènements sont des enregistrements dans une table. Subscriptions StockSymbol MSFT Trigger 40 SubscriberId Les abonnements sont aussi des enregistrements dans une table. Effectuer une jointure permet de produire des résultats (notifications) - à intervalles réguliers - à des moments précis - de complexité arbitraire Sur 3 canaux : HTTP, SMTP et fichier
73
Fonctionnement d’une application de SQL NS
Abonnés Souscriptions (millions) Sources d’Infor-mation Abonnés: ordinateurs, navigateurs, téléphones, messagers… Evène-ments Générateur Notifications (millions) Notification Applications work as follows: - The “subscriber” registers a “subscription” with the Notification Application. - The Notification Application monitors a flow of “events” that arise from some external activity. - The Notification Application “matches” the incoming events against the subscriptions and generates a “Notification” whenever a match occurs. - The notifications are formatted and sent to the user anywhere, anytime, on any device. - Notification applications may need to support millions of subscriptions, hundreds of thousands of events, and millions of notifications. Any push application has the following components: 1) Users record subscriptions – these are requests to be notified when certain events and situations occur (eg. Alert me if my wife calls, stock change)
74
En pratique: fichiers XML et code à écrire
Les fichiers XML suivants définissent ce qu’est une application et une instance SQL NS XSLT Content Formatter XSD XML Event Files XSLT Content Formatter XSD XML Event Files Application Definition File Application Definition File Instance Configuration File // Test de SQL NS: création de l’instance, des abonnés et des abonnements using Microsoft.SqlServer.NotificationServices; // Création de l’objet NSInstance string instanceName = “Localisation”; NSInstance myInstance = new NSInstance(instanceName); // Création de l’objet Subscriber Subscriber mySubscriber = new Subscriber(myInstance); // Ajout d’un abonné mySubscriber.SubscriberId = mySubscriber.Add(); Code .Net à écrire // Managed Code Content Providers using System; using System.Configuration;
75
SQL Server 2005 pour les analystes décisionnels
76
Intégrer Restituer Analyser Business Intelligence
Acquisition et intégration de données de système sources Transformation et agrégation de données Enrichissement des données avec la logique d’entreprise Exploration de l’information avec les outils de data mining Présentation et distribution des données Accès aux données pour tous
77
Intégrer Business Intelligence
Acquisition et intégration de données de système sources Transformation et agrégation de données
78
Business Intelligence : Integration Services
ETL d’entreprise Module entièrement nouveau Haute performance et évolutivité Meilleur Design Environnement de développement Gestion des versions Analyse pas à pas visuelle du flux et des données Nombreuses transformations natives Extensible Tâches personnalisées Transformations personnalisées Sources de données personnalisées
79
Nouvelles contraintes techniques adressées
Disparition de la fenêtre batch Capture des données en amont des application traditionnelles (RFID, ClickWeb, RSS…) De plus en plus de sources SGBD, fichiers plats XML, SAP, Web Services, RSS, … Et autant de cibles Structurée, semi structurée, non structurée Des volumes toujours plus grands Au-delà de l’alimentation d’un entrepôt: prise en compte de nouvelles destinations.
80
Exemple: SANS Integration Services
Alertes & escalades Data mining Centre d’appel : données semi structurées Gros systèmes : fichiers binaires Base de donées : données relationnelles Codage spécifique Stockage intermédiaire Text Mining ETL Nettoyage & ETL Stockage intermédiaire ETL Warehouse Rapports Mobile 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
81
Exemple: AVEC Integration Services
Alertes & escalades Warehouse Rapports Mobile SQL Server Integration Services Traitement Du texte Source spécifique Sources standards Nettoyage des données Fusions Data mining Centre d’appel : données semi structurées Gros systèmes : fichiers binaires Base de donées : données relationnelles 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
82
Les composants de SSIS Control Flow Data Flow FTP Send Mail
Flat File Source Oracle ADO.NET Source Send Mail Merge Loop Execute SQL De-duplicate Split Data Flow SQL Server Flat File 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 Et chargées dans des destinations multiples et hétérogènes . Elles peuvent alors être nettoyées … Qui a son propre modèle dédié au déplacement et à la transformation de données. Le Control flow peut comprendre différents types de tâches Les données peuvent ensuite être partitionnées et séparées… Le Control flow permet de définir un enchainement de taches complexe. Groupes en boucles, séquences… et reliées par des contraintes. Le Data Flow est une tâche spéciale …
83
Les composants de SSIS Le Control flow permet de définir un enchainement de taches complexe. Groupées en boucles, séquences… et reliées par des contraintes. Le Control flow peut comprendre différents types de tâches 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ée, provenant de sources variées, peuvent être fusionnées dans un flot unique Elles peuvent alors être nettoyées … Les données peuvent ensuite être partitionnées et séparées… Et chargées dans des destinations multiples et hétérogènes .
84
Performances 3 fois plus rapide en 64 bits qu’en 32
64-bit vs. 32-bit parallel Lookups Performance (Six lookups with 100M Dim rows with fast parse enabled) 20 67 25 50 75 100 Platform Type Execution Times (minutes) 64-bit 16 CPU, 32-bit 16 CPU Note: Fréquence 3 GHz et fréquence 1.5 GHz
85
Intégrer Analyser Business Intelligence
Acquisition et intégration de données de système sources Transformation et agrégation de données Enrichissement des données avec la logique d’entreprise Exploration de l’information avec les outils de data mining
86
Business Intelligence : Analysis Services
Unified Dimensional Model Réunion du monde relationnel et décisionnel Pro-active caching Business Intelligence Avancée Indicateurs Clés de Performances Scripts Multi langue
87
Analyses Services Composant OLAP de SQL Server 2005
Propose une vue multidimensionnelle et intuitive des données Permet d’associer une vue métier aux données Calcul d’agrégations permettant une récupération rapide des données
88
Analyses Services Au niveau du serveur :
Gestion, administration des cubes multidimensionnels Optimise le stockage des cubes (cellules vides, agrégations) Optimise les agrégations pour fournir une réponse rapide Nouveau modèle UDM (Unified Dimensionnal Model) Intègre un module de création d’indicateurs clés et de data mining Intègre les PivotTable services pour les applications de création de tableaux et graphiques croisés dynamiques Nombreux assistants
89
Analyses Services Au niveau du client :
Supporte les connexions des différents clients aux données multidimensionnelles Génération de rapports à partir de données multidimensionnelles Support natif des clients XML/A
90
Améliorations depuis Analysis Services 2000
DSV, Data Source Views Intellicube pour la construction des cubes Évolutions dans les dimensions Notion de perspective pour les cubes Gestion d’indicateurs clés Data mining amélioré Intégration de SQL Profiler Possibilité de multi instances avec SSAS SSAS est « clusterisable » Scripts MDX…
91
Unified Dimensional Model
UDM Accès OLAP Reporting XML/A ou ODBO Data Warehouse Cache KPI Data mining Analysis Services Source de données Clients
92
Proactive Caching – Basic Operation
Analysis Services Update XML/A or ODBO UDM Update Notification SQL Query MDX New Version Cache
93
Proactive Caching – Basic Operation
Analysis Services XML/A or ODBO UDM SQL Query MDX New Version Cache
94
Indicateurs clés (KPI)
Caractéristiques des cubes, calculés coté serveur et gérés par SSAS Définition de valeurs clés Les composants d’un KPI : Valeur, but, état, tendance Création des KPI depuis BI Development Studio API d’accès aux KPI Étapes pour la création de KPI : Choix de la valeur à mesurer Cible/objectif pour cette valeur Statut de la valeur par rapport à l’objectif Évaluation de la tendance
95
Data Mining – Points clés
7 algorithmes proposés : Decision trees, Navie Bayes, Neural network, Clustering, Time Series, Sequence Clustering, Association Développement d’un projet de Data mining : Au travers de BI Development Studio Assistant pour la définition d’un modèle de mining Editeur de modèle de mining Intégration avec SSIS
96
Intégrer Restituer Analyser Business Intelligence
Acquisition et intégration de données de système sources Transformation et agrégation de données Enrichissement des données avec la logique d’entreprise Exploration de l’information avec les outils de data mining Présentation et distribution des données Accès aux données pour tous
97
Business Intelligence : Reporting Services
Introduit avec SQL Server 2000 Solution de Rapports d’entreprise Création, Gestion, Diffusion de rapports Intégration à Office Nouveautés SQL Server 2005 Intégration avec Analysis Services Nouvelles interactions utilisateur Créateur de rapports pour utilisateurs finaux
98
Évolutions avec SQL Server 2005
Report Builder, outil utilisateur final Évolution des Contrôles Tri interactif Paramètres multi valués Sélecteur de date Intégration à Management Studio Générateur de requêtes MDX Custom Report Item Floating headers Impression depuis IE (SP2) Web Parts (SP2) Support du 64 bit Support de Multi-instance Évolution de l’éditeur d’expression
99
Interrogation des données
Architecture Navigateur Administration Application Report Builder Data Sources (SQL, OLE DB, ODBC, Oracle, Custom) URL WMI Web Service Formats (HTML, Excel, PDF, Autre) Report Server Report Processing Interrogation des données Formatage Securité Exportation SQL Server Catalog Services Sécurité (NT, Passeport, Autre) Cibles (Courrier, Fichier, Autre)
100
Scénarios d’utilisation
Rapports Internes Rapports “Maison” (Vente, Finance, DRH) Administrable, portail et intégration aux solutions d’entreprise Rapports embarqués Afficher des rapports dans n’importe quelle application d’entreprise (ERP, CRM) ou analytique Architecture extensible et flexible Rapports Collaboratif B2B, B2C, Echanges inter ou intra entreprise … Rapports Externes Publier des rapports via extranets, Internet Isolation de données, sécurité extensible
101
Migration
102
Upgrade Advisor Report
Avant de migrer… Prêt Upgrade Advisor Upgrade Advisor Report Mise à niveau Après la mise à niveau
103
Migration ou Mise à niveau
Avant Après Mise à niveau Migration SQL Server 7.0/2000 SQL Server 2005 Mise à niveau SQL Server 7.0/2000 SQL Server 7.0/2000 Migration SQL Server 2005
104
Migration Avantages Inconvénients
Fournit un contrôle plus fin sur les opérations Permet d’avoir l’ancienne et la nouvelle version côte à côte pour des tests et des vérifications L’instance de production reste disponible pendant la migration Possible avec des technologies de basculement Inconvénients Peut nécessiter des ressources matérielles supplémentaires Les applications doivent être redirigées vers une nouvelle instance
105
Mise à niveau Avantages Inconvénients
Plus simple et rapide pour les petits systèmes Ne nécessite pas de matériel supplémentaire Les applications pointent sur la même instance Inconvénients Moins de possibilité de contrôle L’instance reste inacessible pendant la mise à niveau Ce n’est pas la recommandation pour tous les composents : Il est recommandé de migrer les cubes Analysis Services
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.