дата обновления статистики

Административные скрипты MS SQL > дата обновления статистики
09.04.2013 12:09:24



Статья:

-- дата обновления статистики
SELECT STATS_DATE(t1.object_id, stats_id),
      'UPDATE STATISTICS ['+ OBJECT_SCHEMA_NAME(t1.object_id, DB_ID()) + '].[' + object_name(t1.object_id) + ']([' + t1.name + ']) WITH FULLSCAN',
       t4.rows
  FROM sys.stats as t1
  inner join sys.objects as t2 on t1.object_id = t2.object_id
  left join sys.indexes  as t3 on t3.object_id = t1.object_id and
                                  t3.name = t1.name
  left join (select object_id, index_id, sum(rows) as rows
               from sys.partitions 
               group by object_id, index_id
            ) as t4 on t4.object_id = t3.object_id and
                       t4.index_id  = t3.index_id
  where STATS_DATE(t1.object_id, stats_id) < GETDATE()-5 and
        -- не учитываем отключенные индексы
        t3.is_disabled = 0 and
        -- исключаем автостатистику, по идее, в нормально спроектированной системе
        -- она создана по редким ad-hoc запросам, поэтому не является обязательной
        -- для принудительного обновления
        t1.auto_created = 0 and
        -- исключаем служебные объекты 
        t2.is_ms_shipped = 0
  order by t4.rows