Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 3812|Risposta: 2

[Fonte] [Gira] (MSSQL) Int e guid database SQL Server per il confronto delle chiavi primarie

[Copiato link]
Pubblicato su 06/06/2023 22:17:40 | | |
Requisiti: Durante un recente colloquio, mi è stato chiesto quale sia la differenza tra SQL Server database int e guid come chiave principale.Entrambi hanno pro e contro, ti preghiamo di valutarli in base alle tue reali situazioni di business

Testo originale 1Il login del link ipertestuale è visibile.

Vantaggi dell'uso dell'INT come chiave primaria:

1. Richiede uno spazio di archiviazione dati ridotto, solo 4 byte.

2. Le prestazioni dell'uso dell'INT per le operazioni di inserimento e aggiornamento sono migliori rispetto a quelle del GUID, quindi l'uso dell'int migliorerà le prestazioni dell'applicazione.

3. Operazioni di indice e di giunzione, int ha le migliori prestazioni.

4. Facile da ricordare.

5. Supporto per ottenere l'ultimo valore tramite una funzione, come: Scope_Indentity().

Svantaggi nell'usare l'INT come chiave primaria

1. Se c'è un'operazione frequente di fusione delle tabelle, può esserci duplicazione delle chiavi primarie.

2. Ci sono restrizioni sull'ambito dell'uso dei dati INT. Se ci sono grandi quantità di dati, possono superare l'intervallo di valori INT.

3. È difficile elaborare tabelle dati distribuite e memorizzate.

Vantaggi dell'uso del GUID come chiave primaria:

1. È unico.

2. Ci sono poche opportunità di duplicazione.

3. È adatto per operazioni di inserimento e aggiornamento su una grande quantità di dati.

4. Il fusione dati tra server è molto comoda.

Svantaggi dell'uso del GUID come chiave primaria:

1. Lo spazio di archiviazione è grande (16 byte), quindi occuperà più dimensioni del disco.

2. È difficile da ricordare. Le prestazioni dell'operazione di join sono inferiori a quelle di int.

3. Non esiste una funzione integrata per ottenere l'ultima chiave primaria GUID generata.

4. Il GUID come chiave primaria verrà aggiunto ad altri indici sulla tabella, quindi ridurrà le prestazioni.

Sommario:

Quanto sopra elenca i vantaggi e gli svantaggi dei tipi di dati GUID e INT come chiavi primarie. Penso che per volumi di dati grandi sia consigliato usare il guid come chiave primaria. mentreUsare l'intelligenza ti darà le migliori prestazioni


Commento: UsaLe prestazioni GUID ordinate migliorano molto

Testo originale dueIl login del link ipertestuale è visibile.

L'identità è un tipo di tipo intero, decimale senza definizione decimale, bigint è accettabile

Il guid è binario fisso(16), cioè 16 byte

L'identità viene incrementata (o sottratta), e il GUID è casuale, quindi quando i dati vengono inseriti,Il primo non produce frammenti, mentre il secondo sì, e poiché il secondo è fuori ordine, l'ordine deve essere regolato quando viene inserito, quindi il primo è generalmente migliore del secondo in termini di prestazioni.

Una grande quantità di informazioni è solitamente suddivisa in tabelle, quindi l'identità è ancora più adatta in molti casi

Per quanto riguarda il significato della chiave primaria, dipende da come la consideri nella progettazione; per l'elaborazione dei dati stessa, la chiave primaria non deve necessariamente avere un significato, e se richiedi che la chiave primaria contenga significato aziendale, allora la chiave primaria identità ovviamente è priva di significato, ma in generale è meglio separare il significato aziendale dall'elaborazione dei dati, il business è in continuo cambiamento; se vuoi portare il significato alla chiave principale del design della tabella, allora il business cambia, dovrai modificare di più la struttura della tabella.

Testo originale treIl login del link ipertestuale è visibile.

1. Nei sistemi che spesso devono effettuare la migrazione dei dati, si consiglia di utilizzare Guid. E aggiungere indici non raggruppati ai campi corrispondenti della chiave esterna, cioè ai campi usati per le query di join, è di grande vantaggio per migliorare le prestazioni. Il campo della condizione dove può essere aggiunto come appropriato per indici non raggruppati.

2. Quando si utilizza il tipo Guid come chiave primaria, il tipo di dato dovrebbe essere univoco e assicurarsi di ricordarloAnnulla la chiave primaria "Indici aggregati

3. Per sistemi che non necessitano di migrazione, o sistemi di piccole dimensioni, è comunque molto comodo usare l'int come chiave primaria, e c'è comunque un certo miglioramento nell'efficienza.

(Fine)




Precedente:ASP.NET Core (20) Prevenire attacchi di reindirizzamento aperto
Prossimo:.NET Core programmi risorsa multilingue di lettura e scrittura (.resx)
 Padrone di casa| Pubblicato su 06/06/2023 22:42:46 |
SequentialGuidValueGenerator genera valori Guid sequenziali ottimizzati per l'uso con le chiavi di cluster o gli indici di Microsoft SQL Server, risultando in prestazioni migliori rispetto ai valori casuali. Questo è il generatore predefinito per generare colonne Guid di SQL Server quando vengono aggiunte.

Il login del link ipertestuale è visibile.


I GUID sequenziali in Entity Framework Core potrebbero non essere sequenziali

Il login del link ipertestuale è visibile.
 Padrone di casa| Pubblicato su 27/01/2024 11:07:29 |
[MSSQL] SQL SERVER GUID ordinati e GUID non ordinati come test principali di aggregazione delle chiavi
https://www.itsvse.com/thread-10607-1-1.html
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com