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

Administration SQL Server Discussion :

TempDB : Confirmation du nombre de fichiers


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Octobre 2012
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 862
    Par défaut TempDB : Confirmation du nombre de fichiers
    Bonjour à tous,

    Alors je lis donc qu'il faut un fichier par CPU, parfois si 16, en avoir 12 c'est déjà bien assez. Faire une "évaluation" de la taille qu'un seul fichier prendrait et donc diviser cette taille par le nombre de fichier.

    Je lis aussi ici à la page 18, de Paul Randal ce n'est pas si "simple" : http://sqlskills.com/blogs/paul/comm...ervermyths.pdf

    Bref, avec cette requête, je compte le nombre de CPU (http://blog.sqlauthority.com/2012/02...al-processors/)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT cpu_count
    FROM sys.dm_os_sys_info;
    Voici le résultat sur mes 12 instances en PROD
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    cpu_count
    16
    1
    8
    8
    4
    8
    16
    16
    8
    4
    8
    2
    J'ai besoin d'une précision svp. J'en ai une avec 16 CPU et uniquement 2 disques. Est-ce vraiment utile de créer, même 7 ndf, sur 2 disques ? Soit 4 fichiers sur un même disque ?

    Si oui, petite précision pour l'autogrowth. Si 4 fichiers (1 mdf et 3 ndf), si j'active l'autogrowth sur les 4. Est-ce que les 4 vont grandir "ensemble" ou uniquement 1 seul et les autres ne grandiront "jamais" ?

    Merci
    Jean-Luc

  2. #2
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    mais nooooon....

    avec l’augmentation du nombre de cœurs, on a laissé tomber. La recommandation de Microsoft est maintenant, un fichier par socket.
    je ne crois pas que tu puisses savoir combien il y a de coeurs sur ta machine avec une requête SQL. Il y a de nouvelles DMV en 2012 pour voir plus d'info sur l'OS, mais si tu es virtualisé en plus, ça n'aide pas.

    donc : un fichier par socket, et surtout des fichiers de même taille. ça se fait tout seul apparemment à l'installation de SQL Server 2016.

  3. #3
    Membre Expert
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Octobre 2012
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 862
    Par défaut
    Sorrryyyy :-)

    Mais si j'arrive à connaitre le nombre de coeur. Imaginons un serveur avec 4 coeurs, sur lequel il y a 4 instances, 8 disques.

    je devrais en théorie faire 4 fichiers par tempDB par instance donc ?

  4. #4
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Citation Envoyé par janlouk Voir le message
    Mais si j'arrive à connaitre le nombre de coeur. Imaginons un serveur avec 4 coeurs, sur lequel il y a 4 instances, 8 disques.
    Coeurs ? Instances ? disques ? Que viennent-ils faire ici ?

    Tu crées 4 fichiers si tu as quatre cœurs. Si tu as 32 cœurs sur 4 sockets (donc quatre processeurs à huit coeurs), tu crées quatre fichiers.

    Ne tiens pas compte de la notion de disques. Tu peux créer ces quatre fichiers sur le même disque. Ce n'est pas pour optimiser les I/O physiques, c'est pour optimiser les threads qui vont prendre en charge ces I/O.

    Si tu as plusieurs instances de SQL Server sur la même machine :
    1/ tu te dis que tu es dans la misère
    2/ tu fais la même chose sur chaque instance, il y a un tempdb par instance.

  5. #5
    Membre Expert
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Octobre 2012
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 862
    Par défaut
    Citation Envoyé par rudib Voir le message
    Tu crées 4 fichiers si tu as quatre cœurs. Si tu as 32 cœurs sur 4 sockets (donc quatre processeurs à huit coeurs), tu crées quatre fichiers.
    Ok, je vais faire cela, j'ai reçu la liste des config de nos serveurs.

    Dernière précision stp. Si je crée 4 fichiers de 1 GB et que les transactions auront besoin de 8 GB de place. Si j'active l'autogrowth sur les 4 fichiers, il va répartir les 8 GB sur les 4 fichiers, soit 2 GB par fichier ? Ou remplir plus un que l'autre ?

    Je demande car s'il remplit un fichier au max, alors autant que j'adapte la taille à 2GB pour tous et que j'active l'autogrowth sur un seul fichier.

  6. #6
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Citation Envoyé par janlouk Voir le message
    Dernière précision stp. Si je crée 4 fichiers de 1 GB et que les transactions auront besoin de 8 GB de place. Si j'active l'autogrowth sur les 4 fichiers, il va répartir les 8 GB sur les 4 fichiers, soit 2 GB par fichier ? Ou remplir plus un que l'autre ?
    Attention confusion. Les fichier à créer par socket sont les fichiers de données. Là tu parles des fichiers de journaux de transactions. Un seul fichier de journal

  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
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par janlouk Voir le message
    Dernière précision stp. Si je crée 4 fichiers de 1 GB et que les transactions auront besoin de 8 GB de place. Si j'active l'autogrowth sur les 4 fichiers, il va répartir les 8 GB sur les 4 fichiers, soit 2 GB par fichier ? Ou remplir plus un que l'autre ?
    Entre nous si vous savez à l'avance que ceci va produire 8 Go il serait masochiste d'imposer à SQL Server de faire de l'autogrowth qui pénalise fortement les performances en allongeant artificiellement la durée de certaines requêtes, provoque des blocages, de la contention, des attentes et peut être des verrous mortels !

    C'est un peu comme sis vous disiez, je vais gonfler mes pneus à moitié, afin d'éviter de gâcher de l'air et que vous partiez sur l'autoroute !!!

    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. Réponses: 5
    Dernier message: 11/11/2005, 09h47
  2. Réponses: 6
    Dernier message: 11/02/2005, 06h41
  3. [MFC] Limitation du nombre de fichiers...
    Par chronos dans le forum MFC
    Réponses: 5
    Dernier message: 02/06/2004, 10h40
  4. limitation nombre de fichiers
    Par bozo dans le forum MFC
    Réponses: 6
    Dernier message: 02/07/2003, 13h44
  5. Nombre de fichiers ouverts simultanément
    Par matrixfan dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/05/2002, 17h47

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