Как я контролирую и нахожу неиспользованные индексы в sql базе данных

От Вашего примера появляется, как будто Вы хотите выполниться, сценарий Python и иметь вывод сценария появляются в текущем буфере Vim. Если это корректно, то можно сделать следующее в командной строке в Vim:

%!python -c "for i in xrange(25): print 6*i"

-c опция к python дает ему сценарий для выполнения. Однако можно найти эту технику полезной только в очень простых делах, потому что в отличие от некоторых других языков, Python не предоставляет себя хорошо записи полных программ всех на одной строке.

9
задан Community 23 May 2017 в 10:28
поделиться

2 ответа

В настоящее время (по состоянию на SQL Server 2005–2008) информация о статистике индекса SQL хранится только в памяти, поэтому вам придется выполнять часть работы самостоятельно, если вы хотите, чтобы она сохранялась в перезапускается и база данных отсоединяется.

Обычно я создаю задание, которое запускается каждый день и делает снимок информации, содержащейся в таблице sys.dm_db_index_usage_stats , в настраиваемую таблицу, которую я создаю для рассматриваемой базы данных.

Кажется, это будет работать довольно хорошо до будущей версии SQL, которая будет поддерживать постоянную статистику использования индекса.

7
ответ дан 4 December 2019 в 10:33
поделиться

Вытащил этого щенка с http://blog.sqlauthority.com/2008/02/11/sql-server-2005-find-unused-indexes-of-current- база данных / . Обратите внимание, что это работает для 2005 года и выше. Ключ - это JOIN к системной таблице SYS.DM_DB_INDEX_USAGE_STATS .

USE AdventureWorks
GO
DECLARE @dbid INT
SELECT @dbid = DB_ID(DB_NAME())
SELECT OBJECTNAME = OBJECT_NAME(I.OBJECT_ID),
                    INDEXNAME = I.NAME,
                    I.INDEX_ID
FROM SYS.INDEXES I
JOIN SYS.OBJECTS O ON I.OBJECT_ID = O.OBJECT_ID
WHERE OBJECTPROPERTY(O.OBJECT_ID,'IsUserTable') = 1
AND   I.INDEX_ID NOT IN (

SELECT S.INDEX_ID
FROM SYS.DM_DB_INDEX_USAGE_STATS S
WHERE S.OBJECT_ID = I.OBJECT_ID
AND   I.INDEX_ID = S.INDEX_ID
AND   DATABASE_ID = @dbid)
ORDER BY OBJECTNAME,
         I.INDEX_ID,
         INDEXNAME ASC
GO
3
ответ дан 4 December 2019 в 10:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: