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 10/10/2011, 14h15   #1
Membre régulier
 
Inscription : novembre 2005
Messages : 462
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 462
Points : 75
Points : 75
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 :
Citation:
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
genio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 14h35   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
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/

Citation:
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.

Citation:
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/

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

Citation:
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.

Citation:
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
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 15h39   #3
Membre régulier
 
Inscription : novembre 2005
Messages : 462
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 462
Points : 75
Points : 75
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 ?
genio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 19h11   #4
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
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 :
1
2
CREATE TABLE MA_TABLE (...) ON [DATA]
CREATE INDEX MON_INDEX (...) ON [INDEX]
Citation:
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)

Citation:
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...

Citation:
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
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 10h54   #5
Membre régulier
 
Inscription : novembre 2005
Messages : 462
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 462
Points : 75
Points : 75
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 ?
genio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 11h22   #6
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
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
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 12h21   #7
Membre régulier
 
Inscription : novembre 2005
Messages : 462
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 462
Points : 75
Points : 75
Excusez si je suis un peu neuneu mais y'a un truc que je ne comprends pas...
1°) Dans mon script de création de base de début de post, dans quel filegroup se trouve mon fichier MABASE-data, et s'il se trouve dans le filegroup DATA, dans quel filegroup se trouve le fichier MABASE_DEV'...
En fait, je n'arrive pas à créer ma database avec seulement un filegroup INDEX et un filegroup DATA (je suis en version 2000 !)

Voici mon Script :

Citation:
USE [master]
GO
CREATE DATABASE [Mabase] ON
PRIMARY
(NAME = N'Mabase_data1',
FILENAME = N'd:\MSSQL\data\Mabase_Data1.MDF' ,
SIZE = 100MB ,
FILEGROWTH = 10MB ),
FILEGROUP [DATA]
(NAME = N'Mabase_index',
FILENAME = N'E:\MSSQL\data\Mabase_Index.MDF' ,
SIZE = 100MB ,
FILEGROWTH = 10MB ),
FILEGROUP [INDEX]

LOG ON
( NAME = N'Mabase_log',
FILENAME = N'd:\MSSQL\data\Mabase_log.ldf' ,
SIZE = 10240KB ,
FILEGROWTH = 10%)
il me jette en :
Citation:
Msg*2812, Niveau*16, État*62, Ligne*1
Impossible de trouver la procédure stockée 'FILEGROUP'.
Pourquoi ?

2°) Autre question : Dans le cas d'une database créée avec des filegroup, si l'on ne met pas de destination lors de la création d'une table : CREATE TABLE MA_TABLE (...) ON [DATA] ... ou va se nicher MA_TABLE ?

merci encore pour votre patience...
genio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 12h44   #8
Membre régulier
 
Inscription : novembre 2005
Messages : 462
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 462
Points : 75
Points : 75
Pour la question 2°) il faut lire :
2°) Autre question : Dans le cas d'une database créée avec des filegroup, si l'on ne met pas de destination lors de la création d'une table : CREATE TABLE MA_TABLE (...) sans ON [DATA] ... ou va se nicher MA_TABLE ?
genio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 15h29   #9
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Je confirme, vous êtes neuneu, car vous ne lisez pas les messages que l'on vous donne. Tout y est déjà mentionné deux fois !!!!

Alors puisque vous ne savez ou voulez pas lire, voici une image tiré d'un slide d'un des cours d'admin que je donne à Orsys...
http://www.developpez.net/forums/att...1&d=1318339764

Peut être allez vous enfin comprendre...

Pour votre erreur de syntaxe c'est normal. Il manque la description d'un fichier pour le FILEGROUP INDEX !

Lisez la syntaxe dans l'aide en ligne..
C'est :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
CREATE DATABASE <Nom_Base>
    <nom_filegroup1>   (<description fichier 11>)
                    [,  <description fichier 12>) )
                    [,  <description fichier 13>) )
                     ...
                    [,  <description fichier 1N>) )
 
  [, <nom_filegroup2>  (<description fichier 21>)
                    [,  <description fichier 22>) )
                    [,  <description fichier 23>) )
                     ...
                    [,  <description fichier 2N>) )
 
  ]
  [, <nom_filegroup2>  (<description fichier 31>)
                    [,  <description fichier 32>) )
                    [,  <description fichier 33>) )
                     ...
                    [,  <description fichier 3N>) )
 
  ]
  ...
  [, <nom_filegroupN>  (<description fichier N1>)
                    [,  <description fichier N2>) )
                    [,  <description fichier N3>) )
                     ...
                    [,  <description fichier NM>) )
 
  ]
 
LOG ON (<description fichier L1>)
    [,  <description fichier L2>) )
    [,  <description fichier L3>) )
    ...
    [,  <description fichier LN>) )
Le mieux serait quand même de prendre un cours, car là vous perdez beaucoup de temps et risquez de faire de GROSSES bêtises !


Citation:
2°) Autre question : Dans le cas d'une database créée avec des filegroup, si l'on ne met pas de destination lors de la création d'une table : CREATE TABLE MA_TABLE (...) ON [DATA] ... ou va se nicher MA_TABLE ?
Dans le groupe de fichier par défaut. Si vous ne l'avez pas précisé c'est toujours le groupe de fichier PRIMARY qui est le groupe de fichier par défaut, et PRIMARY est un groupe de fichier obligatoire (il contient certaines tables systèmes importantes, telle que la liste des fichiers de la base !).

A +
Images attachées
Type de fichier : jpg SQL_server_file_filegroup.jpg (223,4 Ko, 12 affichages)
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 16h06   #10
Membre régulier
 
Inscription : novembre 2005
Messages : 462
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 462
Points : 75
Points : 75
Coooolllllllll !
Ma question venait du fait que chez nous, nous n'avons pas de database utilisant des filegroup... Toutes nos bases sont déclinées avec 1 fichier PRIMARY et un fichier LOG... mais ce sont avant tout des bases 'métier'...


Voilà...


Merci néanmoins pour vos réponses...
genio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 16h14   #11
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
L'un n'empêche pas l'autre... Bien au contraire !

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 16h22   #12
Membre régulier
 
Inscription : novembre 2005
Messages : 462
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 462
Points : 75
Points : 75
Si je peux ... une dernière... car je n'ai pas trouvé de réponse sur Internet...
Dans le cas ou je crée un 'DATA' à 20 Gigas, un 'INDEX' à 8 GIGA... à combien dois-je tailler mon fichier PRIMARY ... en sachant que nous travaillons bien, c'est à dire que nos tables et nos index sont bien créés dans les bons 'containers'...
Si c'est juste pour travailler en correspondance avec la Master, peut-être faut-il la tailler petite non ?
genio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 16h35   #13
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Que voulez-vous dire par master ?????

PRIMARY n'a pas besoin d'un grand espace de stockage. Quelques centaines de Mo seront en général suffisant.
Personnellement je met 250 Mo.

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 16h42   #14
Membre régulier
 
Inscription : novembre 2005
Messages : 462
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 462
Points : 75
Points : 75
Merci encore...
genio est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h32.


 
 
 
 
Partenaires

Hébergement Web