2010-07-07 6 views

Antwort

9

Mit einer engeren Tabelle wird die Datenbank mehr Datensätze in einer einzigen IO Seite passen, und benötigt daher weniger Festplatte liest.

Als Faustregel gilt, dass immer der Datentyp verwendet wird, der die geringste Speichergröße erfordert.

+3

+1 Ja, am wenigsten Speichergröße * vorausgesetzt * dieser Datentyp kann die Daten speichern, die Sie benötigen. I.e. Verwenden Sie Tinyint nicht, wenn Sie manchmal Integer-Werte größer als 255 benötigen. Scheint offensichtlich, aber es muss gesagt werden. :-) –

2

tinyint

weniger Platz ist gut.

+2

weniger zu Worte? : P – msfanboy

3

Im Allgemeinen ist weniger Platz desto besser. Je mehr Zeilen auf eine 8k-I/O-Seite auf Platte (oder im Speicher) passen, desto weniger I/Os sind erforderlich, um Daten zu suchen und/oder abzurufen. Dies ist besonders wichtig für Spalten, die in Indizes verwendet werden. Wenn Ihre Maschine jedoch beispielsweise eine 32-Bit-Maschine ist und ein 32-Bit-Betriebssystem ausführt, beträgt der kleinste Speicherbereich, der unabhängig adressiert werden kann, 32 Bit. Wenn dies also die einzige Spalte in Ihrem Tabellenschema ist, ist diese kleiner als 32 Bits, dann spielt es keine Rolle, da jede vollständige Datenzeile an einer 32-Bit-Grenze beginnen und enden muss, so dass jede Zeile ein Vielfaches von 32 Bits breit sein muss.

d.h. wenn Tisch

MyTable (ColA Tinyint, ColB Int, COLC Datumzeit) jede Reihe Dann gab werden 16 Bytes (128 Bits) nehmen und 24 Bits vergeudet wird.

Auf der anderen Seite, wenn Sie 4 Spalten haben, die tinyInts sein könnten, dann verwenden Sie unbedingt, dass SQL Server vier von ihnen in einem 32-Bit-Speicherort auf der Festplatte (egal, in welcher Reihenfolge Sie sie deklarieren) .

gleichen Prinzipien gelten für 64-Bit-SQL Server ausgeführt wird auf 64-Bit-OS/CPUbB

Verwandte Themen