Đôi khi trong quá trình bảo trì chỉ mục của chúng tôi, công việc sẽ thất bại với lỗi SEV 17 trong đó không thể phân bổ đủ không gian cho đối tượng mà nó đang xây dựng lại. Cơ sở dữ liệu được trình bày như sau:
Data_file1 PRIMARY 0 growth 0% free Max Size UNLIMITED
Data_file2 PRIMARY 0 growth 0% free Max Size UNLIMITED
Data_file3 PRIMARY 0 growth Less than 1% free Max Size UNLIMITED
Data_file4 PRIMARY 250 MB growth Less than 1% free Max Size UNLIMITED
Về cơ bản, 3 trong số 4 tệp dữ liệu đã đầy và không được phép phát triển, tệp thứ tư đầy và được phép phát triển. Các tập tin được trải đều trên các LUN khác nhau (và lý do tại sao lại lộn xộn). Vì vậy, khi việc xây dựng lại chỉ mục trực tuyến bắt đầu, tôi hiểu rằng nếu cần thêm dung lượng, nó sẽ phát triển thành Data_file4 và sẽ ổn, nhưng rõ ràng là đang cố gắng phát triển thành một tệp khác, nơi không cho phép tăng trưởng và thất bại. Tôi không thể tái tạo lỗi này, nhưng tôi đã tự hỏi nếu có ai có cái nhìn sâu sắc về lý do tại sao điều này xảy ra.
Phiên bản máy chủ SQL đầy đủ là 2008 R2 Enterprise, SP2 CU 4 (10.50.4270). Chúng tôi sử dụng các kịch bản xây dựng lại của Ola Hallengren, nơi chúng tôi xây dựng lại trực tuyến nhưng không sắp xếp tempdb
.
max_size is
hiện được đặt thành UNLIMITED, ngay cả trên những mức tăng trưởng 0. Tôi đang điều tra điều này trong bài kiểm tra repro của tôi ngay bây giờ.
If max_size is not specified, the file size will increase until the disk is full.
Granted, nếu tự động tăng trưởng bị tắt, thì không nên cố gắng phân bổ từ các tệp đó (A value of 0 indicates that automatic growth is set to off and no additional space is allowed.
), nhưng có thể có một lỗi, vì vậy sẽ không có hại nếu thử nếu không được đặt.