thực hành tốt nhất cho tempdb autogrowth là gì?


7

Tôi có máy chủ của khách hàng với khoảng 15 cơ sở dữ liệu trong trường hợp này với tổng dữ liệu khoảng 100 GB. Một trong những cơ sở dữ liệu dành cho một ứng dụng sysaid. các tệp db temp của anh ấy là một mdf một ndf và tất nhiên là một ldf. mdf nằm trên cùng ổ đĩa với các mdf khác và vì vậy nếu tệp ldf.

Khi tôi đặt các thuộc tính tự động tăng trưởng, tôi biết tôi nên giữ nó ở mức tăng trưởng không giới hạn nhưng khi tôi cần chọn giữa tự động tăng theo% hoặc MB thì nên chọn gì? và làm thế nào để tôi biết số cấu hình?

Cảm ơn trước!




Câu trả lời:


9

Đối với tôi, cách tốt nhất là chỉ kích thước các tệp đủ lớn, ngay từ đầu, để phù hợp với sự tăng trưởng mà bạn mong đợi.

Hãy sử dụng một số số đơn giản. Giả sử bạn có ổ đĩa 100 GB mà bạn đã phân bổ cho tempdb (hoặc 100 GB của một số ổ đĩa được chia sẻ). Ví dụ của bạn có 4 tệp tempdb và bạn đã quyết định đặt chúng ban đầu ở mức 100 MB và tăng 10 MB mỗi lần. Ban đầu, ổ đĩa 100 GB hoặc lát đó trông như thế này (rõ ràng không phải là tỷ lệ):

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

Khi hệ thống của bạn sử dụng tài nguyên tempdb, mỗi tệp tempdb sẽ tăng lên, 10 MB bằng cách kích hoạt 10 MB. Sau một vài sự tăng trưởng:

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

Lưu ý rằng mỗi sự kiện tăng trưởng, trong khi có khả năng diễn ra nhanh, buộc tất cả các kết nối phải chờ. Điều này rõ rệt hơn khi Khởi tạo tệp tức thì không được bật và nếu các tệp được định cấu hình để phát triển cùng nhau (yêu cầu cờ theo dõi trong một số phiên bản, nhưng đây là điều đúng đắn, vì bạn không muốn bất kỳ tệp nào lớn hơn những người khác).

Khi bạn đến cuối ổ đĩa, cả 4 tệp sẽ không phát triển cùng một lúc . Và đây là một sự kiện liên tục kinh doanh. Khi tempdb không thể phát triển ở đây, hoạt động sẽ dừng lại:

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

Bây giờ, nếu bạn đang đến thời điểm này, bạn cần phải thừa nhận rằng bạn cần thay đổi cách bạn sử dụng tempdb hoặc 100 GB là không đủ và bạn cần phân bổ thêm dung lượng. Nhưng tôi sẽ lập luận rằng tốt hơn hết là chỉ cần bắt đầu ở đây và định cấu hình kích thước này cho kích thước tệp dữ liệu ban đầu tempdb của bạn:

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

Vâng, về mặt kỹ thuật, tôi sẽ kích thước chúng ở mức 20 GB mỗi ổ, với tốc độ tự động 500 MB. Điều này cho phép bạn vẫn được cảnh báo trước khi điền vào lát 100 GB, nhưng không phải trả tiền cho tất cả các tăng trưởng tệp tăng dần trong thời gian đó.

Rốt cuộc, nếu tempdb sẽ phát triển để lấp đầy không gian đó, thì không giống như bạn có thể sử dụng nó cho bất cứ điều gì khác.

kích thước nào tôi nên cung cấp cho autogrowth

Không có số ma thuật (mặc định theo cách truyền thống là quá bảo thủ cho sử dụng thực tế, nhưng điều này đang trở nên tốt hơn). Cài đặt tự động phát triển của bạn sẽ dựa trên các đặc tính hiệu suất của đĩa và tần suất bạn mong đợi tăng lên. Nếu bạn có SSD hoặc tương tự và đã bật IFI, kích thước có thể được gắn chặt hơn nhiều với mức độ cảnh báo bạn muốn có trước khi nhấn vào cuối lát. Nếu bạn có spinny, ổ đĩa cơ và / hoặc không bật IFI, có lẽ bạn sẽ muốn kiểm tra các cài đặt khác nhau và xem thời gian cần thiết để phát triển tệp theo số tiền khác nhau đáp ứng khả năng chịu đựng của bạn đối với tất cả các giao dịch trên hệ thống chờ đợi.


"Tôi chỉ biết mặc định là ngu ngốc" Lưu ý rằng SQL 2016+ đã sửa lỗi hành vi tự động phát sinh, làm cho nó thực sự phù hợp với mặc định.
David Browne - Microsoft

@ DavidBrowne-Microsoft Chắc chắn là tốt hơn; Tôi không biết nếu bất kỳ số nào thường phù hợp. Không có một kích cỡ phù hợp cho tất cả, nhưng phù hợp phụ thuộc vào phần cứng và khối lượng công việc. Mọi thứ từ 2008 -> 2016 là 1 MB cho dữ liệu, 10% cho nhật ký. Ừ Vì vậy, có, 64 MB cho cả hai chắc chắn là tốt hơn. Bạn có biết không nếu bạn nhận được mặc định mới cho cơ sở dữ liệu mới sau khi nâng cấp ? Tôi đã không kiểm tra điều này và không thể nhớ lại nếu quá trình nâng cấp thay đổi model.
Aaron Bertrand

1
Nếu có cài đặt một kích cỡ phù hợp với tất cả, thậm chí sẽ không có núm :)
David Browne - Microsoft

-4

Bạn không nên luôn luôn đặt tăng trưởng tự động thành không giới hạn. Nếu có gì sai, bạn không muốn lấp đầy đĩa. Và bạn muốn một cái đầu lên rằng một cái gì đó không được như bạn mong đợi. Chọn một số lượng lớn mà bạn không nghĩ rằng mình sẽ cần nếu mọi thứ diễn ra như mong đợi.

Phải mất thời gian để tạo và phát triển. Nếu bạn bắt đầu ở mức 20 GB thì tổng thời gian sẽ được so sánh để bắt đầu ở mức 10 GB và tăng thêm 10 GB một lần.

Chọn một số bắt đầu sẽ phù hợp với nhu cầu bình thường của bạn. Bạn có thể bắt đầu nhỏ và xem nó lớn nhanh như thế nào khi hoạt động bình thường.

Một số lượng cố định 10 GB sẽ là 9 mức tăng trưởng để đạt tới 100 GB. Nếu bạn tăng gấp đôi (100%) sẽ là 4 mức tăng trưởng để đạt 160GB. Tôi thường chọn như 10-40%.

Bạn nhận được một số phân mảnh khi bạn phát triển nhưng đó không phải là một yếu tố trừ khi bạn đang phát triển rất nhiều (như 20+).

Nếu bạn có nhiều ổ đĩa vật lý hơn thì tốt nhất là đặt nó trên một ổ đĩa khác để tăng lưu lượng. TempDB có ít hoặc không cần dự phòng.

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.