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 22/02/2011, 16h04   #1
Modérateur
 
Avatar de Jinroh77
 
Homme Alexandre Chemla
Consultant en Business Intelligence
Inscription : février 2006
Messages : 1 771
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Chemla
Âge : 28
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : février 2006
Messages : 1 771
Points : 1 834
Points : 1 834
Par défaut Réflexion : Colonne calculé de cheksum

Bonjour à tous,
J'arrive chez un client qui alimente une base décisionnelle.
Dans les tables de dim, je trouve dans quelques unes une colonne qui a pour valeur par défaut un calcul de cheksum sur les autres colonnes de la table.

Ok ça permet d'identifier de manière unique une ligne de données, mais ça me parait très lourd pour chaque insert ???
Jinroh77 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 16h32   #2
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
Quelle est ta question?
Ça semble être un dispositif pour valider qu'un ligne n'a pas été modifiée.
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 16h41   #3
Modérateur
 
Avatar de Jinroh77
 
Homme Alexandre Chemla
Consultant en Business Intelligence
Inscription : février 2006
Messages : 1 771
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Chemla
Âge : 28
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : février 2006
Messages : 1 771
Points : 1 834
Points : 1 834
Ma question : je suis d'accord avec le besoin : identifier une ligne de manière unique. Mais les moyens mis en place par ce calcul du checksum me parait particulièrement lourd.
Le checksum est calculé à l'insertion où uniquement au select ?
Jinroh77 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 16h55   #4
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
Citation:
Envoyé par Jinroh77 Voir le message
Le checksum est calculé à l'insertion où uniquement au select ?
Bonne question.
Regarde s'il y a un trigger ou si c'est une colonne calculée.
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 16h58   #5
Modérateur
 
Avatar de Jinroh77
 
Homme Alexandre Chemla
Consultant en Business Intelligence
Inscription : février 2006
Messages : 1 771
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Chemla
Âge : 28
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : février 2006
Messages : 1 771
Points : 1 834
Points : 1 834
C'est bien une formule, non persistante.
Ca veut donc dire qu'il n'y a aucun surplus tant que la colonne n'est pas sélectionnée ?
Jinroh77 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 21h21   #6
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
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 723
Points : 6 844
Points : 6 844
En général les colonnes CHECKSUM permettent de remplacer les colonnes de taille importante dans des contraintes d'unicités ou index pour des raisons de performance.

Le checksum est uniquement calculé à l'insertion des données dans votre cas.

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 22h48   #7
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 950
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 950
Points : 17 769
Points : 17 769
et il n'est pas forcément unique car les risques de télescopage sont important.

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 23/02/2011, 07h25   #8
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
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 723
Points : 6 844
Points : 6 844
Tu as raison SQLPro, effectivement, la solution de l'unicité est limitée ici car CHECKSUM ne délivre qu'un entier (4 octets).

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 10h02   #9
Modérateur
 
Avatar de Jinroh77
 
Homme Alexandre Chemla
Consultant en Business Intelligence
Inscription : février 2006
Messages : 1 771
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Chemla
Âge : 28
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : février 2006
Messages : 1 771
Points : 1 834
Points : 1 834
Etant dans le cadre d'une base décisionnelle, la colonne calculée checksum est présente dans la source, dans l'entrepôt de données et on fait une comparaison dessus.

Si cette colonne checksum est calculée à l'insertion, que le calcul d'un checksum est lourd, cela veut dire qu'ils perdent beaucoup de temps au chargement.
Jinroh77 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 21h58   #10
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
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 723
Points : 6 844
Points : 6 844
Si la comparaison s'effectue avant insertion des données (ce qui est logique) pourquoi recalculer à la volée un CHECKSUM dans les tables de dimension ?

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 10h02   #11
Modérateur
 
Avatar de Jinroh77
 
Homme Alexandre Chemla
Consultant en Business Intelligence
Inscription : février 2006
Messages : 1 771
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Chemla
Âge : 28
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : février 2006
Messages : 1 771
Points : 1 834
Points : 1 834
Ils effectuent les alimentations par procédures stockées.
Ils font donc une jointure entre la valeur de checksum qu'ils viennent de calculer dans leur base de staging et celle dans l'entrepôt.
Jinroh77 est actuellement 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 11h25.


 
 
 
 
Partenaires

Hébergement Web