AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.02.2014, 17:16   #10  
AlexeyS is offline
AlexeyS
Участник
 
404 / 339 (12) ++++++
Регистрация: 15.06.2004
Адрес: москва
Готовый запрос
Этот запрос возвращает список индексов, которые никогда не использовались в планах исполнения запросов,
и показывает число изменений на страницах каждого такого индекса. Вы можете найти не только индексы,
которые лежат в базе данных мёртвым грузом, но и те индексы,
которые за счёт большого числа изменений приносят только вред
(в виде затрат на изменения значений ключей индекса).

X++:
SELECT   OBJECT_NAME(i.object_id) AS [Table Name],
         i.name AS [Not Used Index Name],
         s.last_user_update AS [Last Update Time],
         s.user_updates AS [Updates]
FROM     sys.dm_db_index_usage_stats AS s
JOIN     sys.indexes AS i
ON       i.object_id = s.object_id
AND      i.index_id = s.index_id
JOIN     sys.objects AS o
ON       o.object_id = s.object_id
WHERE    s.database_id = DB_ID()
AND      (    user_scans   = 0
          AND user_seeks   = 0
          AND user_lookups = 0
          AND last_user_scan   IS NULL
          AND last_user_seek   IS NULL
          AND last_user_lookup IS NULL 
         )
AND      OBJECTPROPERTY(i.[object_id],         'IsSystemTable'   ) = 0
AND      INDEXPROPERTY (i.[object_id], i.name, 'IsAutoStatistics') = 0
AND      INDEXPROPERTY (i.[object_id], i.name, 'IsHypothetical'  ) = 0
AND      INDEXPROPERTY (i.[object_id], i.name, 'IsStatistics'    ) = 0
AND      INDEXPROPERTY (i.[object_id], i.name, 'IsFulltextKey'   ) = 0
AND      (i.index_id between 2 AND 250 OR (i.index_id=1 AND OBJECTPROPERTY(i.[object_id],'IsView')=1))
AND      o.type <> 'IT'
--ORDER BY OBJECT_NAME(i.object_id) 
order by [Updates] desc
если будете удалять индексы - следите за TransactionLog-ом. Индекс удаляется в транзакции и лог может запросто вырасти в разы, если удалить сразу несколько больших индексов (это актуально только есть ограничения на размер лога).

Последний раз редактировалось AlexeyS; 04.02.2014 в 17:21.
За это сообщение автора поблагодарили: mazzy (5), Logger (3), Link (4), Kabardian (6).
Теги
sql server, администратор бд, анализ, индекс, производительность

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
позволяют ли стандартные классы Аксапты проводить валидацию XML? (XMLTextReader, XMLSchema и т п) Cardagant DAX: Программирование 1 15.03.2013 00:24
Стандартные затраты и Отборочная накладная Димитрий DAX: Программирование 0 31.05.2012 09:40
Как часто вы кастомизируете стандартные сервисы номенклатур. Ievgenii DAX: Функционал 8 14.12.2009 13:35
Перестали работать индексы в запросах Antant DAX: Администрирование 2 03.08.2009 19:01
При каждом обращении строит индексы в Old nicko DAX: Администрирование 0 16.02.2005 08:57

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:39.