IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Optimisations SGBD Discussion :

Solution montée en charge


Sujet :

Optimisations SGBD

  1. #1
    Membre du Club
    Profil pro
    Dev
    Inscrit en
    Février 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Février 2005
    Messages : 60
    Points : 64
    Points
    64
    Par défaut Solution montée en charge
    Bonjour,

    comment on s y prends lorsque qu une application web par exemple qui tourne autour d une base de données commence a recevoir beaucoups de requetes SQL
    jusqu a etouffer la base ?

    Il faut obligatoirement plusieurs bases , mais comment faire pour assurer la coherence des données ?

    Plusieurs bases synchrones ce n est pas possible ?

    La replication c est quoi exactement ?

    Merci

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Tu peux utiliser une base maitre et des bases esclave en réplication unidirectionnelle. Ainsi toutes les lectures se font sur les esclaves et l'ecriture sur le maître (qui répercute sur les esclave de manière unidirectionnelle). Comme il y a souvent beaucoup plus de lectures que d'écritures, c'est une solution qui peut être très efficace.

    Il faut juste que ton application fasse une sorte de répartition des connections pour ce qui est lecture. A chaque nouvelle session client, affecter une connexion et en changer au prochain client.

  3. #3
    Rédacteur en Chef
    Avatar de Marc Lussac
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Mars 2002
    Messages
    28 664
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2002
    Messages : 28 664
    Points : 61 566
    Points
    61 566
    Par défaut
    La solution la plus simple c'est d'augmenter la ram sur le serveur
    Ne pas me contacter pour le forum et je ne répondrai à aucune question technique. Pour contacter les différents services du club (publications, partenariats, publicité, ...) : Contacts

    15 000 offres d'emploi développeurs et informatique
    Cours et tutoriels développeurs et informatique
    Les FAQ's & Les Livres
    Codes sources
    Téléchargements

  4. #4
    Membre du Club
    Profil pro
    Dev
    Inscrit en
    Février 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Février 2005
    Messages : 60
    Points : 64
    Points
    64
    Par défaut
    Merci.
    Il n y a pas d autres solutions ?

  5. #5
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Quel est le SGDB utilisé et en quelle version ?

    La première chose à faire est d'analyser les performances:
    - dans la base
    - sur la machine qui héberge la base: charge CPU
    - sur le système de stockage externe utilisé (le cas échéant): charge E/S

    Suivant le SGBD utilisé, il y a des possibilités d'optimisation des requêtes, d'utilisation de structures de tables ou d'index différentes, d'utiliser certains paramètres ou options. Dans certains cas l'ajout de processeurs ou de mémoire peut être une solution, mais il est illusoire de résoudre un problème de performance sans éléments concrets.

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    On peut aussi stocker les tables sur différents disques pour améliorer les E/S. Selon les SGBD, les possibilités diffèrent.

    Toujours au niveau des E/S, pourquoi ne pas regarder du côté des SSD (Solid State Disk) qui sont des disques durs à base de mémoire NAND. L'avantage est le temps d'accès 100 fois moins important que les disques traditionnels. Attention cependant à la durée de vie de ceux ci.

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    On commence TOUJOURS par faire du scale up avant de faire du scale out.

    scale up : augmenter les ressources du serveur
    scale out : augmenter le nombre des serveurs

    En effet le scale up est toujours plus économique que le scale out !

    Pourquoi ?

    Le scale up consiste à rajouter de la RAM des processeurs et des disques. Cela laisse une seule base sur un seul serveur.

    Dans le scale up il faut rajouter les coût supplémentaires du matériel. Le reste : licences, administration ... reste inchangé.

    Le scale out consiste à répliquer des parties verticales ou horizontales de la base de données sur différents serveurs.

    Dans le scale up il faut rajouter le coût des nouveaux serveur, les licences supplementaires et l'administration supplémentaire (administrer deux serveurs coute deux fois plus cher).

    En outre le scale out possède de multiples inconvénients :
    1) baisse du MTBF : chaque machine possède un MTBF (temps moyen de bon fonctionnement - avant panne). Chaque machine supplémentaire dégrade donc le MTBF. SI l'on veut rester dans le même standard, il faut donc des machine d'une game supérieure !
    2) performances en baisse : les ressources des différents serveurs sont mobilisées pour la réplication au détriment du service des données. Autrement dit 2 machines ne veut pas dire 2 fois plus de ressources, mais un coefficient largement inférieur à 2 et fortement dépendant de la rapidité du réseau et du temps de latence de la réplication. En pratique on compte entre 1,8 et 1,5.

    C'est pourquoi le scale out est toujours beaucoup plus cher globalement que le scale up, mais peu de gens perçoivent ce fait de prime abord !

    Autrement dit une fois que le serveur 32 bits à atteint 64 processeurs, 64 Go de RAM et quelques Tera octets de disque, alors si on ne peut plus lui rajouter des ressources physiques, la seule solution est de rajouter du serveur !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  8. #8
    Membre du Club
    Profil pro
    Dev
    Inscrit en
    Février 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Février 2005
    Messages : 60
    Points : 64
    Points
    64
    Par défaut
    Merci tres interessant.

  9. #9
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Le scale out consiste à répliquer des parties verticales ou horizontales de la base de données sur différents serveurs.
    Cela dépend des SGDB utilisés. Oracle propose son architecture grid qui se base sur le clustering Oracle RAC entre autres. Cela permet de faire du "scale out" avec des "petits serveurs" tout en gardant une seule base.

    L'article suivant (de 2003) est une réponse spécifique d'Oracle à Microsoft sur la comparaison SQL Server/federated databases et Oracle/RAC:
    http://www.oracle.com/technology/pro...L_Rebuttal.pdf

  10. #10
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    On peut faire cela aussi avec MS SQL Server à l'aide de services broker qui permet de concevoir des solutions de bases de données collaboratives.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Logiciel de test de montée en charge
    Par Avatar dans le forum Outils
    Réponses: 7
    Dernier message: 03/01/2007, 17h23
  2. MOntée en charge ds un modèle multithreading
    Par yanis97 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 23/02/2006, 18h17
  3. Montée en charge quand sql tourne
    Par vvb dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 29/01/2006, 09h30
  4. Tutoriel: Statistiques et montée en charge
    Par RDM dans le forum XMLRAD
    Réponses: 0
    Dernier message: 19/12/2005, 21h53
  5. [outils] Prévoir la montée en charge sur un site ?
    Par ePoX dans le forum Hébergement
    Réponses: 12
    Dernier message: 15/12/2005, 21h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo