Lưu ý: bài đăng này cũng có thể hữu ích:
Các vấn đề với tệp mdf TempDB ngày càng tăng
Trừ khi bạn có thể tìm ra quy trình nào đang sử dụng bảng công việc đó (và có thể tiêu diệt nó một cách an toàn), tôi sẽ phải đồng ý với những gì tìm kiếm của bạn đã mang lại: quay vòng máy chủ và bạn sẽ có thể thu nhỏ tempdb.
Một câu hỏi khác đã giải quyết việc tìm ra điều này cho các bảng #temp; Tôi không biết nếu nó có thể được điều chỉnh cho các bảng làm việc:
Tìm phiên nào đang giữ bảng tạm thời
Tôi cũng đã viết về nó (một lần nữa, cho các bảng #temp):
http://sqlperformance.com/2014/05/t-sql-queries/dude-who-owns-that-temp-table
Tôi nghi ngờ bảng làm việc có liên quan đến cách ly ảnh chụp / lưu trữ phiên bản, nhưng chỉ trong trường hợp:
Tìm các giao dịch đang lấp đầy cửa hàng phiên bản
Ngoài ra, đừng dựa vào DBCC OPENTRAN;
- Tôi đã quan sát nhiều tình huống mà tôi biết tôi có một giao dịch đang hoạt động nhưng nó không hiển thị ở đó. Và lưu ý rằng bối cảnh cơ sở dữ liệu là quan trọng; cơ sở dữ liệu nơi giao dịch được kích hoạt không nhất thiết là tempdb. Bạn thấy gì ở đây? Có gì không
SELECT * FROM sys.dm_tran_active_transactions
WHERE name = N'worktable';
Khi bạn đã thu nhỏ tempdb
Tất nhiên, đây không phải là một giải pháp lâu dài. Bạn sẽ thu nhỏ tempdb, và sau đó nó sẽ phát triển trở lại. Điều này có thể trở nên rất nhàm chán và tẻ nhạt khi chơi trò chơi này mỗi khi nó xảy ra. Và nếu nó sẽ phát triển trở lại, bạn sẽ làm gì với không gian trống đó trong lúc này? Cho thuê nó và sau đó đuổi người khi tempdb cần lại? Bạn cần phải:
- Khắc phục quá trình làm cho tempdb phát triển lớn bất thường ngay từ đầu.
- Phân bổ đủ không gian cho tempdb để nó không cần phát triển và ngừng thu hẹp nó (đặc biệt là nếu chỉ là tạm thời; đây chỉ là công việc lãng phí!).
Một vài gợi ý khác:
- Không sử dụng
SHRINKDATABASE
(nên được gọi là phân đoạn tự động) hoặc UI. Viết các SHRINKFILE
lệnh cụ thể, nhắm mục tiêu để ảnh hưởng đến các tập tin cá nhân.
- Cân nhắc sử dụng nhiều tệp cho tempdb (mà bạn có thể trải ra các bộ lưu trữ khác nhau nếu / khi có thể) và xem xét các cờ theo dõi 1117 (miễn là hành vi này cũng sẽ không ảnh hưởng đến cơ sở dữ liệu người dùng của bạn) và 1118.
- Một số mẹo về giảm thiểu sử dụng tempdb tại đây: