SQL Server 2008 R2 SP1 - Tempdb miễn phí Không gian trống miễn phí Có sẵn hiển thị giá trị âm


7

Xin hãy giúp đỡ vì vấn đề này đang khiến tôi phát điên ...

Tempdbcó bốn tệp dữ liệu và một tệp nhật ký. Chúng đều nằm trên cùng một ổ đĩa chuyên dụng.

Khi tôi nhấp chuột phải vào tempdbSQL Server Management Studio (SSMS) để xem Thuộc tính -> Chung ... Tôi thấy "Kích cỡ" là ~ 65000 MB với "Dung lượng trống" là ~ 64000 MB. Tuy nhiên, khi tôi cố gắng thu nhỏ các tệp qua GUI, tôi thấy rằng "không gian được phân bổ hiện tại" không thay đổi và vẫn hiển thị kích thước ban đầu.

Đây cũng là nơi "Không gian trống có sẵn" được hiển thị dưới dạng số âm. Cách giải quyết duy nhất tôi tìm thấy cho đến nay là khởi động lại SQL Server để xóa tempdb, nhưng tôi không thể tiếp tục làm điều này.

Có ai đã từng gặp phải điều này và biết nguyên nhân gốc / giải pháp vĩnh viễn cho nó không?


2
1 - không thu nhỏ tempdb. 2 - bạn có nhận được bất kỳ lỗi nào sẽ nhắc bạn làm điều này không?
JNK

TempDB ở mức "~ 65000 MB" bởi vì đó là mức độ lớn cần thiết vào một lúc nào đó kể từ lần khởi động lại cuối cùng. Nếu đó là lớn như thế nào cần thiết, thì tôi tưởng tượng có một lý do cho điều đó. Thu hẹp nó sẽ chỉ gây ra I / O không cần thiết, trong quá trình thu nhỏ và trong tương lai khi nó phát triển trở lại.
Max Vernon

2
Vì vậy, thực sự bạn nên coi tempdb là một phần của cài đặt SQL cơ sở và không gian ổ đĩa đó nên được phân bổ vĩnh viễn cho tempdb.
JNK

Câu trả lời:


2

Mở phân tích truy vấn chạy DBCC UPDATEUSAGE('tempdb') Sau khi hoàn thành, kiểm tra giá trị temdb và nó sẽ hiển thị các giá trị thực.

Ngoài ra, điều này có thể giúp bạn.

Ngoài ra, hãy kiểm tra xem có bất kỳ giao dịch mở nào sử dụng dbcc opentran hoặc sp_whoisactive (SP của Adam Mechanic) không

Đây là một lỗi trong SQL Server 2008 SP1 được mô tả ở đây .

Vì tò mò, nó có gây ra vấn đề gì về hiệu suất không?


Tôi khá chắc chắn đây là hành vi lỗi. Tôi đã thấy điều tương tự trên một trong các trường hợp của chúng tôi (2008 R2 ... Tôi nghĩ RTM tại thời điểm đó) trước đây khi tôi thu nhỏ tempdbcác tệp. Cố gắng thu nhỏ khi nó ở trạng thái này thực sự đóng băng thể hiện. Tôi nghĩ rằng điều an toàn nhất là khởi động lại cá thể vào thời điểm thuận tiện. Vấn đề đã không quay trở lại kể từ đó và tôi sẽ không bắt đầu loay hoay với việc prod cố gắng tái tạo nó.
Jon Seigel

Nếu đây là một lỗi được báo cáo trong SP1 thì có vẻ như nó chưa được khắc phục, vì khách hàng của chúng tôi đã cài đặt Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64) Sep 21 2011 22:45:45 Copyright (c) 1988-2008 Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)và không gian trống âm vẫn được hiển thị cho tempdb.
Junior Mayhé

0

Chà, bạn phải kiểm tra cài đặt tempdb của mình và tổng quan về việc sử dụng máy chủ của bạn. Microsoft đưa ra những lời khuyên chính cho việc quản lý tempdb và tối ưu hóa tính hiệu quả của nó (Xem http://msdn.microsoft.com/en-us/l Library / ms175527 (v = sql.105 ) .aspx ). Hãy thử áp dụng chúng và xem kết quả (trong trường hợp của tôi, nó đã giúp tối ưu hóa cơ sở dữ liệu 17 GB của tôi thành 4GB)

Ngoài ra, bạn có thể sử dụng sp_spaceuse Proc nó cơ sở dữ liệu tạm thời. Nó sẽ cho bạn biết bảng nào tiêu thụ phần lớn không gian trong tệp dữ liệu. Bạn cũng có thể sử dụng Profiler để phát hiện tệp tự động phát triển và nhật ký tệp tự động phát triển. Nếu nó thường thay đổi - bạn tự động tempDb sẽ chiếm thêm dung lượng và có lẽ bạn phải thay đổi logic sử dụng các bảng #tmp của mình.

Và thu hẹp tempdb trên máy chủ hoạt động, nó có thể dẫn bạn đến một số rắc rối với các truy vấn trên cơ sở dữ liệu khác (chỉ thực hiện trong chế độ duy nhất)


-1

Bạn chỉ có thể thay đổi kích thước ban đầu của các tệp và theo đó thu nhỏ tệp sau đó. Vấn đề là kích thước cập nhật không phản ánh trong kích thước tệp và do đó không gian có sẵn là âm. Hi vọng điêu nay co ich.

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.