, was der Effekt sein wird, wenn Uniquedatentyp Spalte gruppiert ist/nicht gruppierten Index in einer Tabelle SQL Server 2005/2008. Ich habe gelesen, es ist schlecht gestaltete Tabelle, wie dieses Problem zu vermeiden und was ist die beste Lösung?unique mit Index
Antwort
Wenn es nicht geclusterten ist, bedeutet dies nur der Index breit sein wird (16 Byte pro Zeile, anstatt 4 Byte pro Zeile mit einer ganzen Zahl).
Wenn es gruppiert ist, dann werden Einfügungen zu Seitenteilungen führen, je nachdem, wie viel freier Speicherplatz (Füllfaktor) Sie in dem Index verlassen, wenn Sie erstellen/es wieder aufzubauen.
Es gibt ein paar Fragen über SO Erörterung dieses Themas:
Should I get rid of clustered indexes on Guid columns
Advantages and disadvantages of GUID/UUID database keys
Clustered primary key on unique identifier ID column in SQL Server
GUID ist eine schlechte Wahl für Clustered-Index in SQL Server , da aufgrund seiner Zufälligkeit der Werte der Cluster Der ed-Index wird stark fragmentiert.
Da die Clustered-Index-Felder in jeden der nicht gruppierten Indizes repliziert werden, kann dies auch zu einer erheblichen Verschwendung von Festplatten- und Speicherplatz in SQL Server führen.
GUID ist eine gute Wahl aus der Perspektive eines Programmierers - mehr oder weniger zufällig, fast garantiert einzigartig - aber aus einer Datenbankperspektive ist es sehr schlecht, sie als Clustered Index in SQL Server zu verwenden.
See Kim Tripp verschiedene Artikel zu diesem Thema - sehr englihtnening!
http://sqlskills.com/BLOGS/KIMBERLY/post/The-Clustered-Index-Debate-Continues.aspx
Marc
- 1. JPA Unique Umbenennung Unique Index
- 2. Unique Constraint vs Unique Index
- 3. Merge mit Unique gefilterten Index
- 4. PostgreSQL UNIQUE Index nicht eindeutig?
- 5. Unique vs nicht eindeutigen Index
- 6. Unique und Index in MongooseJS?
- 7. MySQL: Unique und Index Äquivalenz
- 8. laravel brauche ich index() auf unique() spalte?
- 9. Maximale Größe des UNIQUE Index in MySQL
- 10. Mehrere NULL-Werte in Spalte mit UNIQUE-Index
- 11. Kann Unique Index auf Loopback nicht automatisch migrieren()
- 12. MySql Unique Index wie eine angemessene Antwort zu generieren?
- 13. Ist der Sql Server Unique Key auch ein Index?
- 14. Unterschied zwischen UNIQUE und UNIQUE KEY mySQL
- 15. Unique Users Tracking mit MongoDB
- 16. Oracle Unique Constraint mit Ausdruck
- 17. mysql - drop unique constraint
- 18. django ModelForm "unique = True"
- 19. Verschiebbare, case-insensitive unique constraint
- 20. Mungo & unique Feld
- 21. Wie erstellt man einen Index basierend auf 2 Spalten mit dem Schlüsselwort UNIQUE in MySQL?
- 22. Sie müssen keinen Index für eine Spalte mit einer UNIQUE-Einschränkung erstellen, oder?
- 23. Un-UNIQUE Spalte mysql
- 24. OpenERP Unique Constraint
- 25. UNIQUE PostgreSQL und Informationsquellen
- 26. Get unique System ID mit Flex
- 27. MySQL - Composite Unique Key mit Datetime
- 28. SQL Server UNIQUE-Einschränkung mit doppelten NULLs
- 29. Count Unique Werte mit einer Bedingung
- 30. Wie kann ich mit LINQ SELECT UNIQUE?
Wenn der Raum verlassen wird (i..e Füllfaktor) in einem Clustered-Index auf einem GUID, ist es nicht unbedingt so schlecht, wie wird oft berichtet. Wenn Sie regelmäßige Index-Maintenance und einen sorgfältig durchdachten Füllfaktor haben. Zu sagen, dass ich versuche, nicht Clustered-Indizes auf GUIDS zu machen ... –
Ja - können Sie die Effekte mit einem wenig Köpfchen zu mildern - aber GUIDs als gruppierten Tasten sind nur immer weniger ideal als ein INT - Zeit. Auch der verschwendeten Speicherplatz (multipliziert mit allen nicht-geclusterten Indizes, die die Clustering-Schlüssel enthalten) nicht optimiert entfernt werden ..... –