[70-431] Indici clustered: ordinano i dati fisicamente oppure no?

Al corso di Basi di Dati ho studiato che i record di una tabella con un indice clustered sono fisicamente ordinati sulla base del valore dell'indice stesso. A pagina 154 del Self-Paced Training Kit per l'esame 70-431, invece, si dice che l'ordinamento è solo logico, dal momento che mantere le pagine del database ordinate su disco richiederebbe un'attività troppo onerosa per il supporto di memorizzazione. Di diversa opinione è la domanda a pagina 160, che chiede quale tipo di indice ordina fisicamente i dati di una tabella e che ha come risposta giusta proprio gli indici clustered. Per cercare di fugare ogni dubbio, sono andato su MSDN dove, in questa pagina, si dice che un'indice clustered "creates an index in which the logical order of the key values determines the physical order of the corresponding rows in a table".

A questo punto mi sembra di aver capito che un indice clustered ordina fisicamente i dati su disco, potete confermare?

Technorati Tags: ,

posted @ giovedì 27 marzo 2008 10.26

Print

Comments on this entry:

# re: [70-431] Indici clustered: ordinano i dati fisicamente oppure no?

Left by Michele Bernardi at 27/03/2008 11.35
Gravatar
L'indice clustered in SQL Server _é la tabella_ (quindi ordina i dati fisicamente) AFAIK...
Comunque il forum é l'ambiente più naturale per le domande rispetto al blog, non trovi?

# re: [70-431] Indici clustered: ordinano i dati fisicamente oppure no?

Left by Marco Minerva at 27/03/2008 11.38
Gravatar
Grazie per la risposta... Il mio era un intervento a metà strada tra il post e la domanda, quindi ho preferito inserirlo qui...

# re: [70-431] Indici clustered: ordinano i dati fisicamente oppure no?

Left by Lorenz Cuno Klopfenstein at 27/03/2008 14.19
Gravatar
Concordo: che io sappia l'ordine logico dell'indice clustered è quello che determina l'ordine fisico della tabella. Per cui solitamente c'è un unico indice clustered che è appunto la primary key della tabella stessa.

# re: [70-431] Indici clustered: ordinano i dati fisicamente oppure no?

Left by Marco Minerva at 27/03/2008 14.24
Gravatar
Bene, mi state confermando quello che pensavo anch'io... E pensare che sul Self-Paced Trainig Kit c'è un trafiletto segnalato come IMPORTANT che spiega il motivo per cui l'ordinamento imposto da un indice clustered è solo logico... Altro che errata corrige, questa è una castroneria bella e buona!

# re: [70-431] Indici clustered: ordinano i dati fisicamente oppure no?

Left by LudovicoVan at 27/03/2008 20.21
Gravatar
"Al corso di Basi di Dati ho studiato che i record di una tabella con un indice clustered sono fisicamente ordinati sulla base del valore dell'indice stesso."

Forse e' solo imprecisa. L'ordinamento 'fisico' in questione e' relativo agli _indici_, non ai dati stessi.

Confusioni di questo genere di solito derivano dal fatto di non cogliere la sostanziale e fondativa differenza che passa fra 'modello logico' e 'modello fisico' (e in realta' i livelli sono piu' di due, dal modello logico dei dati individuato in fase di analisi, all'implementazione concreta in un motore di database ci passano infatti svariati livelli intermedi che vanno, in sintesi, dai concetti astratti ai dati binari su supporto fisico).

-LV

# re: [70-431] Indici clustered: ordinano i dati fisicamente oppure no?

Left by Davide Mauri at 27/03/2008 20.41
Gravatar
@Michele:
Per semplicita si può pensare che l'indice cluster ordini fisicamente i dati. Questo è vero quando viene RICOSTRUITO l'indice. Durante le normali operazioni mantenere un ordinamento fisico sarebbe troppo costoso e quindi viene mantenuto un ordinamento logico (sia per le righe che per le pagine).
L'operazione di ricostruzione degli indici serve, tra le altre cosa, proprio anche per rimettere a posto le cose ed a far si che l'ordine logico e quello fisico siano allineati (si parla infatti di "frammentazione esterna".

@Lorenz: Primary Key ed indice Clustered non hanno nulla in comune (se non che la PK usa un indice) ed una Primary Key può tranquillamente essere anche non-cluster


Però per discutere di queste cose il forum di UGISS è il posto migliore....

# re: [70-431] Indici clustered: ordinano i dati fisicamente oppure no?

Left by Davide Mauri at 27/03/2008 20.44
Gravatar
Nel post di prima la prima risposta è sia per Michele che per Marco, of course :-)

# re: [70-431] Indici clustered: ordinano i dati fisicamente oppure no?

Left by Davide Mauri at 27/03/2008 21.50
Gravatar
DAVIDE no Mauro :-)

# re: [70-431] Indici clustered: ordinano i dati fisicamente oppure no?

Left by Marco Minerva at 27/03/2008 22.37
Gravatar
Grazie Davide, seguo il tuo suggerimento e sposta la discussione sul forum di UGISS :-)

Corretto :-D

# Indici e l'ordinamento fisico dei dati

Left by Impedance Mismatch at 30/03/2008 16.10
Gravatar
Visto che il dubbio sull'ordinamento fisico dei dati in una tabella di SQL Server è piuttosto

# [70-431] Risolto il dubbio sugli indici clustered

Left by Around and About .NET World at 31/03/2008 17.12
Gravatar
[70-431] Risolto il dubbio sugli indici clustered

# [70-431] Ancora su indici e ordinamento dei dati

Left by Around and About .NET World at 15/04/2008 9.11
Gravatar
[70-431] Ancora su indici e ordinamento dei dati

Your comment:



 (will not be displayed)


 
 
 
Please add 7 and 1 and type the answer here:
 

Live Comment Preview: