Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/09/2011, 09h01   #1
Membre habitué
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 135
Points : 135
Par défaut Tempdb lent après une migration vers 2008 R2

Je suis confronté à un phénomère de lenteur lors de l'écriture dans la base de données Tempdb après avoir migré vers SQL Server 2008 R2. La migration s'est faite sur une autre machine dont le hardware est identique à la première.

Le serveur a la configuration suivante :

OS Windows 2008 R2 SP1
12 processeurs
Mémoire 72 GB dont 50 GB réservé à SQL
1 seule instance SQL
Microsoft SQL Server Enterprise Edition (64-bit)
La base de données Tempdb est localisée seule sur un disque SSD de 100 GB
La taille minimale de Tempdb est de 8 GB

Sur la machine originale (un SQL 2005 SP3),
- le temps moyen de lecture était de 1,2 ms
- le temps moyen d'écriture était de 3,9 ms

Sur la nouvelle machine (même hardware mais SQL 2008 R2)
- le temps moyen de lecture était de 1,7 ms
- le temps moyen d'écriture était de 320,8 ms

Je ne comprends pas comment la vitesse d'écriture est devenue aussi faible. Nous avons fait des tests de transfert de fichier sur ce disque SSD et pourtant la vitesse d'écriture est la même qu'auparavant. Pourquoi SQL Serveur écrit si lentement dans sa base Tempdb ?

J'ai changé la vérification de page de CHECKSUM à NONE mais cela n'améliore pas le temps d'écriture

Quelques idées ?
D'avance, merci.
Philippe Robert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 09h42   #2
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 724
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 724
Points : 6 848
Points : 6 848
Pas d'antivirus activé ?

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 09h49   #3
Membre habitué
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 135
Points : 135
Non. Il n'y a pas d'antivirus installé.
Philippe Robert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 09h52   #4
Membre habitué
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 135
Points : 135
J'ai rectifié mon message initial : le disque SSD fait 100 GB au lieu de 10 GB.
Philippe Robert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 09h55   #5
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 724
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 724
Points : 6 848
Points : 6 848
Juste pour bien comprendre :

Est ce SQL Server qui écrit lentement ou même la copie d'un fichier autre est lente sur ce disque ? En d'autres terme est ce que c'est le disque qui est en cause ?

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 10h00   #6
Membre chevronné
 
Inscription : juillet 2006
Messages : 1 194
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 1 194
Points : 746
Points : 746
Quel était votre ancien "Recovery model" et quel est l'actuel ?
Sergejack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 10h03   #7
Membre habitué
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 135
Points : 135
C'est l'écriture par SQL Server qui est lente dans TempDB. Par contre, l'écriture par l'OS est rapide quand ont teste des copies de fichiers.

Les mesures de temps d'accès par SQL sont fournies par la DMV sys.dm_io_virtual_file_stats, les temps de lecture/écriture moyen me sont fournies par le calcul suivant :

Code :
1
2
CAST(io_stall_read_ms / ( 1.0 + num_of_reads ) AS NUMERIC(10, 1)) AS [avg_read_stall_ms] ,
CAST(io_stall_write_ms / ( 1.0 + num_of_writes ) AS NUMERIC(10, 1)) AS [avg_write_stall_ms]
Je sauvegarde ces valeurs toutes les heures, ce qui m'a permis de déceler ce problème. Les requêtes faisant usage de la base de données Tempdb sont plus lentes depuis la migration.
Philippe Robert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 10h05   #8
Membre habitué
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 135
Points : 135
Le Recovery Model est en mode "simple" avant et après migration.
Philippe Robert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 10h07   #9
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 724
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 724
Points : 6 848
Points : 6 848
Pas d'option qui trainerait comme autoshrink ou auto close ? Des fois que ...

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 10h12   #10
Membre chevronné
 
Inscription : juillet 2006
Messages : 1 194
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 1 194
Points : 746
Points : 746
Citation:
Envoyé par mikedavem Voir le message
Pas d'option qui trainerait comme autoshrink ou auto close ? Des fois que ...

++
Dans le même ordre de considération, vérifiez que vous avez pour les fichiers data et logs des tailles initiales et des delta pour les croissances des fichiers pertinentes.
Il vaut mieux que le fichier reste un peu trop gros longtemps, que trop léger souvent.
Sergejack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 10h13   #11
Membre habitué
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 135
Points : 135
On est en train de vérifier l'alignement des partitions avec l'aide du document
"Disk Partition Alignment Best Practices for SQL Server" trouvé chez Microsoft.
Philippe Robert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 10h17   #12
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 724
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 724
Points : 6 848
Points : 6 848
Si tu es en 2008 tu n'auras pas de souci d'alignement de partition. L'offset est par défaut à 1024 (contrairement à 2003)

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 10h17   #13
Membre habitué
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 135
Points : 135
Citation:
Envoyé par Sergejack Voir le message
Dans le même ordre de considération, vérifiez que vous avez pour les fichiers data et logs des tailles initiales et des delta pour les croissances des fichiers pertinentes.
Il vaut mieux que le fichier reste un peu trop gros longtemps, que trop léger souvent.
La taille allouée est de 8 GB pour le fichier data et aussi de 8 GB pour le fichier log. La croissance est par pas de 10%, illimitée. La réduction automatique est désactivée. Le fichier data a augmenté à 14 GB, suite à un calcul complet des statistiques effectué après la migration.
Philippe Robert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 10h43   #14
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 724
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 724
Points : 6 848
Points : 6 848
Etrange ton souci vu de loin.

Tu as fais un benchmark de ton disque SSD avec sqlio pour voir.

A tout hasard et si tu en as la possibilité est ce que le fait de redémarrer ton instance "règle" ton souci ?

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 10h49   #15
Membre du Club
 
Inscription : décembre 2002
Messages : 82
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 82
Points : 66
Points : 66
L'allocation unit size de la partoche est-il différent entre les 2 machines?
Glouferu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 10h50   #16
Membre habitué
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 135
Points : 135
Citation:
Envoyé par mikedavem Voir le message
A tout hasard et si tu en as la possibilité est ce que le fait de redémarrer ton instance "règle" ton souci ?
C'est ce que l'on prévois de faire : arrêter le service, formatter le disque SSD, et relancer le service. Mais on doit attendre le soir pour cela. Je vous tiendrai informé des résultats obtenus.

Je ne connais pas SQLIO, mais cela ne semble pas être supporté par Windows 2008.

http://www.microsoft.com/download/en....aspx?id=20163

Je vais aussi essayer le SQL Server 2008 R2 Best practice Analyser aussi.
Philippe Robert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 10h52   #17
Membre habitué
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 135
Points : 135
Citation:
Envoyé par Glouferu Voir le message
L'allocation unit size de la partoche est-il différent entre les 2 machines?
Non, c'est le même. En fait, c'est la même carte SSD que l'on a débranché de l'ancienne machine vers la nouvelle. L'ancienne machine était aussi en Windows 2008 R2 SP1
Philippe Robert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 11h07   #18
Membre du Club
 
Inscription : décembre 2002
Messages : 82
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 82
Points : 66
Points : 66
Citation:
Envoyé par Philippe Robert Voir le message
C'est ce que l'on prévois de faire : arrêter le service, formatter le disque SSD, et relancer le service. Mais on doit attendre le soir pour cela. Je vous tiendrai informé des résultats obtenus.

Je ne connais pas SQLIO, mais cela ne semble pas être supporté par Windows 2008.

http://www.microsoft.com/download/en....aspx?id=20163

Je vais aussi essayer le SQL Server 2008 R2 Best practice Analyser aussi.
Moi j'utilise SQLIOsim qui se trouve dans le répertoire d'install de SQL SERVER.
Il va simuler l'activité SQL Server sur les disques et donner les IO et temps de latence Disk.
Glouferu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 11h09   #19
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 724
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 724
Points : 6 848
Points : 6 848
Citation:
Envoyé par Philippe Robert Voir le message
Je ne connais pas SQLIO, mais cela ne semble pas être supporté par Windows 2008.

http://www.microsoft.com/download/en....aspx?id=20163
C'est effectivement pas notifié sur la page de téléchargement mais il fonctionne sans problème sur 2008 (pour l'avoir déjà utilisé sur cet Os)

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 11h13   #20
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 724
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 724
Points : 6 848
Points : 6 848
Citation:
Envoyé par Glouferu Voir le message
Moi j'utilise SQLIOsim qui se trouve dans le répertoire d'install de SQL SERVER.
Il va simuler l'activité SQL Server sur les disques et donner les IO et temps de latence Disk.
Attention SQLIOSim n'a pas du tout la même finalité que SQLIO. SQLIO Sim permet de tester la stabilité du sous système disque alors que SQLIO permet de tester les performances du sous système disque.

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h45.


 
 
 
 
Partenaires

Hébergement Web