Почему, когда я делаю это:Почему SELECT FROM sys.dm_db_index_usage_stats возвращает две строки/таблицу?
SELECT OBJECT_NAME(OBJECT_ID) AS DatabaseName, last_user_update,*
FROM sys.dm_db_index_usage_stats
WHERE OBJECT_ID=OBJECT_ID('TestTableName')
Могу ли я получить два записи, а не один?
Я планирую использовать last_user_update, чтобы определить, являются ли некоторые локально кэшированные данные из предыдущего вызова запроса текущими или может быть устаревшим, потому что таблица изменилась.
Столбец last_user_update идентичен в обеих записях, возвращаемых этим запросом. Могу ли я использовать значение в первой записи или они могут отличаться?
См захвата экрана ниже результатов:
DatabaseName last_user_update database_id object_id index_id user_seeks user_scans user_lookups user_updates last_user_seek last_user_scan last_user_lookup last_user_update system_seeks system_scans system_lookups system_updates last_system_seek last_system_scan last_system_lookup last_system_update
TestTableName 2016-04-27 07:53:51.740 5 939150391 1 0 101556 101557 6 NULL 2016-04-28 07:27:17.933 2016-04-28 07:27:17.927 2016-04-27 07:53:51.740 0 3 0 0 NULL 2016-04-27 07:52:49.203 NULL NULL
TestTableName 2016-04-27 07:53:51.740 5 939150391 2 101559 3 0 6 2016-04-28 07:27:17.927 2016-04-26 17:31:21.200 NULL 2016-04-27 07:53:51.740 0 1 0 0 NULL 2016-04-27 18:21:53.977 NULL NULL
Кроме того, ваш захват экрана показывает Index_id из 1, который является кластеризованным индексом – Shaneis
@Shaneis. Я не смотрел на это. Я прочитал текст под ним и выглядел так, как будто я увидел 0, который относится к следующему столбцу. Спасибо, отредактирован. –
+1 для «показывает последний раз, когда был выполнен план выполнения, содержащий оператор, который может обновлять этот индекс, а не то, что обновление определенно произошло. Также значения будут нулевыми после перезапуска службы или установки базы данных в автономном режиме (как это может произойти с авто закрыть). " – TheGameiswar