powered by simpleCommunicator - 2.0.34     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
25 сообщений из 213, страница 2 из 9
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39811600
zzzzzzzzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MindSergey Syrovatchenko,

А что кто то еще дефрагментирует индексы? А зачем?

SQL Server пофигу на все ваши ссд и видимость быстрой работы
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39811617
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zzzzzzzzzzMindSergey Syrovatchenko,

А что кто то еще дефрагментирует индексы? А зачем?

SQL Server пофигу на все ваши ссд и видимость быстрой работыПруф пожалуйста?
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39811629
Выложил версию 1.0.0.34 :

Добавил вывод лога в отдельном гриде

Возможность отключать некластерные индексы

Исправил мелкие ошибки при выделении

...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39812324
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Syrovatchenko,
Встретил ошибку
авторСообщение 102, уровень 15, состояние 1, строка 29
Incorrect syntax near ')'.

Для sys.dm_db_index_physical_stats срабатывает исключение
авторThe built-in function DB_ID can be specified. When using DB_ID without specifying a database name, the compatibility level of the current database must be 90 or greater.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39812342
andy st, а можно узнать версию SQL Server и compatibility level. Как я понял это 2008R2?
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39812357
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Syrovatchenkoandy st, а можно узнать версию SQL Server и compatibility level. Как я понял это 2008R2?
Код: sql
1.
2.
Microsoft SQL Server 2008 R2 (SP3) - 10.50.6529.0 (X64)   Mar 19 2015 13:19:13 
Copyright (c) Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 5.2 <X64> (Build : ) (Hypervisor) 


для проблемной базы compatibility level = 80
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39812396
Выложил версию 1.0.0.35 :

Исправил ошибку для SQL Server 2008: "The built-in function DB_ID can be specified. When using DB_ID without specifying a database name..."

Возможность задавать FILLFACTOR при ребилде индексов

Можно игнорировать read-only файловые группы при сканировании

Можно игнорировать обьекты на которые у нас нет ALTER прав

...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39812428
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Syrovatchenko,

а DATA_COMPRESSION поддерживается?
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39812433
komradDATA_COMPRESSION поддерживается?
Да. Есть возможность вручную задавать компрессию для индекса, менять ROW -> PAGE, PAGE -> ROW, убирать вовсе и тд.
Если это колумнстор, то там есть возможность его переводить в архивную колумнстор группу для большего уровня сжатия.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39812636
zzzzzzzzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mindzzzzzzzzzzпропущено...


SQL Server пофигу на все ваши ссд и видимость быстрой работыПруф пожалуйста?

какой именно пруф?
подумайте/погуглите/сравните конкретно с вашим случем...
Если индех фрагментировался по какой-либо причине оптимизатор запросов перестанет его использовать и будет вам фуллскан. Может ССД и вытянет какое-то время несмотря на увеличенный и никому не нужный обмен с диском. А так база медленно но уверенно превратится в помойку



https://sqlperformance.com/2017/12/sql-indexes/impact-fragmentation-plans
https://www.sqlskills.com/blogs/jonathan/does-index-fragmentation-matter-with-ssds/
https://sqlperformance.com/2017/12/sql-indexes/impact-fragmentation-planshttps://www.sqlservercentral.com/forums/reply/1379912
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39812639
zzzzzzzzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39812800
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zzzzzzzzzzMindпропущено...
Пруф пожалуйста?
Если индех фрагментировался по какой-либо причине оптимизатор запросов перестанет его использовать и будет вам фуллскан. Фу какой фрагментированный индекс. Я не буду его использовать.

Для начала, на внешнюю фрагментацию оптимизатору пофигу, к тому же ему негде ее взять. Остается внутренняя или заполненность страниц. Если речь про поиск по индексу, то вообще побоку что там с заполненностью страниц. Ну будет индекс на 30% больше и что? Как это на стоимость то повлияет? Количество логических чтений то не поменяется.
Если речь про скан индекса vs скан таблицы, то расскажите мне какая заполненность страниц должна быть у индекса чтобы он стал больше чем таблица? Даже в самом вырожденном случае если таблица очень узкая из 2х колонок, чтобы индекс стал больше таблицы заполненность должна упасть ниже 50% что по факту просто невозможно!
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39812819
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zzzzzzzzzz https://sqlperformance.com/2017/12/sql-indexes/impact-fragmentation-plans
https://www.sqlskills.com/blogs/jonathan/does-index-fragmentation-matter-with-ssds/
https://sqlperformance.com/2017/12/sql-indexes/impact-fragmentation-planshttps://www.sqlservercentral.com/forums/reply/1379912 Самый первый комментарий от весельчака Брента порадовал: "the fragmented query runs FASTER, not slower"

Вторая ссылка, для вырожденного примера с равнораспределенным ключем и сканом таблицы: " The actual runtimes of the two tests were nearly identical, and often flipped back and forth between which one took a few milliseconds longer than the other to complete for this demo. "
Возможно если база используется как data warehouse и в ней много сканов то может иметь смысл дефрагментировать, но не для OLTP нагрузки.

Аргументы Пола по сути противоречат друг другу:
"1. SSDs in no way stop the cause of index fragmentation: page splits from pages needing free space for a random insert or row size increase. A page split generates the same amount of transaction log, resource usage, and potential thread waits regardless of where the data/log files are stored.
2. Index fragmentation includes having many data/index pages with low page density (i.e. lots of empty, free space). Do you really want your expensive SSDs storing lots of empty space? SSDs don’t help here at all."
Чтобы избавиться от #1 (page splits) нужно по сути делать ребилд с fillfactor ниже 100, но сколько? 95, 90, 80? Если сделать слишком высокий то страницы быстро заполнятся и пойдут опять таки page splits, а если низкий, то чем ниже мы делаем fillfactor, тем сильнее получается фрагментация сразу после дорогостоящей операции ребилда! И таким образом получаем таки "low page density" прям по #2. Ну или я не так его понял.

Я не против обслуживания индексов как такового, я просто про то что в большинстве случаев ребилды всего подряд по бездумному правилу 5% - 30% не имеют особого смысла.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39812909
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавьте ещё большой и красный баннер перед началом работы, что если данные на SSD ни в коем случае не делать REBUILD. Это совершенно напрасная операция (ввиду алгоритмов рассеяния блоков в логике работы SSD), которая приводит только к преждевременному исчерпанию ресурса диска.
После ребилда нужно делать обновление статистики.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39812950
Александр ГладченкоПосле ребилда нужно делать обновление статистики.
Это вы в контексте того, что после ребилда делается FULL обновление статистики, а нужно делать какое-то другое?
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39812989
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39812995
Александр Гладченко, то есть необходимо предусмотреть ситуацию при ребилде кластерного индекса насильно еще обновлять все user_created и auto-created статистику на таблице?
Опционально это сделать не проблема, но как быть тогда с секционированными таблицами?
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39813035
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Syrovatchenko,
Дефрагментация на листовом уровне сломает все статистики, это будет особенно заметно на больших таблицах, где даже "новомодное" автообновление статистики не спасает от проблем с правильной статистикой для оптимизатора. В таких случаях часто помогает только обновление некластерных индексов с полным сканированием.
Секционирование вносит ещё большее разнообразие вариантов дефрагментации - будет интересно понаблюдать, как Вы с этим справитесь :) ...есть ведь ещё и фильтрованные индексы, и много чего ещё есть....
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39813038
Александр Гладченко, исходя из такого кейса предусмотреть возможность вместе с кластерным индексом ребилдить и все некластерные?
Если я вас правильно понял.

Текущий функционал по обновлению статистики работает только для таблиц где нет секционирования.
Думаю в дальшейнем можно будет заморочится и сделать все по феншую, но тут вопрос стоит ли?
Насколько часто нужно по секциям обновлять статистику? У меня в практике такое редко было.
Чаще всего, фильтрованную статистику только отдельно обновлял построенное по выбранным секциям.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39813048
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey SyrovatchenkoАлександр Гладченко, исходя из такого кейса предусмотреть возможность вместе с кластерным индексом ребилдить и все некластерные?
Если я вас правильно понял.

Текущий функционал по обновлению статистики работает только для таблиц где нет секционирования.
Думаю в дальшейнем можно будет заморочится и сделать все по феншую, но тут вопрос стоит ли?
Насколько часто нужно по секциям обновлять статистику? У меня в практике такое редко было.
Чаще всего, фильтрованную статистику только отдельно обновлял построенное по выбранным секциям.

Я не призывал ребилдить все некластерные индексы. Речь шла о статистиках.
Секционирование зависит от функции секционирования, а она может быть далеко не тривиальной и "работать" может не одна секция...
В природе ещё встречаются всякие распределённые секционированные представления, что будет со статистикой на их индексах, если отребилдить кластерный, который в основе представления - задайтесь таким вопросом...
Вопрос в том, кто будет отвечать на вопросы пользователей, когда ребилд индекса, выполненный с помощью Вашей утилиты, приведёт к простою промышленной базы? ...проконсультируйтесь на эту тему с хорошим юристом в этой области...
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39813054
zzzzzzzzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Mind]
>>Я не против обслуживания индексов как такового, я просто про то что в большинстве случаев ребилды всего подряд по бездумному правилу 5% - 30% не имеют особого смысла.
Я с вами уже почти согласен :) Зависит от конкретного случая.

zzzzzzzzzz. Ну будет индекс на 30% больше и что? Как это на стоимость то повлияет? Количество логических чтений то не поменяется.
при выборе индекса опимизатор стотрит на статистику и количество страниц индекса которое вырастет при фрагментации (где-то было в ссылках выше). Само абсолютное значение фрагментации в %% не смотрит
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39813126
zzzzzzzzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zzzzzzzzzz (где-то было в ссылках выше).

https://sqlperformance.com/2017/12/sql-indexes/impact-fragmentation-plans
в комментариях
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39813236
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zzzzzzzzzzMind>>Я не против обслуживания индексов как такового, я просто про то что в большинстве случаев ребилды всего подряд по бездумному правилу 5% - 30% не имеют особого смысла.
Я с вами уже почти согласен :) Зависит от конкретного случая.

пропущено...

при выборе индекса опимизатор стотрит на статистику и количество страниц индекса которое вырастет при фрагментации (где-то было в ссылках выше). Само абсолютное значение фрагментации в %% не смотритЕще раз. Это имеет значение только при скане индекса, потому что только тогда нужно прочитать все страницы, следовательно оценка расчитывается как [количество страниц в индексе] * [magic number]. Если же у нас поиск, то по барабану, ибо общее количество страниц в индексе никак не учитывается, какая разницы у вас индекс 10Гб или 15Гб если вам нужно прочитать 1 строку? Возможно на маленьких индексах будет на одно нелистовое чтение больше, но это во-первых, ничтожное падение производительности, во-вторых на больших таблицах даже такой разницы не будет.

Короче, если у вас огромное хранилище данных и много сканов, то возможно стоит дефрагментировать, лучше во время загрузки данных в то хранилище :)
Если у вас огромная, но правильно спроектированная OLTP база, и сканов нет, то смысл создавать лишнюю нагрузку без очевидного выигрыша, особенно если это 24/7 и нет больших технических окон? Если же есть сканы, тогда возможно лишняя нагрузка от сканов перевешивает ребилды, но тоже не факт. Как было написано в одной из статей, SSD может сгладить негативный эффект от фрагментированных индексов если дисковая не сильно нагружена.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39813697
Тут коллега интересную идею предложил. Прикрутить конструктор условий, т.е. есть грид в котором мы задаем народ из условий и выбираем действие для исправления этой ситуации.

Была ли такая штука полезной? Может есть идеи как по удобнее реализовать.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39813834
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey SyrovatchenkoТут коллега интересную идею предложил. Прикрутить конструктор условий, т.е. есть грид в котором мы задаем народ из условий и выбираем действие для исправления этой ситуации.

Была ли такая штука полезной? Может есть идеи как по удобнее реализовать.

как говорят(ц) не тот народ попался в гриде
...
Рейтинг: 0 / 0
25 сообщений из 213, страница 2 из 9
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]