2009-05-28 4 views
11

Ich las die Maximum Capacity Specifications for SQL Server und ich stieß auf die Bezeichnung einer breiten Tabelle. Es unterscheidet sich von einer Standardtabelle darin, dass es im Gegensatz zu einer normalen (engen) Tabelle, die auf die bekannteren 1024 Spalten beschränkt ist, bis zu 30.000 Spalten haben kann. Ich googelte nach einem großen Tisch, aber nichts schien relevant zu sein. Hat dieser neue Tabellentyp einen formelleren Namen ???Wie erstellen Sie eine breite Tabelle in SQL Server 2008? und was sind seine Nutzungsbeschränkungen?

Warum haben wir zwei verschiedene Arten von Tabellen, wie erstellen Sie diese spezielle Tabelle und welche Einschränkungen gibt es bei der Verwendung dieser Tabelle, die scheinbar mehr Daten enthält? Anhyone wissen?

+0

meinen Sie mehr als 30.000 Spalten statt Straßen? – jvanderh

+0

ja. Mein automatischer Zauberkorrektor änderte das Wort automatisch zu etwas albernem. tausend Entschuldigungen. – MikeJ

Antwort

9

Eine große Tabelle ist eine Tabelle, die Spaltensätze und Spalten mit geringer Dichte verwendet. Es folgt immer noch den gleichen Width-Einschränkungen pro Zeile (8019 Bytes) - also würden Sie es normalerweise nur verwenden, wenn Ihre Spalten meistens alle Nullen sind.

Sehen Sie hier für weitere Informationen über ...

+1

Das 8K-Limit ist für Pre SQL Server 2016-Versionen, siehe [link] https://technet.microsoft.com/en-us/library/ms186981 (v = sql.105) .aspx –

+1

SQL 2016 hat immer noch eine Bytes pro Zeilenlimit von 8060, aber der Zeilenüberlauf lässt Sie mehr Daten speichern. Das ist 2016 nicht neu und gibt es schon eine ganze Weile. https://msdn.microsoft.com/en-us/library/ms143432.aspx –

4

"Um eine Tabelle in eine breite Tabelle zu erstellen oder zu ändern, fügen Sie der Tabellendefinition column set hinzu."

Von here

2

Sie in der Regel nicht wollen, dies aber tun! Es gibt Größenbeschränkungen für die Zeilen und es kann langsamer sein, Daten abzurufen, als wenn Sie verwandte Tabellen verwenden (auch solche mit Eins-zu-eins-Beziehungen). Ich habe noch nie eine Instanz gesehen, wo dies eine bessere Idee war als verwandte Tabellen.

2

Eine weitere Einschränkung ist, dass Wide-Tabellen nicht mit Transaktions- oder Mergereplikation arbeiten. Siehe die „SQL Server-Technologien, dass die Unterstützung Spalten mit geringer Dichte“ Abschnitt hier: http://msdn.microsoft.com/en-us/library/cc280604(v=sql.105).aspx

+0

Diese Referenz sagt: "Transaktionsreplikation unterstützt spärliche Spalten, aber es unterstützt keine Spaltensätze", könnten Sie Ihre Antwort klären und auch meine relevanten sehen unbeantwortete Frage http://dba.stackexchange.com/questions/59476/is-it-possible-to-replicate-wide-table-in-ms-sql? – alpav

+0

Um eine Tabelle zu einer breiten Tabelle zu machen, müssen Sie spärliche Spalten erstellen und auch einen Spaltensatz hinzufügen. Wenn Sie keinen Spaltensatz erstellen, ist Ihre Tabelle weiterhin auf 1024 Spalten beschränkt. –

Verwandte Themen