Я использую SQL Server 2012 и имею таблицу в моей базе данных с 10 строками, которые не имеют запроса в sql-сервере профилировщика. Но когда я использую dm_db_index_usage_stats
для использования индексов обследований, индекс первичного ключа этой таблицы имеет высокие user_update
и user_seek
.sql server высокий индекс использования
Я не знаю, почему этот индекс имеет высокое обновление и поиск.
Среднее обновление для этой неиспользованной таблицы составляет около 1000 обновлений в минуту.
Редактировать
эта таблица не имеет никакого внешнего ключа с другой таблицей и не имеют какой-либо зависимости.
Я думаю, что эта проблема была ошибкой в sql-сервере.
EDIT 2
Когда я падаю и воссоздать эту таблицу и вставить данные на него еще раз, использование индекса этой таблицы не изменилось.
Я думаю, возможно, существуют некоторые таблицы, подобные этой таблице (без использования и обновления индекса и поиска индекса).
EDIT 3
я пишу после обновления триггера на этой таблице, и сохранить обновленную запись в другой таблице (JohnLBevan suggest
) но не вставляйте какие-либо записи на новую таблицу, значит этот триггер дону Не бегай. но index user_seek и index user_update изменяются. Я твердо верю, что эта проблема является ошибкой в SQL Server. но я не знаю, что эти обновления и поиск эффективны в производительности.
Edit 4
Я использую ниже код, чтобы получить использование индекса:
SELECT *
From
(SELECT DB_NAME(ddius.database_id)AS DatabaseName, OBJECT_NAME(ddius.object_id) AS object_name ,
CASE
WHEN (SUM(user_updates + user_seeks + user_scans + user_lookups) = 0)
THEN NULL
ELSE (CAST(SUM(user_seeks + user_scans + user_lookups) AS DECIMAL)
/CAST(SUM(user_updates + user_seeks + user_scans
+ user_lookups) AS DECIMAL))
END AS RatioOfReads ,
CASE
WHEN (SUM(user_updates + user_seeks + user_scans + user_lookups) = 0)
THEN NULL
ELSE (CAST(SUM(user_updates) AS DECIMAL)
/CAST(SUM(user_updates + user_seeks + user_scans
+ user_lookups) AS DECIMAL))
END AS RatioOfWrites ,
SUM(user_updates + user_seeks + user_scans + user_lookups)
AS TotalReadOperations ,
SUM(user_updates) AS TotalWriteOperations
FROM sys.dm_db_index_usage_stats AS ddius
JOIN sys.indexes AS i ON ddius.object_id = i.object_id
AND ddius.index_id = i.index_id
WHERE i.type_desc IN ('CLUSTERED', 'HEAP') --only works in Current db
GROUP BY ddius.database_id,ddius.object_id) Z
ORDER BY TotalWriteOperations desc --OBJECT_NAME(ddius.object_id)
Этот вопрос, как представляется, не по теме, потому что ему не хватает достаточной соответствующей информации –
неиспользуемые таблицы не обновляются. –
Неиспользуемые таблицы не должны обновляться. но эта таблица имеет большое обновление без использования. –