Ескерім
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
конечной точке аналитики платформы Аналитики Azure Synapse Analytics
(PDW)
в Microsoft Fabric
Хранилище в Microsoft Fabric
Возвращает дату последнего обновления статистики для таблицы или индексированного представления.
Дополнительные сведения об обновлении статистики см. в разделе Статистика.
Соглашения о синтаксисе Transact-SQL
Синтаксис
STATS_DATE ( object_id , stats_id )
Аргументы
object_id
Идентификатор таблицы или индексированного представления, содержащего статистику.
stats_id
Идентификатор объекта статистики.
Типы возвращаемых данных
Возвращает datetime в случае успешного выполнения. Возвращает NULL, если большой двоичный объект статистики не был создан.
Замечания
Системные функции можно использовать в списке выбора, в предложении WHERE и в любом месте, где может быть использовано выражение.
Дата обновления статистики хранится в большом двоичном объекте статистики вместе с гистограммой и вектором плотности, а не в метаданных. Если нет данных для создания статистических данных, большой двоичный объект статистики не создается и дата недоступна. Это происходит с отфильтрованной статистикой, для которой предикат не возвращает ни одной строки, или с новыми пустыми таблицами.
Если статистика соответствует индексу, то значение stats_id в представлении каталога sys.stats совпадает со значением index_id в представлении каталога sys.indexes.
Разрешения
Необходимо членство в предопределенной роли базы данных db_owner или разрешение на просмотр метаданных для таблицы или индексированного представления.
Примеры
А. Возвращение даты последнего обновления статистики для таблицы
В следующем примере возвращается дата последнего обновления для каждого объекта статистики по таблице Person.Address
.
USE AdventureWorks2022;
GO
SELECT name AS stats_name,
STATS_DATE(object_id, stats_id) AS statistics_update_date
FROM sys.stats
WHERE object_id = OBJECT_ID('Person.Address');
GO
Если статистика соответствует индексу, то значение stats_id в представлении каталога sys.stats совпадает со значением index_id в представлении каталога sys.indexes и следующий запрос возвращает те же результаты, что и предшествующий. Если статистика не соответствует индексу, то она будет содержаться в результатах sys.stats, но не в результатах sys.indexes.
USE AdventureWorks2022;
GO
SELECT name AS index_name,
STATS_DATE(object_id, index_id) AS statistics_update_date
FROM sys.indexes
WHERE object_id = OBJECT_ID('Person.Address');
GO
Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)
B. Определение времени последнего обновления именованной статистики
В приведенном ниже примере создается статистика по столбцу LastName таблицы DimCustomer. Затем выполняется запрос для отображения даты статистики. После этого статистика обновляется, и запрос выполняется еще раз для отображения обновленной даты.
--First, create a statistics object
USE AdventureWorksPDW2012;
GO
CREATE STATISTICS Customer_LastName_Stats
ON AdventureWorksPDW2012.dbo.DimCustomer (LastName)
WITH SAMPLE 50 PERCENT;
GO
--Return the date when Customer_LastName_Stats was last updated
USE AdventureWorksPDW2012;
GO
SELECT stats_id, name AS stats_name,
STATS_DATE(object_id, stats_id) AS statistics_date
FROM sys.stats s
WHERE s.object_id = OBJECT_ID('dbo.DimCustomer')
AND s.name = 'Customer_LastName_Stats';
GO
--Update Customer_LastName_Stats so it will have a different timestamp in the next query
GO
UPDATE STATISTICS dbo.dimCustomer (Customer_LastName_Stats);
--Return the date when Customer_LastName_Stats was last updated.
SELECT stats_id, name AS stats_name,
STATS_DATE(object_id, stats_id) AS statistics_date
FROM sys.stats s
WHERE s.object_id = OBJECT_ID('dbo.DimCustomer')
AND s.name = 'Customer_LastName_Stats';
GO
В. Просмотр даты последнего обновления для всех объектов статистики по таблице
В этом примере возвращается дата последнего обновления для каждого объекта статистики в таблице DimCustomer.
--Return the dates all statistics on the table were last updated.
SELECT stats_id, name AS stats_name,
STATS_DATE(object_id, stats_id) AS statistics_date
FROM sys.stats s
WHERE s.object_id = OBJECT_ID('dbo.DimCustomer');
GO
Если статистика соответствует индексу, то значение stats_id в представлении каталога sys.stats совпадает со значением index_id в представлении каталога sys.indexes и следующий запрос возвращает те же результаты, что и предшествующий. Если статистика не соответствует индексу, то она будет содержаться в результатах sys.stats, но не в результатах sys.indexes.
USE AdventureWorksPDW2012;
GO
SELECT name AS index_name,
STATS_DATE(object_id, index_id) AS statistics_update_date
FROM sys.indexes
WHERE object_id = OBJECT_ID('dbo.DimCustomer');
GO
См. также
Системные функции (Transact-SQL)
UPDATE STATISTICS (Transact-SQL)
sp_autostats (Transact-SQL)
Статистика
sys.dm_db_stats_properties (Transact-SQL)
sys.stats
Статистика в Microsoft Fabric