Cơ sở dữ liệu ứng dụng nhà cung cấp của chúng tôi rất chuyên sâu TempDB.
Máy chủ là ảo (VMWare) với 40 lõi và RAM 768GB, chạy SQL 2012 Enterprise SP3.
Tất cả các cơ sở dữ liệu bao gồm TempDB đều có trên SSD Cấp 1 trong SAN. Chúng tôi có 10 tệp dữ liệu tempdb, mỗi tệp được tăng lên 1GB và chúng không bao giờ tự động phát triển. Tương tự với tệp nhật ký 70GB. Cờ Trace 1117 & 1118 đã được thiết lập.
sys.dm_io_virtual_file_stats hiển thị hơn 50 Terabyte đọc / ghi trên dữ liệu và tệp nhật ký tempdb trong tháng qua, với io_stall tích lũy trong 250 giờ hoặc 10 ngày.
Chúng tôi đã điều chỉnh mã và SP của nhà cung cấp trong hơn 2 năm qua.
Bây giờ, chúng tôi đang nghĩ đến việc đặt các tệp tempdb trên RAM Drive vì chúng tôi có rất nhiều bộ nhớ. Vì tempdb bị hủy / tái tạo khi máy chủ được khởi động lại, nên đây là một ứng cử viên lý tưởng để đặt vào bộ nhớ dễ bay hơi cũng bị xóa khi máy chủ được khởi động lại.
Tôi đã thử nghiệm điều này trên môi trường thấp hơn và nó đã dẫn đến thời gian truy vấn nhanh hơn nhưng việc sử dụng CPU tăng lên, vì CPU đang làm việc nhiều hơn thay vì chờ đợi trên ổ đĩa tempdb chậm.
Có ai khác đặt tempdb của họ trên RAM trong các hệ thống sản xuất oltp cao không? Có bất lợi lớn? Có bất kỳ nhà cung cấp để lựa chọn cụ thể hoặc tránh?