2009-05-13 32 views
10

tôi đang tìm kiếm tại trang này trên MSDN:Sự khác nhau giữa các bảng Rộng và Không trong SQL 2008 là gì?

Maximum Capacity Specifications for SQL Server 2008

Và nó nói như sau:

Cột Max mỗi 'nonwide' bảng: 1.024
Cột Max mỗi bảng 'rộng': 30.000

Tuy nhiên tôi không thể tìm thấy bất kỳ thông tin nào về sự khác biệt giữa bảng 'rộng' và 'không toàn' trong SQL 2008. Nếu tôi muốn xác định bảng 'rộng', tôi sẽ làm như thế nào?

+0

Giới hạn cột tối đa chỉ 30k nếu bạn đang sử dụng cột 'Cột bộ 'trong bảng của bạn. Nếu bạn không sử dụng cột 'cột set' trong bảng của bạn thì số lượng cột thưa thớt + không thưa thớt được lấy cùng nhau trong bảng của bạn không được lớn hơn 1024. Thêm chi tiết [tại đây] (https: //www.simple- talk.com/sql/t-sql-programming/null-friendly-using-sparse-columns-and-column-sets-in-sql-server/) – RBT

Trả lời

7

Special Table Types

Tất cả thông tin bạn cần là trong bài viết MSDN này.

Bàn rộng chỉ là một bảng có cột thưa thớt. Để tạo một bảng rộng, bạn chỉ cần thêm một tập hợp cột vào định nghĩa của nó.

4

Tôi có thể nói sự khác biệt là khoảng 28.976 cột.

4

Điều quan trọng cần lưu ý là tổng số dữ liệu độ dài cố định và biến của bạn vẫn bị giới hạn trong tổng số 8019 byte. Việc có thể thực hiện số cột cực lớn này chỉ được hỗ trợ trong các bảng thưa thớt nơi MOST của dữ liệu là null. Nếu không, bạn vẫn kết thúc với các hàng vượt quá 8019 byte và kết thúc bằng rowdata không phù hợp hoặc tràn vào dữ liệu hàng mở rộng (rất tốn kém để duy trì so với các trang dữ liệu thông thường).

Có một cuốn sách thực sự hay của Karen Delaney có rất nhiều tính năng và giới hạn nội bộ cho SQL Server có tiêu đề SQL Server 2008 Internals. Nếu bạn đang thực sự vào giới hạn mức thấp và làm thế nào mọi thứ được thực hiện trong SQL Server nó là một đọc tuyệt vời. Nó sẽ tăng độ sâu kiến ​​thức của bạn về cách SQL Server làm những gì nó làm theo mui xe ở cấp độ byte vào đĩa trong một số trường hợp.

+0

Câu lệnh "giới hạn tổng số 8019 byte" không đúng đối với SQL Máy chủ năm 2016, xem [link] https://technet.microsoft.com/en-us/library/ms186981 (v = sql.105) .aspx –

+0

Xem xét điều này được viết vào năm 2009, tôi không thấy bất kỳ ai nghĩ nó có liên quan đến SQL 2016. :) –

3

Sự khác biệt khác là bảng rộng không hoạt động với bản sao giao dịch hoặc hợp nhất. Xem phần "Công nghệ máy chủ SQL hỗ trợ cột thưa thớt" ở đây: http://msdn.microsoft.com/en-us/library/cc280604(v=sql.105).aspx

+0

Tham chiếu này cho biết: "Sao chép giao dịch hỗ trợ các cột thưa thớt, nhưng nó không hỗ trợ tập hợp cột", bạn có thể làm rõ câu trả lời của mình và xem http: //dba.stackexchange chưa được trả lời có liên quan của tôi không. com/questions/59476/is-it-possible-to-sao chép-rộng-bảng-trong-ms-sql? – alpav

+0

Để tạo một bảng thành một bảng rộng, bạn phải tạo các cột thưa thớt và cũng có thể thêm một tập hợp cột. Nếu bạn không tạo cột, bảng của bạn sẽ vẫn bị giới hạn ở 1024 cột. –

Các vấn đề liên quan