Đăng nhập với Microsoft
Đăng nhập hoặc tạo một tài khoản.
Xin chào,
Chọn một tài khoản khác.
Bạn có nhiều tài khoản
Chọn tài khoản bạn muốn đăng nhập.

Triệu chứng

Giả định rằng bạn thêm cột vào bảng trong Microsoft SQL Server 2012 hoặc SQL Server 2014. Khi kích cỡ của hàng gần như kích cỡ được phép tối đa vốn là 8.060 byte, thì thao tác thêm có thể mất nhiều thời gian.

Nguyên nhân

Sự cố xảy ra vì, khi Tổng kích cỡ của hàng gần như được phép đến với kích thước hàng tối đa, SQL Server sẽ thực hiện một bản quét đầy đủ của bảng để đảm bảo rằng việc thêm một cột mới không vi phạm tính toàn vẹn dữ liệu. Các phiên bản trước SQL Server 2012 không thực hiện kiểm tra này và làm cho ngôn ngữ định nghĩa dữ liệu (DDL) chạy nhanh hơn. Tuy nhiên, kết quả hành vi này trong trường hợp các hoạt động tiếp theo như cập nhật hàng hoặc thu nhỏ nếu kích cỡ hàng vượt quá kích cỡ được phép.

Mỗi bản Cập Nhật tích lũy mới cho SQL Server chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật đã được đưa vào bản Cập Nhật tích lũy trước đó. Kiểm tra các bản Cập Nhật tích lũy mới nhất cho SQL Server:

Thông tin Bổ sung

  • Bạn có thể bật cờ theo dõi 647 bằng cách sử dụng tham số khởi động. Để biết thông tin, hãy xem tùy chọn khởi động công cụ cơ sở dữ liệu.

  • Bạn có thể chạy truy vấn sau đây (vui lòng thay thế tên bảng <> với tên bảng thực tế của bạn) để kiểm tra bảng cụ thể trước khi thao tác trên hệ thống sản xuất và lập kế hoạch hiệu ứng của vấn đề này. Nếu kết quả lớn hơn 8.060, bảng của bạn phải tuân theo sự cố này. Ngoài ra, nếu bạn đã bỏ cột, bạn phải thay đổi bảng bằng tùy chọn dựng lại. Việc xây dựng lại bảng có thể giúp kết quả trả về truy vấn chính xác.

    select  1+1+2 + 2 +  (case  when sum (case when leaf_offset < 0 then 1 else 0 end) > 0 then 2 else 0 end)  +  ( (count (*) + 7)/8 ) + count (case when leaf_offset < 0 then 1 else null end) * 2 +  sum( case when max_length=-1 then 24 else max_length end)  from sys.system_internals_partition_columns   col join sys.partitions par on col.partition_id = par.partition_id  where object_id = object_id ('<table name>')  and  index_id in (0,1) and partition_number =1 
  • Bạn có thể cân nhắc thêm các cột có độ dài thay đổi hoặc các cột thưa thớt khi ứng dụng của bạn thường xuyên thêm các cột mới vào bảng. Đây là một hoạt động chỉ siêu dữ liệu ngay cả khi Tổng kích cỡ của tất cả các cột vượt quá 8.060 byte.

Trạng thái

Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".

Bạn cần thêm trợ giúp?

Phát triển các kỹ năng của bạn

KHÁM PHÁ NỘI DUNG ĐÀO TẠO >

Sở hữu tính năng mới đầu tiên

THAM GIA NGƯỜI DÙNG NỘI BỘ MICROSOFT 365 >

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?

Cảm ơn phản hồi của bạn!

×