STATS_DATE (Transact-SQL)STATS_DATE (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL Azure даAzure Synapse Analytics (хранилище данных SQL) даParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Возвращает дату последнего обновления статистики для таблицы или индексированного представления.Returns the date of the most recent update for statistics on a table or indexed view.

Дополнительные сведения об обновлении статистики см. в разделе Статистика.For more information about updating statistics, see Statistics.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQLTopic link icon Transact-SQL Syntax Conventions

СинтаксисSyntax

STATS_DATE ( object_id , stats_id )  

АргументыArguments

object_idobject_id
Идентификатор таблицы или индексированного представления, содержащего статистику.ID of the table or indexed view with the statistics.

stats_idstats_id
Идентификатор объекта статистики.ID of the statistics object.

Типы возвращаемых данныхReturn Types

Возвращает datetime в случае успешного выполнения.Returns datetime on success. Возвращает NULL, если большой двоичный объект статистики не был создан.Returns NULL if a statistics blob was not created.

RemarksRemarks

Системные функции можно использовать в списке выбора, в предложении WHERE и в любом месте, где может быть использовано выражение.System functions can be used in the select list, in the WHERE clause, and anywhere an expression can be used.

Дата обновления статистики хранится в большом двоичном объекте статистики вместе с гистограммой и вектором плотности, а не в метаданных.Statistics update date is stored in the statistics blob object together with the histogram and density vector, not in the metadata. Если нет данных для создания статистических данных, большой двоичный объект статистики не создается и дата недоступна.When no data is read to generate statistics data, the statistics blob is not created, and the date is not available. Это происходит с отфильтрованной статистикой, для которой предикат не возвращает ни одной строки, или с новыми пустыми таблицами.This is the case for filtered statistics for which the predicate does not return any rows, or for new empty tables.

Если статистика соответствует индексу, то значение stats_id в представлении каталога sys.stats совпадает со значением index_id в представлении каталога sys.indexes.If statistics correspond to an index, the stats_id value in the sys.stats catalog view is the same as the index_id value in the sys.indexes catalog view.

РазрешенияPermissions

Необходимо членство в предопределенной роли базы данных db_owner или разрешение на просмотр метаданных для таблицы или индексированного представления.Requires membership in the db_owner fixed database role or permission to view the metadata for the table or indexed view.

ПримерыExamples

A.A. Возвращение даты последнего обновления статистики для таблицыReturn the dates of the most recent statistics for a table

В следующем примере возвращается дата последнего обновления для каждого объекта статистики по таблице Person.Address.The following example returns the date of the most recent update for each statistics object on the Person.Address table.

USE AdventureWorks2012;  
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 и следующий запрос возвращает те же результаты, что и предшествующий.If statistics correspond to an index, the stats_id value in the sys.stats catalog view is the same as the index_id value in the sys.indexes catalog view, and the following query returns the same results as the preceding query. Если статистика не соответствует индексу, то она будет содержаться в результатах sys.stats, но не в результатах sys.indexes.If statistics do not correspond to an index, they are in the sys.stats results but not in the sys.indexes results.

USE AdventureWorks2012;  
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 (хранилище данных SQL)Azure Synapse Analytics (SQL DW) и Параллельное хранилище данныхParallel Data WarehouseExamples: Azure Synapse Analytics (хранилище данных SQL)Azure Synapse Analytics (SQL DW) and Параллельное хранилище данныхParallel Data Warehouse

Б.B. Определение времени последнего обновления именованной статистикиLearn when a named statistics was last updated

В приведенном ниже примере создается статистика по столбцу LastName таблицы DimCustomer.The following example creates statistics on the LastName column of the DimCustomer table. Затем выполняется запрос для отображения даты статистики.It then runs a query to show the date of the statistics. После этого статистика обновляется, и запрос выполняется еще раз для отображения обновленной даты.Then it udpates the statistics and runs the query again to show the updated date.

--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    

В.C. Просмотр даты последнего обновления для всех объектов статистики по таблицеView the date of the last update for all statistics on a table

В этом примере возвращается дата последнего обновления для каждого объекта статистики в таблице DimCustomer.This example returns the date for when each statistics object on the DimCustomer table was last updated.

--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 и следующий запрос возвращает те же результаты, что и предшествующий.If statistics correspond to an index, the stats_id value in the sys.stats catalog view is the same as the index_id value in the sys.indexes catalog view, and the following query returns the same results as the preceding query. Если статистика не соответствует индексу, то она будет содержаться в результатах sys.stats, но не в результатах sys.indexes.If statistics do not correspond to an index, they are in the sys.stats results but not in the sys.indexes results.

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  

См. также:See Also

Системные функции (Transact-SQL) System Functions (Transact-SQL)
UPDATE STATISTICS (Transact-SQL) UPDATE STATISTICS (Transact-SQL)
sp_autostats (Transact-SQL) sp_autostats (Transact-SQL)
Статистика Statistics
sys.dm_db_stats_properties (Transact-SQL) sys.dm_db_stats_properties (Transact-SQL)
sys.statssys.stats