|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 771 ![]() |
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 ??? |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 520 ![]() |
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. |
|
|
00
|
|
|
#3 |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 771 ![]() |
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 ? |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 520 ![]() |
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. |
|
|
00
|
|
|
#5 |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 771 ![]() |
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 ? |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
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. ++ |
|
00
|
|
|
#7 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 950 ![]() |
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 * * * * * |
|
00
|
|
|
#8 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Tu as raison SQLPro, effectivement, la solution de l'unicité est limitée ici car CHECKSUM ne délivre qu'un entier (4 octets).
++ |
|
00
|
|
|
#9 |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 771 ![]() |
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. |
|
|
00
|
|
|
#10 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
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 ?
++ |
|
00
|
|
|
#11 |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 771 ![]() |
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. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com