Differenza fra Clustered e indice non clusterizzato

Differenza chiave tra ClusterIndice ed e non clusterizzato

  • Un indice cluster è un tipo di indice che ordina le righe di dati nella tabella in base ai relativi valori chiave, mentre l'indice non cluster archivia i dati in una posizione e gli indici in un'altra posizione.
  • ClusterL'indice ed memorizza le pagine di dati nei nodi foglia dell'indice, mentre il metodo dell'indice non clusterizzato non memorizza mai le pagine di dati nei nodi foglia dell'indice.
  • L'indice cluster non richiede spazio su disco aggiuntivo, mentre l'indice non cluster richiede spazio su disco aggiuntivo.
  • Cluster L'indice offre un accesso ai dati più rapido, mentre l'indice non cluster è più lento.
Differenza fra ClusterIndice ed e non clusterizzato
Clustered vs indice non clusterizzato

Cos'è un indice?

Un indice è una chiave creata da una o più colonne nel database che accelera il recupero delle righe dalla tabella o dalla vista. Questa chiave aiuta un database simile Oracle, Server SQL, MySQL, ecc. per trovare rapidamente la riga associata ai valori chiave.

Due tipi di indici sono:

  • Clustered Indice
  • non-Clustered Indice

Che cos'è un Clusterindice ed?

Cluster index è un tipo di indice che ordina le righe di dati nella tabella in base ai loro valori chiave. Nel database, c'è solo un indice cluster per tabella.

Un indice cluster definisce l'ordine in cui i dati vengono archiviati nella tabella che può essere ordinata in un solo modo. Pertanto, può esserci un solo indice cluster per ogni tabella. In un RDBMS, solitamente, la chiave primaria consente di creare un indice cluster basato su quella specifica colonna.

Cos'è l'indice non cluster?

Un indice non cluster archivia i dati in una posizione e gli indici in un'altra posizione. L'indice contiene puntatori alla posizione di tali dati. Una singola tabella può avere molti indici non cluster poiché un indice nell'indice non cluster è archiviato in posizioni diverse.

Ad esempio, un libro può avere più di un indice: uno all'inizio che mostra il contenuto del libro unità per unità, mentre il secondo indice mostra l'indice dei termini in ordine alfabetico.
Un indice non cluster viene definito nel campo non ordinato della tabella. Questo tipo di metodo di indicizzazione consente di migliorare le prestazioni delle query che utilizzano chiavi non assegnate come chiave primaria. Un indice non cluster consente di aggiungere una chiave univoca per una tabella.

Caratteristica di Clustered Indice

  • Archiviazione dati predefinita e ordinata
  • Utilizza solo una o più colonne per un indice
  • Ti aiuta a memorizzare dati e indicizzare insieme
  • Frammentazione
  • Operazioni
  • Clusterscansione dell'indice ed e ricerca dell'indice
  • Ricerca chiave

Caratteristiche degli indici non cluster

  • Memorizza solo i valori chiave
  • Puntatori all'heap/Clustered Righe dell'indice
  • Consente l'accesso ai dati secondari
  • Un ponte verso i dati
  • Operazioni di Index Scan e Index Seek
  • È possibile creare un indice non cluster per una tabella o una vista
  • Ogni riga dell'indice non cluster archivia il valore della chiave non cluster e un localizzatore di riga

ClusterIndice ed vs Non-clustered in SQL: differenze principali

parametri Clustered Non in cluster
Utilizzare per È possibile ordinare i record e archiviare l'indice cluster fisicamente nella memoria secondo l'ordine. Un indice non cluster ti aiuta a creare un ordine logico per le righe di dati e utilizza puntatori per file di dati fisici.
Metodo di memorizzazione Consente di archiviare le pagine di dati nei nodi foglia dell'indice. Questo metodo di indicizzazione non memorizza mai le pagine di dati nei nodi foglia dell'indice.
Taglia La dimensione dell'indice cluster è piuttosto grande. La dimensione dell'indice non cluster è piccola rispetto all'indice cluster.
Accesso ai dati Faster Più lento rispetto all'indice cluster
Spazio su disco aggiuntivo Non richiesto Necessario per archiviare l'indice separatamente
Tipo di chiave Per impostazione predefinita, le chiavi primarie della tabella sono a Clustered Indice. Può essere utilizzato con vincolo univoco sulla tabella che funge da chiave composta.
Caratteristica principale Un indice cluster può migliorare le prestazioni di recupero dei dati. Dovrebbe essere creato su colonne utilizzate nei join.

Un esempio di indice cluster

Nell'esempio seguente SalesOrderDetailID è l'indice cluster. Query di esempio per recuperare i dati

SELECT CarrierTrackingNumber, UnitPrice
FROM SalesData
WHERE SalesOrderDetailID = 6

Esempio di indice cluster

Un esempio di indice non cluster

Nell'esempio seguente, viene creato un indice non cluster su OrderQty e ProductID come segue

CREATE INDEX myIndex ON
SalesData (ProductID, OrderQty)

Esempio di indice non cluster

La query seguente verrà recuperata più velocemente rispetto all'indice cluster.

SELECT Product ID, OrderQty
FROM SalesData
WHERE ProductID = 714

Esempio di indice non cluster

Vantaggi di Clustered Indice

I vantaggi/vantaggi dell'indice cluster sono:

  • ClusterGli indici ed sono un'opzione ideale per intervalli o raggruppamenti con query di tipo max, min e count
  • In questo tipo di indice, la ricerca può andare direttamente a un punto specifico dei dati in modo da poter continuare a leggere in sequenza da lì.
  • ClusterIl metodo dell'indice ed utilizza il meccanismo di localizzazione per individuare la voce dell'indice all'inizio di un intervallo.
  • È un metodo efficace per le ricerche di intervalli quando viene richiesto un intervallo di valori di chiave di ricerca.
  • Ti aiuta a ridurre al minimo i trasferimenti di pagine e a massimizzare i risultati della cache.

Vantaggi dell'indice non cluster

I vantaggi dell'utilizzo dell'indice non cluster sono:

  • Un indice non cluster ti aiuta a recuperare rapidamente i dati dalla tabella del database.
  • Ti aiuta a evitare i costi generali associati all'indice cluster
  • Una tabella può contenere più indici non cluster RDBMS. Pertanto, può essere utilizzato per creare più di un indice.

Svantaggi di Clustered Indice

Ecco i contro/svantaggi dell'utilizzo dell'indice cluster:

  • Molti inserti in ordine non sequenziale
  • Un indice cluster crea molte suddivisioni di pagina costanti, che includono pagine di dati e pagine di indice.
  • Lavoro extra per SQL per inserimenti, aggiornamenti ed eliminazioni.
  • Un indice cluster impiega più tempo per aggiornare i record quando i campi nell'indice cluster vengono modificati.
  • I nodi foglia contengono principalmente pagine di dati nell'indice cluster.

Svantaggi dell'indice non cluster

Ecco i contro/svantaggi dell'utilizzo dell'indice non cluster:

  • Un indice non cluster consente di archiviare i dati in ordine logico ma non consente di ordinare fisicamente le righe di dati.
  • Il processo di ricerca su indici non cluster diventa costoso.
  • Ogni volta che la chiave di clustering viene aggiornata, è richiesto un aggiornamento corrispondente sull'indice non cluster poiché memorizza la chiave di clustering.