Chúng tôi có hồ sơ chính cho phép người dùng nhập ghi chú. Có 18 trường "ghi chú" riêng lẻ cho mỗi bản ghi chính.SQL Server: Tốt hơn để sử dụng varchar (MAX) hoặc giữ một bảng ghi chú riêng biệt và INNER JOIN nó?
Hiện tại chúng tôi đã chuẩn hóa nó thành một bảng khác được gọi là ghi chú, với cột ID nước ngoài và cột đơn (8000), sau đó chúng tôi chỉ INNER JOIN chúng với nhau khi cần thiết. Tôi tin rằng đây là cách tiếp cận được đề xuất trong SQL Server 2000.
Gần đây chúng tôi đã di chuyển sang SQL Server 2008 có varchar (MAX) và chúng tôi đang tự hỏi liệu nó có tốt hơn hay bằng hiệu suất nếu chúng tôi loại bỏ các ghi chú riêng của mình bảng và sử dụng varchar (MAX) thay thế. Nó chắc chắn sẽ thuận tiện hơn.
Sự hiểu biết của tôi là varchar (MAX) giữ dữ liệu thực tế trên một trang riêng biệt và chỉ giữ con trỏ đến vị trí đó trong bảng thực tế. Nói cách khác, SQL Server đang làm nội bộ mà chúng tôi đã làm bằng tay. Điều đó có đúng không? Từ tất cả các phản ứng, nó chắc chắn có vẻ như nó là, nhưng tôi muốn làm rõ. Đó thực sự là câu hỏi tôi thắc mắc. – msigman
Không; đó là cách kiểu 'văn bản' hoạt động. Với 'varchar (max)', điều này chỉ đúng * khi kích thước vượt quá kích thước tối đa của 'varchar' *, là 8000. Trong kích thước tối đa, nó được lưu trữ theo cách truyền thống. –
OK. Cảm ơn bạn, tôi tin rằng tôi rõ ràng bây giờ. Chúng tôi sẽ để nó như nó hiện đang được thiết lập. – msigman