Làm thế nào để kiểm tra khi thống kê được thực hiện lần cuối?


8

Gần đây chúng tôi đã có một số vấn đề với các chỉ mục của chúng tôi mà nhóm DBA của chúng tôi đã quy cho số liệu thống kê không được chạy gần đây. Điều này khiến tôi tự hỏi - làm cách nào tôi có thể kiểm tra xem số liệu thống kê đã được cập nhật gần đây qua SQL Management Studio chưa?

Tôi xin lỗi nếu câu hỏi này không giải thích điều này rất tốt - tôi chỉ được giới thiệu về thống kê cho đến bây giờ và trước đó sẽ xem xét các chỉ số bất cứ khi nào tôi gặp vấn đề liên quan đến hiệu suất.

Chỉnh sửa :

Tôi đang sử dụng như sau nhưng nhận được một lỗi cú pháp:

use *databasename*
exec sp_autostats *schema.tablename*

Lỗi tôi nhận được là:

Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '.'.

Tại sao lại thế này?

Câu trả lời:


11

Để chỉnh sửa của bạn - Bạn cần gửi tên bảng vào dấu ngoặc đơn:

EXEC sp_autostats 'tablename'

cho câu hỏi ban đầu

Đầu tiên - tìm số liệu thống kê bạn muốn kiểm tra:

chọn số liệu thống kê

Thứ hai - xem các thuộc tính của nó và ở đó bạn sẽ thấy dấu thời gian được cập nhật mới nhất:

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

Hoặc bạn có thể muốn thực hiện truy vấn sau:

SELECT t.name TableName, s.[name] StatName, STATS_DATE(t.object_id,s.[stats_id]) LastUpdated 
FROM sys.[stats] AS s
JOIN sys.[tables] AS t
    ON [s].[object_id] = [t].[object_id]
WHERE t.type = 'u'

8

Cách tốt nhất để có được thông tin về thống kê là thông qua lệnh

DBCC SHOW_STATISTICS (<tablename>,<indexname>)

Điều đó sẽ trả về thông tin không chỉ về thời điểm các số liệu thống kê được cập nhật, mà cả kích thước, mật độ của chúng, mức độ chọn lọc của chúng và biểu đồ cho thấy sự phân phối dữ liệu. Với tất cả điều đó, bạn có thể xác định xem các số liệu thống kê đó có được cập nhật và hiệu quả hay khô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.