2013-02-28 24 views
5

Tempdb của cá thể của tôi lớn lên ăn hết dung lượng đĩa trống và khiến ứng dụng bị hỏng. Đã phải khởi động lại cá thể trong trường hợp khẩn cấp. Tuy nhiên, tôi muốn nghiên cứu và đào sâu về những gì khiến cho db tạm thời phát triển đột ngột. Các truy vấn, quy trình nào đã đặt ra điều này? Ai đó có thể giúp tôi để kéo các thông tin cần thiết. Tôi biết tôi sẽ không nhận được nhiều dữ liệu lịch sử từ serevr SQL. Tôi đã triển khai Trình quản lý chẩn đoán SQL Idera (công cụ của bên thứ ba). Bất kỳ trợ giúp nào để sử dụng công cụ này sẽ thực sự được đánh giá cao.SQL Server 2005- Điều tra điều gì đã gây ra tempdb phát triển lớn

+1

Tôi không nghĩ bạn có thể thực hiện phân tích sau phân tích. Tuy nhiên, bạn có thể đọc nhiều thông tin thú vị về cách theo dõi việc sử dụng tempdb của mình tại đây: http://technet.microsoft.com/library/Cc966545 –

Trả lời

2

Có một số lý do có thể khiến tempdb của bạn trở nên rất lớn.

Rất nhiều phân loại - nếu điều này đòi hỏi nhiều bộ nhớ hơn máy chủ sql của bạn đã sau đó nó sẽ lưu trữ tất cả kết quả tạm thời trong tempdb lệnh

DBCC - nếu bạn đang thường xuyên chạy các lệnh như DBCC CHECKDB này có thể là nguyên nhân. Những chức năng lưu trữ kết quả của nó trong tạm db

resultsets rất lớn - những cũng đang sử dụng tạm thời db để chạy đúng

Rất nhiều giao dịch nặng như chèn số lượng lớn

Kiểm tra bài viết này để biết thêm chi tiết http://msdn.microsoft.com/en-us/library/ms176029.aspx về cách khắc phục sự cố này.

1

AK2, Chúng tôi cũng có công cụ Idera DM. Nếu bạn biết khung thời gian xung quanh thời gian tempdb của bạn đã được sử dụng rất nhiều, bạn có thể vào History trên công cụ Idera để xem truy vấn nào đang chạy vào lúc đó và điều gì dẫn đến máy chủ đến ống ... Trên "Tempdb Space overTime "bạn thường sẽ nhìn thấy một đường thẳng hoặc một đồ thị nhưng tại thời điểm sử dụng nặng tempdb có một pike và thả thẳng. Đề cập đến khung thời gian này, bạn có thể kiểm tra vào Phiên> Chi tiết cũng xem truy vấn chính xác và ai đang chạy truy vấn.

Trong máy chủ của chúng tôi, điều này thường xảy ra khi có một truy vấn dài thực hiện nhiều thao tác. hoặc khi có một truy vấn tốn kém liên quan đến việc bán phá giá vào biến bảng/bảng tạm thời. Hy vọng điều này sẽ hữu ích.

0

Bạn có thể sử dụng SQL Profiler. Vui lòng thử liên kết dưới đây

Sql Profiler

3

Đối với phân tích sau khi chết, bạn có thể sử dụng các công cụ đã được cài đặt trên máy chủ của bạn. Để phân tích chủ động trong tương lai, bạn có thể sử dụng các dấu vết SQL trực tiếp trong SQL Profiler hoặc truy vấn các dấu vết bằng cách sử dụng các câu lệnh SQL.

sys.fn_trace_gettable

sys.trace_events

Bạn cũng có thể sử dụng một công cụ kiểm toán theo dõi tất cả các sự kiện đã xảy ra trên một trường hợp SQL Server và cơ sở dữ liệu, chẳng hạn như ApexSQL Comply. Nó cũng sử dụng các dấu vết SQL, tự động cấu hình chúng và xử lý thông tin đã capture. Nó theo dõi đối tượng và truy cập dữ liệu và thay đổi, thất bại và đăng nhập thành công, thay đổi bảo mật, v.v. ApexSQL Tuân thủ tải tất cả các thông tin bị bắt vào một kho lưu trữ tập trung.

enter image description here

Các vấn đề liên quan