Đang sử dụng SQL SERVER 2012Tôi có Auto Update Stats ON của tôi trong cơ sở dữ liệu của tôi.
Từ liên kết bên dưới tôi đã học được rằng, các thống kê Cập nhật tự động sẽ kích hoạt cho mọi SQRT(1000 * Table rows)thay đổi trong các hàng của bảng.
https://bloss.msdn.microsoft.com/srgolla/2012/09/04/sql-server-statistic-explained/
Tôi đã tạo một bảng với 1000 bản ghi
SELECT TOP 500 Row_number()OVER (ORDER BY (SELECT NULL)) rn,
name
INTO stst
FROM sys.objects
Tạo số liệu thống kê
CREATE STATISTICS rn
ON stst (rn)
CREATE STATISTICS name
ON stst (name)
Kiểm tra số liệu thống kê đã tạo
DBCC show_statistics('stst', rn) -- Rows 500
DBCC show_statistics('stst', name) -- Rows 500
Theo công thức
select SQRT(1000 * 500) -- 707.106781186548
Vì vậy, nếu tôi thêm / sửa đổi 707.106781186548các bản ghi trong bảng thống kê cập nhật tự động của mình sẽ kích hoạt
Thêm 1000nhiều bản ghi vào bảng của tôi, quá đủ để bắnauto update stats
INSERT INTO stst(rn,name)
SELECT TOP 1000 Row_number()OVER (ORDER BY (SELECT NULL)) rn,
a.name
FROM sys.objects a
Để bắn auto update stats
Select * from stst
Kiểm tra số liệu thống kê
DBCC show_statistics('stst', rn) -- Rows 500
DBCC show_statistics('stst', name) -- Rows 500
Thật không may vẫn chỉ Rowslà 500.
Ngay cả sau khi chèn 1000các bản ghi vào bảng của tôi rõ ràng là lớn hơn 707.106781186548trong khi thực hiện SELECTtại sao các số liệu thống kê Tự động cập nhật không kích hoạt? Tôi đang thiếu gì ở đây