2009-05-28 9 views
11

Czytałem Maximum Capacity Specifications for SQL Server i natrafiłem na oznaczenie szerokiego stołu. Różni się od standardowej tabeli, która może mieć aż 30 000 kolumn, w przeciwieństwie do normalnej (wąskiej) tabeli, która jest ograniczona do 1024 bardziej znanych kolumn. Szukałem go przy szerokim stole, ale nic nie wydaje mi się trafne. Czy ten nowy typ tabeli ma bardziej formalną nazwę?Jak utworzyć szeroką tabelę w SQL Server 2008? i jakie są jego ograniczenia w użyciu?

Dlaczego więc mamy dwa różne typy tabel, w jaki sposób utworzyć tę specjalną tabelę i jakie są ograniczenia korzystania z tej tabeli, która może pozornie zawierać więcej danych? anhyone wie?

+0

masz na myśli więcej niż 30.000 kolumn zamiast dróg? – jvanderh

+0

tak. mój automatyczny korektor zaklęć zmienił słowo automagicznie na coś głupiego. tysiąc odpustów. – MikeJ

Odpowiedz

9

Szeroki stół to stół, który wykorzystuje zestawy kolumn i rozrzedzone kolumn. Nadal podlega tym samym ograniczeniom szerokości w wierszu (8019 bajtów) - więc zazwyczaj używa się go tylko wtedy, gdy kolumny są w większości zerowe.

Zobacz tutaj, aby uzyskać więcej informacji na temat ...

+1

Limit 8 KB jest przeznaczony dla wersji programu SQL Server 2016, zobacz [link] https://technet.microsoft.com/en-us/library/ms186981 (v = sql.105) .aspx –

+1

SQL 2016 nadal ma bajty z limitem wiersza 8060, ale przepełnienie wiersza pozwala przechowywać więcej danych. To nie jest nowe w 2016 roku i istnieje już od dłuższego czasu. https://msdn.microsoft.com/en-us/library/ms143432.aspx –

4

"Aby utworzyć lub zmienić tabelę na szeroką tabelę, należy dodać definicję column set do definicji tabeli."

Od here

2

Zazwyczaj nie chcą jednak, aby to zrobić! W wierszach występują ograniczenia wielkości, a pobieranie danych może być wolniejsze, niż w przypadku tabel powiązanych (nawet w przypadku relacji jeden-do-jednego). Jeszcze nigdy nie widziałem przypadku, w którym byłby to lepszy pomysł niż tabele powiązane.

2

Kolejnym ograniczeniem jest to, że szerokie tabele nie działają z replikacją transakcyjną lub scalającą. Patrz „SQL technologii serwerowych, które obsługują Rzadkie kolumny” rozdział tutaj: http://msdn.microsoft.com/en-us/library/cc280604(v=sql.105).aspx

+0

Odwołanie to mówi: "Replikacja transakcyjna obsługuje kolumny rozrzedzone, ale nie obsługuje zestawów kolumn", czy można wyjaśnić swoją odpowiedź, a także zapoznać się z moją istotną pytanie bez odpowiedzi http://dba.stackexchange.com/questions/59476/is-it-possible-to-replicate-wide-table-in-ms-sql? – alpav

+0

Aby utworzyć tabelę w szerokiej tabeli, należy utworzyć kolumny rozrzedzone, a także dodać zestaw kolumn. Jeśli nie utworzysz zestawu kolumn, twoja tabela będzie nadal ograniczona do 1024 kolumn. –

Powiązane problemy