Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Удаление/создание статистки  [new]
ananas2
Member

Откуда:
Сообщений: 174
Добрый день!

Наткнулся недавно в коде на вот такой скрипт, вначале ужаснулся, но так как с MSSQL плохо знаком, он заставил задуматься. Похоже он сгенерен каким-то недалеким индекс адвизором и выглядит очень сомнительно.

IF  EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Document1]') AND name = N'IDX_Document1')

            DROP INDEX [IDX_Document1] ON [dbo].[Document1] WITH ( ONLINE = OFF )

            CREATE NONCLUSTERED INDEX [IDX_Document1] ON [dbo]. [Document1]

          ( [col1], [col2], [col3])

             INCLUDE ([col4], [col5], [col6])
            WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]

   IF  EXISTS (SELECT  * FROM sys.stats WHERE name = N'_dta_stat_41123112_13_33_1'

                                 AND object_ID =  OBJECT_ID(N'[dbo].[Document1]'))

        DROP STATISTICS Document1._dta_stat_41123112_13_33_1
        CREATE STATISTICS [_dta_stat_41123112_13_33_1] on [dbo].[Document1] (col1, col2, col3)


Собсно, возникли следующие вопросы:

1) Разве при удалении индекса статистика не обновляется автоматически?
2) И при создании индекса?
3) В каких случаях вообще имеет смысл делать DROP STATISTICS?
4) Какие бенефиты мы получим от DROP STATISTICS? Таблицы статистики немного сдуются и все?
5) После DROP обязательно CREATE делать? UPDATE STATISTICS on index... не будет работать?

Буду очень признателен за ответы или ссылку на хорошую статью. Заранее спасибо!
12 сен 14, 08:26    [16566709]     Ответить | Цитировать Сообщить модератору
 Re: Удаление/создание статистки  [new]
Glory
Member

Откуда:
Сообщений: 104760
ananas2
1) Разве при удалении индекса статистика не обновляется автоматически?

Вы путаете статистику, содержащуюся в индексе со статистикой, созданной по полю/полям
Это разные объекты

ananas2
3) В каких случаях вообще имеет смысл делать DROP STATISTICS?

Для статистик, созданных rkvfyljq CREATE STATISTICS

ananas2
4) Какие бенефиты мы получим от DROP STATISTICS? Таблицы статистики немного сдуются и все?

Статистики создаюся для того, чтобы сервер мог построить лучший план выполнения. Если данная данная конкретная статистика не используется в ваших запросах, то разумется она не нужна

ananas2
5) После DROP обязательно CREATE делать? UPDATE STATISTICS on index... не будет работать?

Еще раз
Статистики создаюся для того, чтобы сервер мог построить лучший план выполнения. Если данная данная конкретная статистика не используется в ваших запросах, то разумется она не нужна.

ananas2
Буду очень признателен за ответы или ссылку на хорошую статью.

Хелп уже прочитан ? Статья, которая так и назывется Statistics ?
12 сен 14, 09:17    [16566787]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить