Tại sao việc thêm người dùng SQL Server vào nhóm Thực hiện các nhiệm vụ bảo trì khối lượng, cải thiện tốc độ thay đổi kích thước cơ sở dữ liệu rất nhiều?


17

Nếu tôi muốn tạo cơ sở dữ liệu 5GB với

CREATE DATABASE [test]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'test', FILENAME = N'E:\2012\test.mdf' , SIZE = 5529600KB , FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'test_log', FILENAME = N'E:\2012\test_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)

phải mất 1 phút trên ổ SSD của tôi.

Nhưng khi tôi thêm người dùng SQL Server vào Perform volume maintenance tasks

nhập mô tả hình ảnh ở đây

chỉ mất 1-2 giây .

Tại sao vậy? Ai đó có thể giải thích cho tôi những lý do cho việc này là gì?


4
Các downvoters có thể giải thích tại sao các downvote ?? Đây có vẻ là một câu hỏi tốt cho tôi.
Thomas Stringer

Câu trả lời:


26

Đó là vì Khởi tạo tệp tức thì . Nói tóm lại, SQL Server có thể tận dụng đặc quyền này cho các tệp dữ liệu cơ sở dữ liệu (không phải tệp nhật ký giao dịch). Điều này có nghĩa là SQL Server làm gì phải loại bỏ (các) tệp dữ liệu khi khởi tạo.

Không có đặc quyền "Thực hiện nhiệm vụ bảo trì khối lượng" được cấp cho tài khoản Dịch vụ SQL, khi tạo cơ sở dữ liệu, SQL Server cần loại bỏ "test.mdf" và "test_log.ldf".

Với bộ quyền đặc quyền "Thực hiện nhiệm vụ bảo trì khối lượng" , SQL Server chỉ cần loại bỏ "test_log.ldf". Chi phí ít hơn đáng kể, do đó giảm thiểu thời gian choCREATE DATABASE thử nghiệm của bạn.

Tài liệu tham khảo
Làm thế nào và tại sao để kích hoạt khởi tạo tập tin
tức thời Khởi tạo tức thì - Cái gì, tại sao và như thế nào?


đường may này là tính năng tuyệt vời, nhưng tại sao mặc định cho nó bị tắt?
ahmed abdelqader

1

Điều này sẽ không ảnh hưởng đến các tệp .ldf (tệp nhật ký), ít nhất là không theo Điều khoản MS

Tại sao làm điều đó? Tốc độ

Tại sao KHÔNG làm điều đó? Rủi ro bảo mật có thể xảy ra. Ai đó có thể hack vào hộp của bạn và có thể đọc các không gian bộ nhớ khác không và lấy dữ liệu đó. Rủi ro nhỏ, nhưng vẫn là rủi ro. Đây là lý do tại sao nó không được kích hoạt theo mặc định.

Giải thích chi tiết: Cách thức và lý do kích hoạt khởi tạo tệp tức thì


Lưu ý cho người đọc: Nếu bạn lo lắng về việc mọi người xâm nhập vào máy chủ của bạn và đọc dữ liệu cũ từ tệp bị xóa, việc tắt IFI có thể hữu ích, nhưng hầu như không đủ để tôi coi là đủ. Và, nếu bạn đã có phần mềm ghi đè lên các tệp đã bị xóa, thì có lẽ bạn sẽ ổn khi bật IFI, vì phần mềm đó đã xóa hết dung lượng.
RDFozz

Hiện tại có một hộp kiểm trong khi cài đặt (SQL 2016 trở đi) để cấp quyền này cho tài khoản dịch vụ SQL Server, vì vậy tôi đoán MS cũng thoải mái hơn một chút về mặt bảo mật.
Gareth Lyons
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.