Discussione:
checksum....
(troppo vecchio per rispondere)
Marita
2003-09-29 09:22:19 UTC
Permalink
... vorrei usarla!! qualcuno sa indicarmi della
documentazione per l'utilizzo di tale funzione all'interno
di un Datawarehouse? Ad esempio
1 -- è sensato pernsare di utilizzarla come chiave
surrogata nelle tabelle dei fatti?
2-- Quanto è veloce applicarla a più campi per confrontare
eventuali variazioni di dati in record già portati nel
Datawarehouse ma modificati ?
grazie a chiunque sappia darmi indicazioni e buona
settimana
Marita
Luca Bianchi
2003-09-29 09:36:20 UTC
Permalink
Post by Marita
... vorrei usarla!! qualcuno sa indicarmi della
documentazione per l'utilizzo di tale funzione all'interno
di un Datawarehouse? Ad esempio
1 -- è sensato pernsare di utilizzarla come chiave
surrogata nelle tabelle dei fatti?
2-- Quanto è veloce applicarla a più campi per confrontare
eventuali variazioni di dati in record già portati nel
Datawarehouse ma modificati ?
...la funzione CHECKSUM è documentata in maniera alquanto esaustiva sul Book
On Line... Per quanto riguarda i suoi possibili utilizzi, non la vedo una
candidata ad essere una chiave surrogata mentre per il secondo punto
(controllo su record modificati) è da valutarne l'efficienza. Considera che
in questo caso dovresti eseguire un controllo sul campo CHECKSUM attualmente
valorizzato con il nuovo valore che implica COMUNQUE la lettura dei dati
della tabella di origine... In sostanza non so se possa essere più
efficiente di un controllo/ricerca dei dati modificati in quanto andrebbero
eseguite delle prove caso per caso. L'unico utilizzo in cui ho trovato
valido utilizzare la funzione CHECKSUM è quella descritta nell'esempio del
BOL e nel mio articolo sull'indicizzazione dei dati che puoi leggere al link

http://italy.mvps.org/MVPs/lbianchi/art_Indici.htm
Post by Marita
grazie a chiunque sappia darmi indicazioni e buona
settimana
Buona settimana anche a te...
Post by Marita
Marita
Ciao
--
Luca Bianchi
Microsoft MVP - SQL Server
http://mvp.support.microsoft.com
http://italy.mvps.org
Marita
2003-09-30 10:44:53 UTC
Permalink
Ho letto l'articolo e l'ho trovato molto
interessante..giusto prima dell'estate un collega mi
chiedeva di indicizzare un campo titolo definito varchar
(80) e io gli ho dato del pazzo :-)) ... ora potrò dargli
una soluzione !!! Non ho capito però perchè fai un esempio
con una select del tipo

SELECT *
FROM Titles
WHERE chkTitle = CHECKSUM(VoceDaRicercare)
AND Title = VoceDaRicercare

cioè con doppio filtro su chkTitle e Title : c'è la
possibilità che chkTitle non sia univoco ( a parte
maiuscolo e minuscolo) ?
-----Messaggio originale---
Post by Marita
... vorrei usarla!! qualcuno sa indicarmi della
documentazione per l'utilizzo di tale funzione
all'interno
Post by Marita
di un Datawarehouse? Ad esempio
1 -- è sensato pernsare di utilizzarla come chiave
surrogata nelle tabelle dei fatti?
2-- Quanto è veloce applicarla a più campi per
confrontare
Post by Marita
eventuali variazioni di dati in record già portati nel
Datawarehouse ma modificati ?
....la funzione CHECKSUM è documentata in maniera
alquanto esaustiva sul Book
On Line... Per quanto riguarda i suoi possibili utilizzi,
non la vedo una
candidata ad essere una chiave surrogata mentre per il
secondo punto
(controllo su record modificati) è da valutarne
l'efficienza. Considera che
in questo caso dovresti eseguire un controllo sul campo
CHECKSUM attualmente
valorizzato con il nuovo valore che implica COMUNQUE la
lettura dei dati
della tabella di origine... In sostanza non so se possa
essere più
efficiente di un controllo/ricerca dei dati modificati in
quanto andrebbero
eseguite delle prove caso per caso. L'unico utilizzo in
cui ho trovato
valido utilizzare la funzione CHECKSUM è quella descritta
nell'esempio del
BOL e nel mio articolo sull'indicizzazione dei dati che
puoi leggere al link
http://italy.mvps.org/MVPs/lbianchi/art_Indici.htm
Post by Marita
grazie a chiunque sappia darmi indicazioni e buona
settimana
Buona settimana anche a te...
Post by Marita
Marita
Ciao
--
Luca Bianchi
Microsoft MVP - SQL Server
http://mvp.support.microsoft.com
http://italy.mvps.org
.
Luca Bianchi
2003-09-30 11:32:35 UTC
Permalink
Post by Marita
Ho letto l'articolo e l'ho trovato molto
interessante..giusto prima dell'estate un collega mi
chiedeva di indicizzare un campo titolo definito varchar
(80) e io gli ho dato del pazzo :-))
...come linea di principio non hai fatto male a dargli del pazzo... :-)
Post by Marita
... ora potrò dargli
una soluzione !!! Non ho capito però perchè fai un esempio
con una select del tipo
SELECT *
FROM Titles
WHERE chkTitle = CHECKSUM(VoceDaRicercare)
AND Title = VoceDaRicercare
cioè con doppio filtro su chkTitle e Title : c'è la
possibilità che chkTitle non sia univoco ( a parte
maiuscolo e minuscolo) ?
Come riportato dal Book On Line

===========================
Use the index in a SELECT query. Add a second search
condition to catch stray cases where checksums match,
but the values are not identical.

===========================

Una stringa in maiuscolo e la stessa in minuscolo producono valori checksum
differenti solo se il set di caratteri è di tipo CASE SENSITIVE

Ciao
--
Luca Bianchi
Microsoft MVP - SQL Server
http://mvp.support.microsoft.com
http://italy.mvps.org
Continua a leggere su narkive:
Loading...