Bỏ qua để tới nội dung chính
Đă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?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.

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?
Khi nhấn gửi, phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Người quản trị CNTT của bạn sẽ có thể thu thập dữ liệu này. Điều khoản về quyền riêng tư.

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

×