SlideShare une entreprise Scribd logo
Azure Camp spécial SQL Azure
         14/12/2011
La communauté Azure

Le site www.zecloud.fr
Les Azure Camps
http://Zecloud.codeplex.com Tout le code source produit lors
des Azure Camps en licence MS-PL
L’azure user group :
www.azureusergroup.com/group/frenchusergroup
Twitter ZeCloud twitter.com/zecloud
Et page Facebook ZeCloud Devenez Fan !!
Programme


- Présentation de la communauté Azure
- Introduction
- Pattern d'implémentation
- Performance & Throttling
- Montée en Charge & Fédération
- Questions Réponses
- Code
Performance et Montée En
  Charge avec SQL Azure
          Hervé Roggero
          MVP SQL Azure
       Blue Syntax Consulting
A mon sujet


Comment me contacter
  Twitter: @hroggero
  E-mail: hroggero@bluesyntax.net
  Website: www.bluesyntax.net
Contributions
  Blue Syntax Consulting
  PRO SQL Azure (APress)
  Trainings Azure (Wednesday)
  Consulting Azure
  President du Azure Florida Association (linked-in)
Floride…
Sql azure   performance et montee en charge (1)
Agenda


Performance
  Considérations
  Pertes de connexion et mécanismes de limitation

Montée en Charge
  Sharding
  Fédération
  Projet open source: Enzo
Performance
Considérations


Regroupement de Connexions
Logique de perte de connexion
Cache
Entity Framework (lazy loading)
Chatty vs. Chunky (bavard vs massif) [mais je laisserais
les termes technique en anglais]
Topologie
Raisons de perte de connexion


 Serrures excessives (1 million de serrures)
 Transactions non commises (<20% du log file)
 Transactions bloquant le système (max: 20 secondes)
 Taille du log file (1Go par transaction)
 Utilisation de TempDB (5Go par session)
 Utilisation mémoire (>16Mb pendant 20+ secondes)
 Taille de la base de donnée
 Connexions inactives (30 minutes)
Raisons de perte de connexion (2)


  Durée d’une transaction (24 heures)
  DoS (éviter les attaques avec le pare-feu)
  Problèmes avec le réseau
  Problèmes avec la répartition des charges
  Autres raisons (CPU, I/O…)
Mécanisme de Limitation
          (throttling)


Erreurs de connexion
  40501 : le service est actuellement occupé. Réessayez la demande
  après 10 secondes. ID de l'incident : %ls. Code : %d.

  40544 : la base de données a atteint son quota de taille. Partitionnez
  ou supprimez des données, supprimez des index ou consultez la
  documentation afin de rechercher des solutions possibles. ID de
  l'incident : %ls. Code : %d.

  40545 : le service rencontre un problème actuellement en cours
  d'analyse. ID de l'incident : %ls. Code : %d
Décodage des codes de raison




                                                                                                 131075 modulo 4 = 3




http://msdn.microsoft.com/fr-fr/library/4cff491e-9359-4454-bd7c-fb72c4c452ca#bkmk_throt_errors
Modes de Limitation


Code du      Description           Types d’instructions   Instructions qui peuvent
mode de                            rejetees               etre traitees
limitation
0            Aucune limitation     Aucune                 Toutes
1            Rejeter les mises a   INSERT, UPDATE,        DELETE, DROP TABLE &
             jour (insert)         CREATE TABLE &         INDEX, TRUNCATE
                                   INDEX
2            Rejeter toutes les    INSERT, UPDATE,        SELECT
             ecritures             DELETE, CREATE,
                                   DROP
3            Rejeter tout          Toutes                 Aucune
Traiter les Pertes de Connexion

           Réduction Exponentielle; peut s’appliquer aux
           charges




http://geekswithblogs.net/hroggero/archive/2011/05/26/cloud-lesson-learned-exponential-backoff.aspx
Traiter Les Erreurs Temporaires


           Transient Condition Handling Framework




http://windowsazurecat.com/2010/10/best-practices-for-handling-transient-conditions-in-sql-azure-client-applications/
Exemple: Backup pour SQL Azure


 Algorithme adapte
 pour rester sous la                                    Connexion
 courbe de             En parallele
                                        Prepare les
 limitation de SQL                    commandes SQL
 Azure                                                  Connexion

 Code d’adaptation                    Ouvre connexion
 represente 30% du
 code backup           En parallele    Execute une       Charges

                                      commande SQL
                                                        Connexion
                                      Sauve donnees
                                        dans fichier
Exemple: Copier des donnees


X: Size du batch; Y: Temps d’Execution
Montée en charge
Sharding


Distribution des données
  Horizontalement
  Verticalement
Ressources non-partagées
Différent modèles
Objectif de la montée en charge:

   Expérience du client #1 est la même que celle du client #1000
Shard Linéaire
                       (linear)


Une base de donnée par client
Embarquement simple
Investissement linéaire
Shard Compressé
                (compressed)



Optimisation de stockage & réduction de couts
Implémentée avec:
  database schemas
  data fédération
Shard étendu
                 (expanded)



Traite les bases comme une unité de stockage logique
Pas de relations entre les bases et les clients
Utilise les INSERTs round-robin
Revue des Modèles
Fédération avec SQL Azure
Accéder au Root


USE FEDERATION ROOT WITH RESET
SELECT * FROM configuration_table
Accéder a un Membre


USE FEDERATION customers (cid=10) WITH RESET, FILTERING=OFF

SELECT * FROM customers
Accéder a un Enregistrement


USE FEDERATION customers (cid=10) WITH RESET, FILTERING=ON

SELECT * FROM customers
Difficultés


Changer le contexte avec USE FEDERATION
Difficile d’accéder aux données reparties (FAN OUT)
  Sur plusieurs membres
  d’une fédération
  Sur plusieurs fédérations


     SELECT * FROM customers



                       SELECT * FROM customers
                       WHERE cid NOT IN (select cid FROM sales)
Projet Open-Source: Enzo


Platforme sharding unifiee
  Compressee, étendue, lineaire
  SQL Azure Federation
Enzo: Mode API


RootDatabase root_db = new RootDatabase(“connectionstring");

root_db["customers"].DefaultExecutionContext.Mode =
ShardCore.ShardOperationMode.FAN_OUT;

root_db["customers"].ExecuteDataTable("select * from customer");
Enzo: Mode SQL Distribuée


RootDatabase root_db = new RootDatabase(“connectionstring");

string sql = @“SELECT * USING
    (select * from customer)
     FEDERATED ON (customers)";

root_db.ExecuteDataTable(sql);
Enzo: Mode SQL Distribuée (2)


RootDatabase root_db = new RootDatabase(“connectionstring");

string sql = @“SELECT * USING
    (select * from customer)
     FEDERATED ON (customers)
     WHERE cid NOT IN (select cid from sales where storeid = 2)
     FEDERATED ON (sales)";

root_db.ExecuteDataTable(sql);
Enzo: Cache


 Cache les résultats localement
 Utilisé avec les commandes SQL distribuées

string sql = @“SELECT * USING
    (select * from customer)
     FEDERATED ON (customers)
     CACHED FOR 30";
Demo / Questions

Contenu connexe

Tendances

Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g
noble Bajoli
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
ENSET, Université Hassan II Casablanca
 
Introduction à pl/sql
Introduction à pl/sqlIntroduction à pl/sql
Introduction à pl/sql
Abdelouahed Abdou
 
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
Patrick Guimonet
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcm
infcom
 
Tp java ee.pptx
Tp java ee.pptxTp java ee.pptx
Tp java ee.pptx
Eric Bourdet
 
Cours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxyCours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxy
ENSET, Université Hassan II Casablanca
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
ENSET, Université Hassan II Casablanca
 
Workshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationWorkshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring Integration
Antoine Rey
 
Db aing td2v1
Db aing td2v1Db aing td2v1
Db aing td2v1
infcom
 
Cours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateurCours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateur
ENSET, Université Hassan II Casablanca
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
ENSET, Université Hassan II Casablanca
 
Authentification par certificat (clear box)
Authentification par certificat (clear box)Authentification par certificat (clear box)
Authentification par certificat (clear box)
Ousmane BADJI
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
ENSET, Université Hassan II Casablanca
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
ENSET, Université Hassan II Casablanca
 
Workshop Spring - Session 1 - L'offre Spring et les bases
Workshop Spring  - Session 1 - L'offre Spring et les basesWorkshop Spring  - Session 1 - L'offre Spring et les bases
Workshop Spring - Session 1 - L'offre Spring et les bases
Antoine Rey
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
ENSET, Université Hassan II Casablanca
 
Introduction à Angular JS
Introduction à Angular JSIntroduction à Angular JS
Introduction à Angular JS
Antoine Rey
 

Tendances (20)

Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
 
Introduction à pl/sql
Introduction à pl/sqlIntroduction à pl/sql
Introduction à pl/sql
 
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
 
ShortUrlApp-iis-like
ShortUrlApp-iis-likeShortUrlApp-iis-like
ShortUrlApp-iis-like
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcm
 
Tp java ee.pptx
Tp java ee.pptxTp java ee.pptx
Tp java ee.pptx
 
Cours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxyCours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxy
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Workshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationWorkshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring Integration
 
Db aing td2v1
Db aing td2v1Db aing td2v1
Db aing td2v1
 
Cours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateurCours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateur
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Authentification par certificat (clear box)
Authentification par certificat (clear box)Authentification par certificat (clear box)
Authentification par certificat (clear box)
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Workshop Spring - Session 1 - L'offre Spring et les bases
Workshop Spring  - Session 1 - L'offre Spring et les basesWorkshop Spring  - Session 1 - L'offre Spring et les bases
Workshop Spring - Session 1 - L'offre Spring et les bases
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Introduction à Angular JS
Introduction à Angular JSIntroduction à Angular JS
Introduction à Angular JS
 
Hibernate et jsf
Hibernate et jsfHibernate et jsf
Hibernate et jsf
 

En vedette

Windows azure et windows phone
Windows azure et windows phoneWindows azure et windows phone
Windows azure et windows phone
Aymeric Weinbach
 
Windows azure panorama (azr101)
Windows azure panorama (azr101)Windows azure panorama (azr101)
Windows azure panorama (azr101)
Aymeric Weinbach
 
Wilfried woivré windows azure mobile services
Wilfried woivré   windows azure mobile servicesWilfried woivré   windows azure mobile services
Wilfried woivré windows azure mobile services
Aymeric Weinbach
 
Wilfried woivré intégration continue
Wilfried woivré   intégration continueWilfried woivré   intégration continue
Wilfried woivré intégration continue
Aymeric Weinbach
 
Azure camp 26 septembre tips and tools
Azure camp 26 septembre tips and toolsAzure camp 26 septembre tips and tools
Azure camp 26 septembre tips and tools
Aymeric Weinbach
 
Cnam azure 2014 Intro et présentation générale de la plateforme
Cnam azure 2014   Intro et présentation générale de la plateformeCnam azure 2014   Intro et présentation générale de la plateforme
Cnam azure 2014 Intro et présentation générale de la plateforme
Aymeric Weinbach
 
Session Objet Connecté gwab 2014 paris
Session Objet Connecté gwab 2014 parisSession Objet Connecté gwab 2014 paris
Session Objet Connecté gwab 2014 paris
Aymeric Weinbach
 
Cnam cours azure intro et présentation generale
Cnam cours azure intro et présentation generaleCnam cours azure intro et présentation generale
Cnam cours azure intro et présentation generale
Aymeric Weinbach
 

En vedette (8)

Windows azure et windows phone
Windows azure et windows phoneWindows azure et windows phone
Windows azure et windows phone
 
Windows azure panorama (azr101)
Windows azure panorama (azr101)Windows azure panorama (azr101)
Windows azure panorama (azr101)
 
Wilfried woivré windows azure mobile services
Wilfried woivré   windows azure mobile servicesWilfried woivré   windows azure mobile services
Wilfried woivré windows azure mobile services
 
Wilfried woivré intégration continue
Wilfried woivré   intégration continueWilfried woivré   intégration continue
Wilfried woivré intégration continue
 
Azure camp 26 septembre tips and tools
Azure camp 26 septembre tips and toolsAzure camp 26 septembre tips and tools
Azure camp 26 septembre tips and tools
 
Cnam azure 2014 Intro et présentation générale de la plateforme
Cnam azure 2014   Intro et présentation générale de la plateformeCnam azure 2014   Intro et présentation générale de la plateforme
Cnam azure 2014 Intro et présentation générale de la plateforme
 
Session Objet Connecté gwab 2014 paris
Session Objet Connecté gwab 2014 parisSession Objet Connecté gwab 2014 paris
Session Objet Connecté gwab 2014 paris
 
Cnam cours azure intro et présentation generale
Cnam cours azure intro et présentation generaleCnam cours azure intro et présentation generale
Cnam cours azure intro et présentation generale
 

Similaire à Sql azure performance et montee en charge (1)

Monter en charge, tester et surveiller avec une application Windows Azure : l...
Monter en charge, tester et surveiller avec une application Windows Azure : l...Monter en charge, tester et surveiller avec une application Windows Azure : l...
Monter en charge, tester et surveiller avec une application Windows Azure : l...
Microsoft Technet France
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs
Microsoft
 
la session Patterns azure cloud au Gwab 2014
la session Patterns azure cloud au Gwab 2014la session Patterns azure cloud au Gwab 2014
la session Patterns azure cloud au Gwab 2014
Aymeric Weinbach
 
La sécurité avec SQL Server 2012
La sécurité avec SQL Server 2012La sécurité avec SQL Server 2012
La sécurité avec SQL Server 2012
Microsoft Technet France
 
Marzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvcMarzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvc
abderrahim marzouk
 
Design applicatif avec symfony2
Design applicatif avec symfony2Design applicatif avec symfony2
Design applicatif avec symfony2
RomainKuzniak
 
Construire des applications supportant la montée en charge avec SQL Azure (300)
Construire des applications supportant la montée en charge avec SQL Azure (300)Construire des applications supportant la montée en charge avec SQL Azure (300)
Construire des applications supportant la montée en charge avec SQL Azure (300)
Microsoft Technet France
 
Construire des applications supportant la montée en charge avec SQL Azure (300)
Construire des applications supportant la montée en charge avec SQL Azure (300)Construire des applications supportant la montée en charge avec SQL Azure (300)
Construire des applications supportant la montée en charge avec SQL Azure (300)
Microsoft
 
Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL Serveur
Microsoft Technet France
 
Patterns Windows Azure
Patterns Windows AzurePatterns Windows Azure
Patterns Windows Azure
Microsoft
 
Fondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application FlexFondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application Flex
david deraedt
 
Fondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application FlexFondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application Flex
david deraedt
 
Retour d'expérience sur PowerShell
Retour d'expérience sur PowerShellRetour d'expérience sur PowerShell
Retour d'expérience sur PowerShell
Microsoft Technet France
 
Reprise et Continuité d’activité sur le Cloud : Mythes & Réalités
Reprise et Continuité d’activité sur le Cloud : Mythes & RéalitésReprise et Continuité d’activité sur le Cloud : Mythes & Réalités
Reprise et Continuité d’activité sur le Cloud : Mythes & Réalités
Microsoft Technet France
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides Keynote
Microsoft
 
TechDays 2010 (CLO202) : Introduction à Windows Azure
TechDays 2010 (CLO202) : Introduction à Windows AzureTechDays 2010 (CLO202) : Introduction à Windows Azure
TechDays 2010 (CLO202) : Introduction à Windows Azure
Thomas Conté
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
Microsoft
 
Sql saturday 323 paris 2014 azure migration iaas et paas
Sql saturday 323 paris 2014   azure migration iaas et paasSql saturday 323 paris 2014   azure migration iaas et paas
Sql saturday 323 paris 2014 azure migration iaas et paas
Christophe Laporte
 

Similaire à Sql azure performance et montee en charge (1) (20)

Monter en charge, tester et surveiller avec une application Windows Azure : l...
Monter en charge, tester et surveiller avec une application Windows Azure : l...Monter en charge, tester et surveiller avec une application Windows Azure : l...
Monter en charge, tester et surveiller avec une application Windows Azure : l...
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs
 
la session Patterns azure cloud au Gwab 2014
la session Patterns azure cloud au Gwab 2014la session Patterns azure cloud au Gwab 2014
la session Patterns azure cloud au Gwab 2014
 
Patterns azure cloud
Patterns azure cloudPatterns azure cloud
Patterns azure cloud
 
La sécurité avec SQL Server 2012
La sécurité avec SQL Server 2012La sécurité avec SQL Server 2012
La sécurité avec SQL Server 2012
 
Marzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvcMarzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvc
 
Bases dedonnees.net
Bases dedonnees.netBases dedonnees.net
Bases dedonnees.net
 
Design applicatif avec symfony2
Design applicatif avec symfony2Design applicatif avec symfony2
Design applicatif avec symfony2
 
Construire des applications supportant la montée en charge avec SQL Azure (300)
Construire des applications supportant la montée en charge avec SQL Azure (300)Construire des applications supportant la montée en charge avec SQL Azure (300)
Construire des applications supportant la montée en charge avec SQL Azure (300)
 
Construire des applications supportant la montée en charge avec SQL Azure (300)
Construire des applications supportant la montée en charge avec SQL Azure (300)Construire des applications supportant la montée en charge avec SQL Azure (300)
Construire des applications supportant la montée en charge avec SQL Azure (300)
 
Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL Serveur
 
Patterns Windows Azure
Patterns Windows AzurePatterns Windows Azure
Patterns Windows Azure
 
Fondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application FlexFondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application Flex
 
Fondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application FlexFondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application Flex
 
Retour d'expérience sur PowerShell
Retour d'expérience sur PowerShellRetour d'expérience sur PowerShell
Retour d'expérience sur PowerShell
 
Reprise et Continuité d’activité sur le Cloud : Mythes & Réalités
Reprise et Continuité d’activité sur le Cloud : Mythes & RéalitésReprise et Continuité d’activité sur le Cloud : Mythes & Réalités
Reprise et Continuité d’activité sur le Cloud : Mythes & Réalités
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides Keynote
 
TechDays 2010 (CLO202) : Introduction à Windows Azure
TechDays 2010 (CLO202) : Introduction à Windows AzureTechDays 2010 (CLO202) : Introduction à Windows Azure
TechDays 2010 (CLO202) : Introduction à Windows Azure
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
Sql saturday 323 paris 2014 azure migration iaas et paas
Sql saturday 323 paris 2014   azure migration iaas et paasSql saturday 323 paris 2014   azure migration iaas et paas
Sql saturday 323 paris 2014 azure migration iaas et paas
 

Plus de Aymeric Weinbach

Serverless everywhere
Serverless everywhereServerless everywhere
Serverless everywhere
Aymeric Weinbach
 
Gaib19 azure + ia = art
Gaib19   azure + ia = artGaib19   azure + ia = art
Gaib19 azure + ia = art
Aymeric Weinbach
 
Gab 2017 iot azure aymeric weinbach
Gab 2017 iot  azure aymeric weinbachGab 2017 iot  azure aymeric weinbach
Gab 2017 iot azure aymeric weinbach
Aymeric Weinbach
 
Cnam cours azure ze cloud intro et présentation generale 2016
Cnam cours azure ze cloud intro et présentation  generale 2016Cnam cours azure ze cloud intro et présentation  generale 2016
Cnam cours azure ze cloud intro et présentation generale 2016
Aymeric Weinbach
 
Cnam azure ze cloud resource manager
Cnam azure ze cloud  resource managerCnam azure ze cloud  resource manager
Cnam azure ze cloud resource manager
Aymeric Weinbach
 
Microsoft azure boot camp Keynote
Microsoft azure boot camp Keynote Microsoft azure boot camp Keynote
Microsoft azure boot camp Keynote
Aymeric Weinbach
 
Gab paris 2015 automatisation
Gab paris 2015   automatisationGab paris 2015   automatisation
Gab paris 2015 automatisation
Aymeric Weinbach
 
Gab 2015 aymeric weinbach azure iot
Gab   2015 aymeric weinbach azure iot Gab   2015 aymeric weinbach azure iot
Gab 2015 aymeric weinbach azure iot
Aymeric Weinbach
 
Concevoir ses premiers objets connectés avec azure
Concevoir ses premiers objets connectés avec azureConcevoir ses premiers objets connectés avec azure
Concevoir ses premiers objets connectés avec azure
Aymeric Weinbach
 
Cnam cours azure web sites
Cnam cours azure web sitesCnam cours azure web sites
Cnam cours azure web sites
Aymeric Weinbach
 
Cnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile servicesCnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile services
Aymeric Weinbach
 
Cnam cours azure iaas
Cnam cours azure iaasCnam cours azure iaas
Cnam cours azure iaas
Aymeric Weinbach
 
Cnam cours azure cloud services
Cnam cours azure  cloud servicesCnam cours azure  cloud services
Cnam cours azure cloud services
Aymeric Weinbach
 
Cnam azure 2015 storage
Cnam azure 2015  storageCnam azure 2015  storage
Cnam azure 2015 storage
Aymeric Weinbach
 
Windows azure gwab - mobile services
Windows azure   gwab - mobile servicesWindows azure   gwab - mobile services
Windows azure gwab - mobile services
Aymeric Weinbach
 
Gérer facilement les identités dans le cloud
Gérer facilement les identités dans le cloudGérer facilement les identités dans le cloud
Gérer facilement les identités dans le cloud
Aymeric Weinbach
 
Backup Recovery Hybride avec Windows Azure Backup au Gwab 2014 Paris
Backup Recovery Hybride avec Windows Azure Backup au Gwab 2014 ParisBackup Recovery Hybride avec Windows Azure Backup au Gwab 2014 Paris
Backup Recovery Hybride avec Windows Azure Backup au Gwab 2014 Paris
Aymeric Weinbach
 
Gwab 2014 Paris keynote
Gwab 2014 Paris keynoteGwab 2014 Paris keynote
Gwab 2014 Paris keynote
Aymeric Weinbach
 
Introduction gwab 2014 paris
Introduction gwab 2014 parisIntroduction gwab 2014 paris
Introduction gwab 2014 paris
Aymeric Weinbach
 
Cnam azure 2014 storage
Cnam azure 2014   storageCnam azure 2014   storage
Cnam azure 2014 storage
Aymeric Weinbach
 

Plus de Aymeric Weinbach (20)

Serverless everywhere
Serverless everywhereServerless everywhere
Serverless everywhere
 
Gaib19 azure + ia = art
Gaib19   azure + ia = artGaib19   azure + ia = art
Gaib19 azure + ia = art
 
Gab 2017 iot azure aymeric weinbach
Gab 2017 iot  azure aymeric weinbachGab 2017 iot  azure aymeric weinbach
Gab 2017 iot azure aymeric weinbach
 
Cnam cours azure ze cloud intro et présentation generale 2016
Cnam cours azure ze cloud intro et présentation  generale 2016Cnam cours azure ze cloud intro et présentation  generale 2016
Cnam cours azure ze cloud intro et présentation generale 2016
 
Cnam azure ze cloud resource manager
Cnam azure ze cloud  resource managerCnam azure ze cloud  resource manager
Cnam azure ze cloud resource manager
 
Microsoft azure boot camp Keynote
Microsoft azure boot camp Keynote Microsoft azure boot camp Keynote
Microsoft azure boot camp Keynote
 
Gab paris 2015 automatisation
Gab paris 2015   automatisationGab paris 2015   automatisation
Gab paris 2015 automatisation
 
Gab 2015 aymeric weinbach azure iot
Gab   2015 aymeric weinbach azure iot Gab   2015 aymeric weinbach azure iot
Gab 2015 aymeric weinbach azure iot
 
Concevoir ses premiers objets connectés avec azure
Concevoir ses premiers objets connectés avec azureConcevoir ses premiers objets connectés avec azure
Concevoir ses premiers objets connectés avec azure
 
Cnam cours azure web sites
Cnam cours azure web sitesCnam cours azure web sites
Cnam cours azure web sites
 
Cnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile servicesCnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile services
 
Cnam cours azure iaas
Cnam cours azure iaasCnam cours azure iaas
Cnam cours azure iaas
 
Cnam cours azure cloud services
Cnam cours azure  cloud servicesCnam cours azure  cloud services
Cnam cours azure cloud services
 
Cnam azure 2015 storage
Cnam azure 2015  storageCnam azure 2015  storage
Cnam azure 2015 storage
 
Windows azure gwab - mobile services
Windows azure   gwab - mobile servicesWindows azure   gwab - mobile services
Windows azure gwab - mobile services
 
Gérer facilement les identités dans le cloud
Gérer facilement les identités dans le cloudGérer facilement les identités dans le cloud
Gérer facilement les identités dans le cloud
 
Backup Recovery Hybride avec Windows Azure Backup au Gwab 2014 Paris
Backup Recovery Hybride avec Windows Azure Backup au Gwab 2014 ParisBackup Recovery Hybride avec Windows Azure Backup au Gwab 2014 Paris
Backup Recovery Hybride avec Windows Azure Backup au Gwab 2014 Paris
 
Gwab 2014 Paris keynote
Gwab 2014 Paris keynoteGwab 2014 Paris keynote
Gwab 2014 Paris keynote
 
Introduction gwab 2014 paris
Introduction gwab 2014 parisIntroduction gwab 2014 paris
Introduction gwab 2014 paris
 
Cnam azure 2014 storage
Cnam azure 2014   storageCnam azure 2014   storage
Cnam azure 2014 storage
 

Sql azure performance et montee en charge (1)

  • 1. Azure Camp spécial SQL Azure 14/12/2011
  • 2. La communauté Azure Le site www.zecloud.fr Les Azure Camps http://Zecloud.codeplex.com Tout le code source produit lors des Azure Camps en licence MS-PL L’azure user group : www.azureusergroup.com/group/frenchusergroup Twitter ZeCloud twitter.com/zecloud Et page Facebook ZeCloud Devenez Fan !!
  • 3. Programme - Présentation de la communauté Azure - Introduction - Pattern d'implémentation - Performance & Throttling - Montée en Charge & Fédération - Questions Réponses - Code
  • 4. Performance et Montée En Charge avec SQL Azure Hervé Roggero MVP SQL Azure Blue Syntax Consulting
  • 5. A mon sujet Comment me contacter Twitter: @hroggero E-mail: hroggero@bluesyntax.net Website: www.bluesyntax.net Contributions Blue Syntax Consulting PRO SQL Azure (APress) Trainings Azure (Wednesday) Consulting Azure President du Azure Florida Association (linked-in) Floride…
  • 7. Agenda Performance Considérations Pertes de connexion et mécanismes de limitation Montée en Charge Sharding Fédération Projet open source: Enzo
  • 9. Considérations Regroupement de Connexions Logique de perte de connexion Cache Entity Framework (lazy loading) Chatty vs. Chunky (bavard vs massif) [mais je laisserais les termes technique en anglais]
  • 11. Raisons de perte de connexion Serrures excessives (1 million de serrures) Transactions non commises (<20% du log file) Transactions bloquant le système (max: 20 secondes) Taille du log file (1Go par transaction) Utilisation de TempDB (5Go par session) Utilisation mémoire (>16Mb pendant 20+ secondes) Taille de la base de donnée Connexions inactives (30 minutes)
  • 12. Raisons de perte de connexion (2) Durée d’une transaction (24 heures) DoS (éviter les attaques avec le pare-feu) Problèmes avec le réseau Problèmes avec la répartition des charges Autres raisons (CPU, I/O…)
  • 13. Mécanisme de Limitation (throttling) Erreurs de connexion 40501 : le service est actuellement occupé. Réessayez la demande après 10 secondes. ID de l'incident : %ls. Code : %d. 40544 : la base de données a atteint son quota de taille. Partitionnez ou supprimez des données, supprimez des index ou consultez la documentation afin de rechercher des solutions possibles. ID de l'incident : %ls. Code : %d. 40545 : le service rencontre un problème actuellement en cours d'analyse. ID de l'incident : %ls. Code : %d
  • 14. Décodage des codes de raison 131075 modulo 4 = 3 http://msdn.microsoft.com/fr-fr/library/4cff491e-9359-4454-bd7c-fb72c4c452ca#bkmk_throt_errors
  • 15. Modes de Limitation Code du Description Types d’instructions Instructions qui peuvent mode de rejetees etre traitees limitation 0 Aucune limitation Aucune Toutes 1 Rejeter les mises a INSERT, UPDATE, DELETE, DROP TABLE & jour (insert) CREATE TABLE & INDEX, TRUNCATE INDEX 2 Rejeter toutes les INSERT, UPDATE, SELECT ecritures DELETE, CREATE, DROP 3 Rejeter tout Toutes Aucune
  • 16. Traiter les Pertes de Connexion Réduction Exponentielle; peut s’appliquer aux charges http://geekswithblogs.net/hroggero/archive/2011/05/26/cloud-lesson-learned-exponential-backoff.aspx
  • 17. Traiter Les Erreurs Temporaires Transient Condition Handling Framework http://windowsazurecat.com/2010/10/best-practices-for-handling-transient-conditions-in-sql-azure-client-applications/
  • 18. Exemple: Backup pour SQL Azure Algorithme adapte pour rester sous la Connexion courbe de En parallele Prepare les limitation de SQL commandes SQL Azure Connexion Code d’adaptation Ouvre connexion represente 30% du code backup En parallele Execute une Charges commande SQL Connexion Sauve donnees dans fichier
  • 19. Exemple: Copier des donnees X: Size du batch; Y: Temps d’Execution
  • 21. Sharding Distribution des données Horizontalement Verticalement Ressources non-partagées Différent modèles Objectif de la montée en charge: Expérience du client #1 est la même que celle du client #1000
  • 22. Shard Linéaire (linear) Une base de donnée par client Embarquement simple Investissement linéaire
  • 23. Shard Compressé (compressed) Optimisation de stockage & réduction de couts Implémentée avec: database schemas data fédération
  • 24. Shard étendu (expanded) Traite les bases comme une unité de stockage logique Pas de relations entre les bases et les clients Utilise les INSERTs round-robin
  • 27. Accéder au Root USE FEDERATION ROOT WITH RESET SELECT * FROM configuration_table
  • 28. Accéder a un Membre USE FEDERATION customers (cid=10) WITH RESET, FILTERING=OFF SELECT * FROM customers
  • 29. Accéder a un Enregistrement USE FEDERATION customers (cid=10) WITH RESET, FILTERING=ON SELECT * FROM customers
  • 30. Difficultés Changer le contexte avec USE FEDERATION Difficile d’accéder aux données reparties (FAN OUT) Sur plusieurs membres d’une fédération Sur plusieurs fédérations SELECT * FROM customers SELECT * FROM customers WHERE cid NOT IN (select cid FROM sales)
  • 31. Projet Open-Source: Enzo Platforme sharding unifiee Compressee, étendue, lineaire SQL Azure Federation
  • 32. Enzo: Mode API RootDatabase root_db = new RootDatabase(“connectionstring"); root_db["customers"].DefaultExecutionContext.Mode = ShardCore.ShardOperationMode.FAN_OUT; root_db["customers"].ExecuteDataTable("select * from customer");
  • 33. Enzo: Mode SQL Distribuée RootDatabase root_db = new RootDatabase(“connectionstring"); string sql = @“SELECT * USING (select * from customer) FEDERATED ON (customers)"; root_db.ExecuteDataTable(sql);
  • 34. Enzo: Mode SQL Distribuée (2) RootDatabase root_db = new RootDatabase(“connectionstring"); string sql = @“SELECT * USING (select * from customer) FEDERATED ON (customers) WHERE cid NOT IN (select cid from sales where storeid = 2) FEDERATED ON (sales)"; root_db.ExecuteDataTable(sql);
  • 35. Enzo: Cache Cache les résultats localement Utilisé avec les commandes SQL distribuées string sql = @“SELECT * USING (select * from customer) FEDERATED ON (customers) CACHED FOR 30";