2009-05-13 2 views
10

내가 MSDN에서이 페이지를 찾고 있었어요 :SQL 2008의 Wide 테이블과 Nonwide 테이블의 차이점은 무엇입니까?

Maximum Capacity Specifications for SQL Server 2008

을 그리고 그것은 다음 말한다 :

'nonwide'테이블 당
최대 열 : '폭'테이블 당 1,024
최대 열 : 30,000

그러나 'wide'테이블과 'nonwide'테이블의 차이점에 대해서는 SQL 2008에서 찾을 수 없습니다. 'wide'테이블을 정의하려면 어떻게해야합니까?

+0

테이블에서 열 집합 열을 사용하는 경우에만 최대 열 제한은 30k입니다. 테이블에서'column set' 컬럼을 사용하지 않는다면, 테이블에서 함께 사용되는 희소 + 비 sparse 컬럼의 최대 카운트는 1024보다 클 수 없습니다. 자세한 내용은 [here] (https : //www.simple- talk.com/sql/t-sql-programming/null-friendly-using-sparse-columns-and-column-sets-in-sql-server/) – RBT

답변

7

Special Table Types

당신이 필요로하는 모든 정보는이 MSDN 문서입니다.

넓은 테이블은 스파 스 열이있는 테이블입니다. 테이블을 넓게 만들려면 열 정의를 정의에 추가하면됩니다.

4

총 고정 및 가변 길이 데이터는 여전히 총 ​​8019 바이트로 제한된다는 점에 유의해야합니다. 이 미친 여분의 수의 열을 수행 할 수 있다는 것은 대부분의 데이터가 Null 인 스파 스 테이블에서만 지원됩니다. 그렇지 않으면 여전히 8019 바이트를 초과하는 행으로 끝나고 확장되지 않은 행 데이터로 끝나거나 확장 된 행 데이터로 오버플로됩니다 (정상 데이터 페이지와 비교하여 유지 관리 비용이 매우 쌉니다).

카렌 딜레이 니 (Karen Delaney)의 책에는 SQL Server 2008 Internals이라는 내부 기능과 한계를 가진 정말 좋은 책이 있습니다. 당신이 정말로 낮은 수준의 한계에 빠져 있고 SQL Server에서 일을 처리하는 방법이 환상적입니다. 경우에 따라 SQL Server가 디스크 수준의 바이트 수준에서 수행하는 작업을 SQL Server가 수행하는 방식에 대한 지식의 깊이가 높아집니다.

+0

SQL의 경우 "총 8019 바이트로 제한됩니다"문은 true가 아닙니다. 서버 2016은 [link] https://technet.microsoft.com/en-us/library/ms186981 (v = sql.105) .aspx –

+0

을 참조하십시오. 2009 년 작성된 것을 고려해 볼 때, 어떻게 생각할 지 모르겠습니다. :) –

3

또 다른 차이점은 트랜잭션 또는 병합 복제에서는 넓은 테이블이 작동하지 않는다는 것입니다. 여기에서 "스파 스 열을 지원하는 SQL Server 기술"섹션을 참조하십시오. http://msdn.microsoft.com/en-us/library/cc280604(v=sql.105).aspx

+0

이 참조는 말합니다 : "트랜잭션 복제는 희소 컬럼을 지원하지만 컬럼 세트를 지원하지 않습니다"라고 답을 명확하게하고 응답이없는 관련 질문 인 http : //dba.stackexchange를 볼 수 있습니까? com/questions/59476/it-it-possible-to-replicate-wide-table-in-ms-sql? – alpav

+0

테이블을 와이드 테이블로 만들려면 스파 스 열을 만들고 열 집합을 추가해야합니다. 열 집합을 만들지 않으면 테이블은 여전히 ​​1024 열로 제한됩니다. –

관련 문제