OVH Cloud OVH Cloud

performance et taille de BD

3 réponses
Avatar
Lac
Bonjour,

je recherche des tests, charges...bench, des expériences, white
papers....enfin peu importe, entre les performances de sql server et la
volumétrie des bases.
- Les performances baissent elles de facon significatives en fonction de
l'augmentation du volume de la base ?
- Peut on compenser efficacement par une augmentation du hardware.
- Ce ratio performance/volume est il dépendant d'autres
critères....(normalisation des bases, gestion des index...)

merci pour vos infos...

3 réponses

Avatar
AB
Bonjour,
Utilisez le profiler de Sql Server.
Dans un premier temps choisi, dans la classe événements disponible pour une
trace, RCP:Completed pour les procedures stockées et SQL:batchCompleted pour
T-SQL. au niveau colonne de données prendre la 'duration'. le resultat est à
stockées dans un fichier de trace ou dans une table sql. Optez pour une table
SQL c'est plus facile pour faire des requêtes sur les colonnes duration.
Prendre toutes les duration importantes. Ce qui en ressortira, c'est la
procedure stockée ou la requête qui pose problème.

Pour une procedure stockée revoir la logique technique (cursor doit être en
open fast_forward et read_only si le cursor n'a pas besoin d'être modifié).
Pour tout ce qui est du 'Select avec un clause where + jointure, travailler
sur les index. Toutes les colonnes du where et ceux utiliser dans la jointure
doivent être indexées.

Sinon rajouter de la ram pour le cache sql server ainsi qu'un bon matériel.
Il faut travailler sur les 4 points suivants si on veut gagner en performance.
1 - Cofiguration memoire sql server
2 - Index
3 - Archivage
4 - Matériel.

Plus la bd prend du volume plus il faut agir sur ces 4 points pour améliorer
les performances.

Un conseil: suivez régulièrement les performances. n'attendez pas la
dernière minute pour le faire.

Cordialement
AB

Cordialement
AB

"Lac" a écrit :

Bonjour,

je recherche des tests, charges...bench, des expériences, white
papers....enfin peu importe, entre les performances de sql server et la
volumétrie des bases.
- Les performances baissent elles de facon significatives en fonction de
l'augmentation du volume de la base ?
- Peut on compenser efficacement par une augmentation du hardware.
- Ce ratio performance/volume est il dépendant d'autres
critères....(normalisation des bases, gestion des index...)

merci pour vos infos...





Avatar
Sébastien GROSBOIS \(Microsoft France\)
Bonjour,

Malheureusement c'est très difficile de répondre à une question aussi
ouverte !

Sachez cependant que la taille de la base n'est pas toujours facteur
principal en ce qui concerne les performances d'un moteur relationnel.

Le premier facteur de performance est applicatif et notamment degré de
normalisation en fonction de l'activité (OLTP,DW), les index, la qualité
d'écriture des requêtes.
Après seulement intervient le hardware (disques, mémoire, CPU) mais en aucun
cas la surenchèrede harware ne pourra compenser une application mal écrite.
Ensuite, la limitation en performance dépend de votre budget hardware (les
plus gros systèmes actuels peuvent atteindre plusieurs millions de dollars)

Mais grosso modo sur une application de type tansactionnelle bien designé et
correctement indexé la dégradation de performance devrait être faiblement
corrélée avec l'augmentation des volumes.
Pour une base de type datawarehouse, dans la mesure où on accède souvent à
l'ensemble des lignes des différentes tables pour calculer des aggrégats,
les performances devraient décroitre doucement avec l'augmentation du
volume.
Dans ce cas on précalcule généralement les aggrégats dans une structure
multidimensionnelle de type MOLAP (Analysis Services)

Cordialement






"Lac" wrote in message
news:
Bonjour,

je recherche des tests, charges...bench, des expériences, white
papers....enfin peu importe, entre les performances de sql server et la
volumétrie des bases.
- Les performances baissent elles de facon significatives en fonction de
l'augmentation du volume de la base ?
- Peut on compenser efficacement par une augmentation du hardware.
- Ce ratio performance/volume est il dépendant d'autres
critères....(normalisation des bases, gestion des index...)

merci pour vos infos...




Avatar
Fred BROUARD
Lac a écrit:
Bonjour,

je recherche des tests, charges...bench, des expériences, white
papers....enfin peu importe, entre les performances de sql server et la
volumétrie des bases.
- Les performances baissent elles de facon significatives en fonction de
l'augmentation du volume de la base ?



Absolument pas. En revanche les perfs sont fonction de la "fenêtre de données"
et du nombre de demandes simultanées (requêtes).

- Peut on compenser efficacement par une augmentation du hardware.


Oui, mais dans une certaine limite. Encore faut-il estimer le volume de la base
et celle de la fenêtre et choisir le bon OS. A postériori une opération de
changement d'OS est délicate sur une volumétrie importante.

- Ce ratio performance/volume est il dépendant d'autres
critères....(normalisation des bases, gestion des index...)



Dans le cadre des audits de bases de données que je fais régulièrement, les
point de gain de temps/perf dans l'ordre d'importance sont les suivants (en
dehors du hardware qui doit être pensé au démarrage) :
1) modèle de données : 60% du gain de perf.
2) écriture du code serveur (requêtes, proc stock, trigger, UDF, vues...)
20%
3) indexation : 15%
4) paramétrage Base de données / SQL Server / OS système 5%

Ces pourcentages sont des moyennes, mais peuvent varier de manière très
importante. Par exemple la répartition de la base sur différents fichiers de
différentes grappes RAID de différents niveau RAID permet de doubler, voire
tripler les perfs dans certaines conditions.

La plupart du temps le modèle de données est fortement en cause du fait de
détails subtils tels que l'utilisation des collations, le choix des types de
colonnes, la taille des lignes...
De même en matière d'écriture du code serveur on peut multiplier les perf de
manière très significative par une ré écriture (indépendamment du plan de
requête). Par exemple entre une procédure de 100 lignes avec utilisation d'un
curseur et le même traitement sous la forme d'une requête très complexe avec une
dizaine de sous requête, le gain peut être énorme. Encore faut-il savoir écrire
proprement le code et penser de manière ensembliste ce qui est rarement le cas
des développeurs.
Mon expérience à montré que 80% des curseurs écrit peuvent être transformé en
requête...
Enfin, avec la version 2005 il est encore plus facile de se passer des curseurs
du fait de l'utilisation du concept de CTE et de la récursivité des requêtes.
(la v 2005 annonce des gains de temps sec de 40% en moyenne)

A +


merci pour vos infos...





--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************