Tạo cơ sở dữ liệu mới với kích thước ban đầu lớn


8

Tôi muốn tạo một cơ sở dữ liệu mới với tệp dữ liệu 200GB ( .mdf) và tệp nhật ký 50GB ( .ldf).

Nhưng nó rất chậm (khoảng 15 phút và vẫn chưa được tạo). và nó rất tốn thời gian Điều đó có bình thường không? Nếu có, nó làm gì mà mất thời gian? Tôi có thể tăng cường tốc độ tạo của nó không?

Tôi đang sử dụng SQL Server 2008 R2, Windows Server 2008R2, RAM 16GB (tôi giới hạn ở mức 12GB tính theo ssms) và Core i7 Cpu


2
Để tạo một cơ sở dữ liệu lớn, bạn bị giới hạn bởi I / O của đĩa hơn bất kỳ thứ gì khác. Nếu IFI được bật (theo câu trả lời) thì bạn có thể bỏ qua việc khởi tạo (loại bỏ) tệp dữ liệu, nhưng không có vấn đề gì bạn phải khởi tạo tệp nhật ký. Nếu bạn đang sử dụng đĩa spinny tiêu dùng thông thường có thể mất tới nửa giờ cho riêng tệp nhật ký.
Simon Righarts

Câu trả lời:


17

Trừ khi bạn đang sử dụng Khởi tạo tệp tức thì , SQL Server phải loại bỏ tất cả các lĩnh vực cho các tệp. Đây là một quá trình rất tốn thời gian, đặc biệt là 250 GB (dữ liệu + nhật ký). Để tăng tốc mọi thứ, hãy bật tính năng này và sau đó SQL Server sẽ không chiếm không gian cho các tệp dữ liệu.

Xin lưu ý, SQL Server sẽ luôn loại bỏ tệp nhật ký , do đó bạn sẽ vẫn bị giới hạn bởi điều đó. Một tài liệu tham khảo khác để khởi tạo tệp nhật ký


Chính xác thì điều gì xảy ra trên đĩa cứng khi zero out all sectorsvà tại sao SQL luôn loại bỏ tệp nhật ký? lợi thế của việc đó là gì?
Mehrdad Kamelzadeh

Đây là quá trình xóa dữ liệu trên đĩa của bạn. Về cơ bản, khởi tạo tập tin ngay lập tức bỏ qua mà. Tuy nhiên, do cách tệp nhật ký hoạt động bên trong, SQL Server phải hoàn toàn loại bỏ nó để sử dụng nó. Bạn có thể tìm thêm chi tiết về nó ở đây .
Mike Fal

@MehrdadKamelzadeh Máy chủ SQL xóa tệp CHỈ áp dụng cho các tệp Dữ liệu . Các tệp nhật ký không thể khởi tạo bằng không. Tham khảo ( sqlskills.com/bloss/paul/ - ). Cũng tham khảo Làm thế nào để biết nếu bạn đã bật khởi tạo tức thì? ( sqlskills.com/bloss/paul/ - ).
Kin Shah

1
@Kin - Các tệp nhật ký phải được khởi tạo bằng 0, nhưng với IFI, bạn có thể bỏ qua việc không khởi tạo các tệp dữ liệu.
Simon Righarts

7

Nếu bạn chạy secpol.mscgiá trị cho Chính sách cục bộ, Chuyển nhượng quyền người dùng là Perform Volume Maintenance Tasksgì?

Giả định của tôi tại thời điểm này là tài khoản dịch vụ SQL Server không có quyền này và do đó, nó loại bỏ mdf và LDF. Không thể vượt qua LDF bằng 0 nhưng bạn có thể bỏ qua nó cho MDF.

SecPol

Tham khảo - http://timradney.com/2012/05/30/instant-file-initialization-for-sql-server-performance/

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.