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

MS SQL Server Discussion :

Création d'une database


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    CMA-CGM
    Inscrit en
    Novembre 2005
    Messages
    531
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : CMA-CGM
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2005
    Messages : 531
    Par défaut Création d'une database
    Bonjour à tous...
    J'ai choppé un script de création de base Sql/Server et je me pose des questions :
    Le voici :
    CREATE DATABASE [Mabase] ON
    PRIMARY
    ( NAME = N'MABASE_DEV',
    FILENAME = N'E:\MABASE_DEV\DATABASE\MABASE_DEV_SYS.mdf' ,
    SIZE = 100MB ,
    FILEGROWTH = 10MB ),
    FILEGROUP [DATA]
    ( NAME = N'Mabase-data',
    FILENAME = N'E:\MABASE_DEV\DATABASE\MABASE_DEV_DATA.mdf' ,
    SIZE = 100MB ,
    FILEGROWTH = 10MB ),
    FILEGROUP [INDEX]
    ( NAME = N'Mabase_index',
    FILENAME = N'E:\MABASE_DEV\DATABASE\MABASE_DEV_INDEX.mdf' ,
    SIZE = 100MB ,
    FILEGROWTH = 10MB )
    LOG ON
    ( NAME = N'MABASE_log',
    FILENAME = N'E:\MABASE_DEV\DATABASE\MABASE_DEV_log.ldf' ,
    SIZE = 10240KB ,
    FILEGROWTH = 10%)
    Les questions que je me pose sont les suivantes :

    1°) Que représente MABASE_DEV => est-ce la taille de la master

    2°) Quand je veux créer une nouvelle base à partir d'une base existante, studio me donne un script de création avec deux fichiers : MDf et LDF => OK
    Qu'apporte de plus le script que je vous ai présenté plus haut ?

    3°) Par exemple, pour une database qui ne va pas dépasser 10 gigas, que faut-il mettre en SIZE initiale... (en sachant que je n'ai pas de problème d'espace disque)

    4°) Mettre un FILEGROWTH à 10 % de la base initiale est-elle une bonne chose...

    5°) S'il y a eu beaucoup de page rajoutées, donc un filegrowth qui alloue sans cesse des pages de 10 %, cela ne va t'il pas désorganiser ma base ?

    6°) La taille de la base log doit-elle être toujours la même ...

    Merci pour vos réponses

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    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 998
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par genio Voir le message
    1°) Que représente MABASE_DEV => est-ce la taille de la master
    Une base peut être constituée de plusieurs fichiers par exemple pour ventiler les IO dans les écritures et les lectures. SQL Server travaillant nativement en parallèle, chaque fichier sera remplie d'une partie des lignes de la table. Le script proposé montre 3 fichier physiques associé à 3 fichier logique (nom interne du fichier dans la base) et chacun des fichiers est associé à une espace de stockage (FILEGROUP).
    Master est une base système qui n'a rien à voir avec la base que vous créez.
    A lire sur le sujet http://blog.developpez.com/sqlpro/p7...-ms-sql-serve/

    2°) Quand je veux créer une nouvelle base à partir d'une base existante, studio me donne un script de création avec deux fichiers : MDf et LDF => OK
    Qu'apporte de plus le script que je vous ai présenté plus haut ?
    La ventilation des IO pour diviser par n les temps d'écriture et de lecture, N étant le nombre de fichier, mais à condition que chacun soit sur un disque physique indépendant.

    3°) Par exemple, pour une database qui ne va pas dépasser 10 gigas, que faut-il mettre en SIZE initiale... (en sachant que je n'ai pas de problème d'espace disque)
    Au moins 10 Go pour les data et 3 pour les transactions, sinon vous aurez des opérations de croissance préjudiciable aux performances. A lire : http://blog.developpez.com/sqlpro/p5...fichiers-et-t/

    4°) Mettre un FILEGROWTH à 10 % de la base initiale est-elle une bonne chose...
    Non... lisez l'article en lien ci avant.

    5°) S'il y a eu beaucoup de page rajoutées, donc un filegrowth qui alloue sans cesse des pages de 10 %, cela ne va t'il pas désorganiser ma base ?
    Oui, lisez l'article en lien ci avant.

    6°) La taille de la base log doit-elle être toujours la même ...
    LOG n'est pas une base, c'est dans la base l’espace de stockage des transactions. On appelle ce fichier le journal des transactions. Vous devez aussi le dimensionner correctement.

    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/ * * * * *

  3. #3
    Membre éclairé
    Homme Profil pro
    CMA-CGM
    Inscrit en
    Novembre 2005
    Messages
    531
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : CMA-CGM
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2005
    Messages : 531
    Par défaut
    Merci Frédéric pour vos saines lectures...
    En fait pour ma première question je me suis mal exprimé...
    1°) Ok pour les 'containers' DATA pour les données et INDEX pour les index sur deux disques distincts pour ventiler les IO.. cela est normal !
    Je voulais juste savoir pourquoi, dans l'exemple cité, il semble qu'il y ait 2 container de 'DATA' : MABASE_DEV' et MA_BASE_DATA ? Pourquoi ?

    2°) Imaginons quand même que nous avons taillé trop petit le fichier DATA => OK (merci pour les liens !)
    A combien détermineriez vous le % de FILEGROWTH pour une database de 10 GIGAS par exemple ?

    3°) Ok aussi pour la 'base' log, je sais que c'est le journal des transactions (j'me suis encore mal explicationné !) ... Comment faire pour bien la dimensionner ? Faut-il allouer une taille égale à un pourcentage lambda des databases INDEX et DATA ?

    4°) Quand vous dites : 10 Gigas pour les datas et 3 pour les 'transactions', les 'transactions' sont elle les fichiers logs ?

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    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 998
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par genio Voir le message
    Merci Frédéric pour vos saines lectures...
    En fait pour ma première question je me suis mal exprimé...
    1°) Ok pour les 'containers' DATA pour les données et INDEX pour les index sur deux disques distincts pour ventiler les IO.. cela est normal !
    Je voulais juste savoir pourquoi, dans l'exemple cité, il semble qu'il y ait 2 container de 'DATA' : MABASE_DEV' et MA_BASE_DATA ? Pourquoi ?
    Le fait des les intituler DATA et INDEX n'a pas d’importante, mais à la création de la table ou de l'index, vous pourrez préciser où table ou l'index sera stocké par le biais de la clsue ON.
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE TABLE MA_TABLE (...) ON [DATA]
    CREATE INDEX MON_INDEX (...) ON [INDEX]
    2°) Imaginons quand même que nous avons taillé trop petit le fichier DATA => OK (merci pour les liens !)
    A combien détermineriez vous le % de FILEGROWTH pour une database de 10 GIGAS par exemple ?
    JAMAIS en % c'est mauvais. En Ko c'est suffisant. par exemple entre 64 Ko (petites bases) et 20 Mo (grosses bases)

    3°) Ok aussi pour la 'base' log, je sais que c'est le journal des transactions (j'me suis encore mal explicationné !) ... Comment faire pour bien la dimensionner ? Faut-il allouer une taille égale à un pourcentage lambda des databases INDEX et DATA ?
    Sujet très difficile. MS préconsie 25 à 33 % du volume global des données. Donc si base = 10 Go, alors JT = 3 GO...

    4°) Quand vous dites : 10 Gigas pour les datas et 3 pour les 'transactions', les 'transactions' sont elle les fichiers logs ?
    Oui,
    Un journal de transaction (JT) est constitué d'au moins un fichier. Le terme LOG est mal adapté (en anglais un même mot peut avoir de multiples significations). Un journal de transaction ne contient pas de données exploitable humainement !

    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/ * * * * *

  5. #5
    Membre éclairé
    Homme Profil pro
    CMA-CGM
    Inscrit en
    Novembre 2005
    Messages
    531
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : CMA-CGM
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2005
    Messages : 531
    Par défaut
    Merci encore pour vos réponses...
    J'ai encore une incompréhension sur le fichier MABASE_DEV, car je me demande à quoi elle sert... je pourrais très bien m'en séparer d'autant plus que je ne pourrait jamais faire : CREATE TABLE MA_TABLE (...) ON [quoi ?]...
    Ou alors rajouter un filegroup TOTO :
    CREATE DATABASE [Mabase] ON
    PRIMARY
    ( FILEGROUP [TOTO]
    NAME = N'MABASE_DEV',
    FILENAME = N'E:\MABASE_DEV\DATABASE\MABASE_DEV_SYS.mdf' ,
    SIZE = 100MB ,
    FILEGROWTH = 10MB )...
    me trompe-je ?

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    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 998
    Billets dans le blog
    6
    Par défaut
    Lorsque l'on met plusieurs fichiers dans un même FILEGROUP, vous ne pouvez effectivement pas préciser que votre table ira dans le fichier 1, ou 2 ou 3.....
    Vous ne pouvez préciser la destination de la table ou de l'index qu'au niveau du storage qui est dans SQL Server le FILEGROUP.

    Mais, en plaçant plusieurs fichiers dans un même FILEGROUP, SQL Server répartit les lignes des tables alternativement dans l'un et l'autre fichier.
    Si ces fichiers sont sur deux disques différents et physiquement indépendants, alors la vitesse d'insertion des lignes sera multiplié par 2. Avec 3 fichier et donc 3 disques physiques et indépendants, elle sera multiplié par 3.. etc !

    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. Création une DATABASE
    Par user2000 dans le forum Android
    Réponses: 3
    Dernier message: 16/12/2010, 13h40
  2. Création d'une database à partir de datafile récupérés
    Par patgabjoe dans le forum Administration
    Réponses: 20
    Dernier message: 06/02/2009, 15h30
  3. création d'une database sous informix
    Par djogbenyuie dans le forum Informix
    Réponses: 2
    Dernier message: 24/04/2008, 01h27
  4. Réponses: 6
    Dernier message: 23/02/2007, 16h27
  5. [vb.net]création d'une nouvelle database
    Par new_wave dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/05/2006, 16h56

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