Une ou plusieurs colonnes d'une table peuvent-être ou non
significatives, selon la valeur, par exemple, d'une autre colonne.
Quelle différence, en performance ou en espace de stockage, y aura-t-il
à utiliser des valeurs nulles ou bien une valeur par défaut non nulle ?
ex : 1 champ de type booléen que je mets par défaut à FALSE plutôt qu'à
NULL.
Je n'ai pas trouvé d'information concernant l'enregistrement détaillé
d'une ligne dans les fichiers de la base. Les explications de la MSDN
s'arrêtent à la notion de page me semble-t-il.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred BROUARD
Bonjour,
Fred a écrit :
Bonjour,
Une ou plusieurs colonnes d'une table peuvent-être ou non significatives, selon la valeur, par exemple, d'une autre colonne. Quelle différence, en performance ou en espace de stockage, y aura-t-il à utiliser des valeurs nulles ou bien une valeur par défaut non nulle ?
commencez par comprendre que NULL n'est pas une valeur, c'est un marqueur comme NIL dans la programmtion à base de pointeurs. Par conséquent n'étant pas une valeur NULL n'est pas stocké dans l'espace réservé au stockage des données, mais à part. En fait il s'agit d'un bit dans la matrice de nullabilité de la ligne.
ex : 1 champ de type booléen que je mets par défaut à FALSE plutôt qu'à NULL.
La notion de "champ" n'éxiste pas non plus. Le champ est un élément visuel (champ opératoire du chirurgien, champ de saisie d'un formulaire, champ du laboureur...). Ici on parle de colonne. Une colonne booléenne utilise un bit, mais consomme un octet. S'il y a d'autres bit jusqu'à concurrence de 8 ils sont pris sur le même octets. Cela n'empêche pas la matrice de nullabilité en sus.
Je n'ai pas trouvé d'information concernant l'enregistrement détaillé d'une ligne dans les fichiers de la base. Les explications de la MSDN s'arrêtent à la notion de page me semble-t-il.
Oh que si, mais il faut gratter !
A +
Merci pour vos avis.
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Bonjour,
Fred a écrit :
Bonjour,
Une ou plusieurs colonnes d'une table peuvent-être ou non
significatives, selon la valeur, par exemple, d'une autre colonne.
Quelle différence, en performance ou en espace de stockage, y aura-t-il
à utiliser des valeurs nulles ou bien une valeur par défaut non nulle ?
commencez par comprendre que NULL n'est pas une valeur, c'est un
marqueur comme NIL dans la programmtion à base de pointeurs. Par
conséquent n'étant pas une valeur NULL n'est pas stocké dans l'espace
réservé au stockage des données, mais à part. En fait il s'agit d'un bit
dans la matrice de nullabilité de la ligne.
ex : 1 champ de type booléen que je mets par défaut à FALSE plutôt qu'à
NULL.
La notion de "champ" n'éxiste pas non plus. Le champ est un élément
visuel (champ opératoire du chirurgien, champ de saisie d'un formulaire,
champ du laboureur...). Ici on parle de colonne.
Une colonne booléenne utilise un bit, mais consomme un octet. S'il y a
d'autres bit jusqu'à concurrence de 8 ils sont pris sur le même octets.
Cela n'empêche pas la matrice de nullabilité en sus.
Je n'ai pas trouvé d'information concernant l'enregistrement détaillé
d'une ligne dans les fichiers de la base. Les explications de la MSDN
s'arrêtent à la notion de page me semble-t-il.
Oh que si, mais il faut gratter !
A +
Merci pour vos avis.
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Une ou plusieurs colonnes d'une table peuvent-être ou non significatives, selon la valeur, par exemple, d'une autre colonne. Quelle différence, en performance ou en espace de stockage, y aura-t-il à utiliser des valeurs nulles ou bien une valeur par défaut non nulle ?
commencez par comprendre que NULL n'est pas une valeur, c'est un marqueur comme NIL dans la programmtion à base de pointeurs. Par conséquent n'étant pas une valeur NULL n'est pas stocké dans l'espace réservé au stockage des données, mais à part. En fait il s'agit d'un bit dans la matrice de nullabilité de la ligne.
ex : 1 champ de type booléen que je mets par défaut à FALSE plutôt qu'à NULL.
La notion de "champ" n'éxiste pas non plus. Le champ est un élément visuel (champ opératoire du chirurgien, champ de saisie d'un formulaire, champ du laboureur...). Ici on parle de colonne. Une colonne booléenne utilise un bit, mais consomme un octet. S'il y a d'autres bit jusqu'à concurrence de 8 ils sont pris sur le même octets. Cela n'empêche pas la matrice de nullabilité en sus.
Je n'ai pas trouvé d'information concernant l'enregistrement détaillé d'une ligne dans les fichiers de la base. Les explications de la MSDN s'arrêtent à la notion de page me semble-t-il.
Oh que si, mais il faut gratter !
A +
Merci pour vos avis.
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Fred
Dans : news:%, Fred BROUARD disait :
Bonjour,
Bonjour,
En fait il s'agit d'un bit dans la matrice de nullabilité de la ligne. Une colonne booléenne utilise un bit, mais consomme un octet. S'il y a d'autres bit jusqu'à concurrence de 8 ils sont pris sur le même octets.
Merci, voilà quatre lignes qui m'éclairent bien et qui me permettent de déduire le mode de stockage des données dans une ligne.
-- Fred
Dans : news:%23J1GgcbWHHA.3652@TK2MSFTNGP04.phx.gbl,
Fred BROUARD disait :
Bonjour,
Bonjour,
En fait il s'agit d'un bit dans la matrice de nullabilité de la ligne.
Une colonne booléenne utilise un bit, mais consomme un octet. S'il y a
d'autres bit jusqu'à concurrence de 8 ils sont pris sur le même
octets.
Merci, voilà quatre lignes qui m'éclairent bien et qui me permettent de
déduire le mode de stockage des données dans une ligne.
En fait il s'agit d'un bit dans la matrice de nullabilité de la ligne. Une colonne booléenne utilise un bit, mais consomme un octet. S'il y a d'autres bit jusqu'à concurrence de 8 ils sont pris sur le même octets.
Merci, voilà quatre lignes qui m'éclairent bien et qui me permettent de déduire le mode de stockage des données dans une ligne.
-- Fred
Fred BROUARD
Julien Bonnier a écrit :
> Fred BROUARD disait : Une colonne booléenne utilise un bit, mais consomme un octet. S'il y a d'autres bit jusqu'à concurrence de 8 ils sont pris sur le même octets.
*D'autre bits ou dans la meme colonne ?*
Si vous créez une table comme ceci : CREATE TABLE T_BIT (BIT1 BIT, BIT2 BIT, BIT3 BIT, BIT4 BIT, BIT5 BIT) la longueur de la ligne sera de 1 octet.
Chaque colonne booléenne étant pris sur un bit de l'octet.
Si vous y ajouter :
ALTER TABLE T_BIT ADD BIT6 BIT ALTER TABLE T_BIT ADD BIT7 BIT ALTER TABLE T_BIT ADD BIT8 BIT
Il n'y a toujours qu'un seul octet
ALTER TABLE T_BIT ADD BIT9 BIT
Il y a maintenant deux octets.
A +
"Fred" <mailto: wrote in message news: > Dans : news:%, > Fred BROUARD disait : >> Bonjour, > > > Bonjour, > >> En fait il s'agit d'un bit dans la matrice de nullabilité de la ligne. >> Une colonne booléenne utilise un bit, mais consomme un octet. S'il y a >> d'autres bit jusqu'à concurrence de 8 ils sont pris sur le même >> octets. > > Merci, voilà quatre lignes qui m'éclairent bien et qui me permettent de > déduire le mode de stockage des données dans une ligne. > > > -- > Fred >
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Julien Bonnier a écrit :
> Fred BROUARD disait :
Une colonne booléenne utilise un bit, mais consomme un octet. S'il y a
d'autres bit jusqu'à concurrence de 8 ils sont pris sur le même octets.
*D'autre bits ou dans la meme colonne ?*
Si vous créez une table comme ceci :
CREATE TABLE T_BIT
(BIT1 BIT,
BIT2 BIT,
BIT3 BIT,
BIT4 BIT,
BIT5 BIT)
la longueur de la ligne sera de 1 octet.
Chaque colonne booléenne étant pris sur un bit de l'octet.
Si vous y ajouter :
ALTER TABLE T_BIT
ADD BIT6 BIT
ALTER TABLE T_BIT
ADD BIT7 BIT
ALTER TABLE T_BIT
ADD BIT8 BIT
Il n'y a toujours qu'un seul octet
ALTER TABLE T_BIT
ADD BIT9 BIT
Il y a maintenant deux octets.
A +
"Fred" <foleide@libre.france <mailto:foleide@libre.france>> wrote in
message news:u1EHaHlWHHA.2256@TK2MSFTNGP02.phx.gbl...
> Dans : news:%23J1GgcbWHHA.3652@TK2MSFTNGP04.phx.gbl,
> Fred BROUARD disait :
>> Bonjour,
>
>
> Bonjour,
>
>> En fait il s'agit d'un bit dans la matrice de nullabilité de la ligne.
>> Une colonne booléenne utilise un bit, mais consomme un octet. S'il y a
>> d'autres bit jusqu'à concurrence de 8 ils sont pris sur le même
>> octets.
>
> Merci, voilà quatre lignes qui m'éclairent bien et qui me permettent de
> déduire le mode de stockage des données dans une ligne.
>
>
> --
> Fred
>
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
> Fred BROUARD disait : Une colonne booléenne utilise un bit, mais consomme un octet. S'il y a d'autres bit jusqu'à concurrence de 8 ils sont pris sur le même octets.
*D'autre bits ou dans la meme colonne ?*
Si vous créez une table comme ceci : CREATE TABLE T_BIT (BIT1 BIT, BIT2 BIT, BIT3 BIT, BIT4 BIT, BIT5 BIT) la longueur de la ligne sera de 1 octet.
Chaque colonne booléenne étant pris sur un bit de l'octet.
Si vous y ajouter :
ALTER TABLE T_BIT ADD BIT6 BIT ALTER TABLE T_BIT ADD BIT7 BIT ALTER TABLE T_BIT ADD BIT8 BIT
Il n'y a toujours qu'un seul octet
ALTER TABLE T_BIT ADD BIT9 BIT
Il y a maintenant deux octets.
A +
"Fred" <mailto: wrote in message news: > Dans : news:%, > Fred BROUARD disait : >> Bonjour, > > > Bonjour, > >> En fait il s'agit d'un bit dans la matrice de nullabilité de la ligne. >> Une colonne booléenne utilise un bit, mais consomme un octet. S'il y a >> d'autres bit jusqu'à concurrence de 8 ils sont pris sur le même >> octets. > > Merci, voilà quatre lignes qui m'éclairent bien et qui me permettent de > déduire le mode de stockage des données dans une ligne. > > > -- > Fred >
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Fred BROUARD
Julien Bonnier a écrit :
Mais si j'ai seulement une colone Bit, est-ce que ca prend 1 Byte ou 1 Bit dans ma base de donnees?
1 octet (soit un Byte, soit 8 bits)
a +
"Fred BROUARD" <mailto: wrote in message news:u8zFnM% > Julien Bonnier a écrit : >> > Fred BROUARD disait : >> Une colonne booléenne utilise un bit, mais consomme un octet. S'il y a >> d'autres bit jusqu'à concurrence de 8 ils sont pris sur le même octets. >> >> *D'autre bits ou dans la meme colonne ?* > > Si vous créez une table comme ceci : > CREATE TABLE T_BIT > (BIT1 BIT, > BIT2 BIT, > BIT3 BIT, > BIT4 BIT, > BIT5 BIT) > la longueur de la ligne sera de 1 octet. > > Chaque colonne booléenne étant pris sur un bit de l'octet. > > Si vous y ajouter : > > ALTER TABLE T_BIT > ADD BIT6 BIT > ALTER TABLE T_BIT > ADD BIT7 BIT > ALTER TABLE T_BIT > ADD BIT8 BIT > > Il n'y a toujours qu'un seul octet > > ALTER TABLE T_BIT > ADD BIT9 BIT > > Il y a maintenant deux octets. > > > A + >> >> >> >> "Fred" <mailto: <mailto: wrote in >> message news: >> > Dans : news:%, >> > Fred BROUARD disait : >> >> Bonjour, >> > >> > >> > Bonjour, >> > >> >> En fait il s'agit d'un bit dans la matrice de nullabilité de la ligne. >> >> Une colonne booléenne utilise un bit, mais consomme un octet. S'il y a >> >> d'autres bit jusqu'à concurrence de 8 ils sont pris sur le même >> >> octets. >> > >> > Merci, voilà quatre lignes qui m'éclairent bien et qui me permettent de >> > déduire le mode de stockage des données dans une ligne. >> > >> > >> > -- >> > Fred >> > > > > -- > Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL > Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com > Audit, conseil, expertise, formation, modélisation, tuning, optimisation > ********************* http://www.datasapiens.com ***********************
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Julien Bonnier a écrit :
Mais si j'ai seulement une colone Bit, est-ce que ca prend 1 Byte ou 1
Bit dans ma base de donnees?
1 octet (soit un Byte, soit 8 bits)
a +
"Fred BROUARD" <brouardf@club-internet.fr
<mailto:brouardf@club-internet.fr>> wrote in message
news:u8zFnM%23WHHA.4880@TK2MSFTNGP05.phx.gbl...
> Julien Bonnier a écrit :
>> > Fred BROUARD disait :
>> Une colonne booléenne utilise un bit, mais consomme un octet. S'il y a
>> d'autres bit jusqu'à concurrence de 8 ils sont pris sur le même octets.
>>
>> *D'autre bits ou dans la meme colonne ?*
>
> Si vous créez une table comme ceci :
> CREATE TABLE T_BIT
> (BIT1 BIT,
> BIT2 BIT,
> BIT3 BIT,
> BIT4 BIT,
> BIT5 BIT)
> la longueur de la ligne sera de 1 octet.
>
> Chaque colonne booléenne étant pris sur un bit de l'octet.
>
> Si vous y ajouter :
>
> ALTER TABLE T_BIT
> ADD BIT6 BIT
> ALTER TABLE T_BIT
> ADD BIT7 BIT
> ALTER TABLE T_BIT
> ADD BIT8 BIT
>
> Il n'y a toujours qu'un seul octet
>
> ALTER TABLE T_BIT
> ADD BIT9 BIT
>
> Il y a maintenant deux octets.
>
>
> A +
>>
>>
>>
>> "Fred" <foleide@libre.france <mailto:foleide@libre.france>
<mailto:foleide@libre.france>> wrote in
>> message news:u1EHaHlWHHA.2256@TK2MSFTNGP02.phx.gbl...
>> > Dans : news:%23J1GgcbWHHA.3652@TK2MSFTNGP04.phx.gbl,
>> > Fred BROUARD disait :
>> >> Bonjour,
>> >
>> >
>> > Bonjour,
>> >
>> >> En fait il s'agit d'un bit dans la matrice de nullabilité de la
ligne.
>> >> Une colonne booléenne utilise un bit, mais consomme un octet.
S'il y a
>> >> d'autres bit jusqu'à concurrence de 8 ils sont pris sur le même
>> >> octets.
>> >
>> > Merci, voilà quatre lignes qui m'éclairent bien et qui me
permettent de
>> > déduire le mode de stockage des données dans une ligne.
>> >
>> >
>> > --
>> > Fred
>> >
>
>
> --
> Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
> Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
> Audit, conseil, expertise, formation, modélisation, tuning, optimisation
> ********************* http://www.datasapiens.com ***********************
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Mais si j'ai seulement une colone Bit, est-ce que ca prend 1 Byte ou 1 Bit dans ma base de donnees?
1 octet (soit un Byte, soit 8 bits)
a +
"Fred BROUARD" <mailto: wrote in message news:u8zFnM% > Julien Bonnier a écrit : >> > Fred BROUARD disait : >> Une colonne booléenne utilise un bit, mais consomme un octet. S'il y a >> d'autres bit jusqu'à concurrence de 8 ils sont pris sur le même octets. >> >> *D'autre bits ou dans la meme colonne ?* > > Si vous créez une table comme ceci : > CREATE TABLE T_BIT > (BIT1 BIT, > BIT2 BIT, > BIT3 BIT, > BIT4 BIT, > BIT5 BIT) > la longueur de la ligne sera de 1 octet. > > Chaque colonne booléenne étant pris sur un bit de l'octet. > > Si vous y ajouter : > > ALTER TABLE T_BIT > ADD BIT6 BIT > ALTER TABLE T_BIT > ADD BIT7 BIT > ALTER TABLE T_BIT > ADD BIT8 BIT > > Il n'y a toujours qu'un seul octet > > ALTER TABLE T_BIT > ADD BIT9 BIT > > Il y a maintenant deux octets. > > > A + >> >> >> >> "Fred" <mailto: <mailto: wrote in >> message news: >> > Dans : news:%, >> > Fred BROUARD disait : >> >> Bonjour, >> > >> > >> > Bonjour, >> > >> >> En fait il s'agit d'un bit dans la matrice de nullabilité de la ligne. >> >> Une colonne booléenne utilise un bit, mais consomme un octet. S'il y a >> >> d'autres bit jusqu'à concurrence de 8 ils sont pris sur le même >> >> octets. >> > >> > Merci, voilà quatre lignes qui m'éclairent bien et qui me permettent de >> > déduire le mode de stockage des données dans une ligne. >> > >> > >> > -- >> > Fred >> > > > > -- > Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL > Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com > Audit, conseil, expertise, formation, modélisation, tuning, optimisation > ********************* http://www.datasapiens.com ***********************
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************