|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
MindSergey Syrovatchenko, А что кто то еще дефрагментирует индексы? А зачем? SQL Server пофигу на все ваши ссд и видимость быстрой работы ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2019, 01:24 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
zzzzzzzzzzMindSergey Syrovatchenko, А что кто то еще дефрагментирует индексы? А зачем? SQL Server пофигу на все ваши ссд и видимость быстрой работыПруф пожалуйста? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2019, 08:55 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
Выложил версию 1.0.0.34 : Добавил вывод лога в отдельном гриде Возможность отключать некластерные индексы Исправил мелкие ошибки при выделении ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2019, 09:27 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 07:30 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
andy st, а можно узнать версию SQL Server и compatibility level. Как я понял это 2008R2? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 09:05 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
Sergey Syrovatchenkoandy st, а можно узнать версию SQL Server и compatibility level. Как я понял это 2008R2? Код: sql 1. 2.
для проблемной базы compatibility level = 80 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 09:29 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
Выложил версию 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 прав ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 11:13 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
Sergey Syrovatchenko, а DATA_COMPRESSION поддерживается? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 11:44 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
komradDATA_COMPRESSION поддерживается? Да. Есть возможность вручную задавать компрессию для индекса, менять ROW -> PAGE, PAGE -> ROW, убирать вовсе и тд. Если это колумнстор, то там есть возможность его переводить в архивную колумнстор группу для большего уровня сжатия. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 11:51 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 18:31 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2019, 18:33 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
zzzzzzzzzzMindпропущено... Пруф пожалуйста? Если индех фрагментировался по какой-либо причине оптимизатор запросов перестанет его использовать и будет вам фуллскан. Фу какой фрагментированный индекс. Я не буду его использовать. Для начала, на внешнюю фрагментацию оптимизатору пофигу, к тому же ему негде ее взять. Остается внутренняя или заполненность страниц. Если речь про поиск по индексу, то вообще побоку что там с заполненностью страниц. Ну будет индекс на 30% больше и что? Как это на стоимость то повлияет? Количество логических чтений то не поменяется. Если речь про скан индекса vs скан таблицы, то расскажите мне какая заполненность страниц должна быть у индекса чтобы он стал больше чем таблица? Даже в самом вырожденном случае если таблица очень узкая из 2х колонок, чтобы индекс стал больше таблицы заполненность должна упасть ниже 50% что по факту просто невозможно! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 09:34 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
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% не имеют особого смысла. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 10:12 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
Добавьте ещё большой и красный баннер перед началом работы, что если данные на SSD ни в коем случае не делать REBUILD. Это совершенно напрасная операция (ввиду алгоритмов рассеяния блоков в логике работы SSD), которая приводит только к преждевременному исчерпанию ресурса диска. После ребилда нужно делать обновление статистики. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 12:08 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
Александр ГладченкоПосле ребилда нужно делать обновление статистики. Это вы в контексте того, что после ребилда делается FULL обновление статистики, а нужно делать какое-то другое? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 12:52 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
Sergey Syrovatchenko, Я про это: https://blogs.msdn.microsoft.com/psssql/2015/03/06/does-rebuild-index-update-statistics/ ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 13:33 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
Александр Гладченко, то есть необходимо предусмотреть ситуацию при ребилде кластерного индекса насильно еще обновлять все user_created и auto-created статистику на таблице? Опционально это сделать не проблема, но как быть тогда с секционированными таблицами? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 13:38 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
Sergey Syrovatchenko, Дефрагментация на листовом уровне сломает все статистики, это будет особенно заметно на больших таблицах, где даже "новомодное" автообновление статистики не спасает от проблем с правильной статистикой для оптимизатора. В таких случаях часто помогает только обновление некластерных индексов с полным сканированием. Секционирование вносит ещё большее разнообразие вариантов дефрагментации - будет интересно понаблюдать, как Вы с этим справитесь :) ...есть ведь ещё и фильтрованные индексы, и много чего ещё есть.... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 14:21 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
Александр Гладченко, исходя из такого кейса предусмотреть возможность вместе с кластерным индексом ребилдить и все некластерные? Если я вас правильно понял. Текущий функционал по обновлению статистики работает только для таблиц где нет секционирования. Думаю в дальшейнем можно будет заморочится и сделать все по феншую, но тут вопрос стоит ли? Насколько часто нужно по секциям обновлять статистику? У меня в практике такое редко было. Чаще всего, фильтрованную статистику только отдельно обновлял построенное по выбранным секциям. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 14:28 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
Sergey SyrovatchenkoАлександр Гладченко, исходя из такого кейса предусмотреть возможность вместе с кластерным индексом ребилдить и все некластерные? Если я вас правильно понял. Текущий функционал по обновлению статистики работает только для таблиц где нет секционирования. Думаю в дальшейнем можно будет заморочится и сделать все по феншую, но тут вопрос стоит ли? Насколько часто нужно по секциям обновлять статистику? У меня в практике такое редко было. Чаще всего, фильтрованную статистику только отдельно обновлял построенное по выбранным секциям. Я не призывал ребилдить все некластерные индексы. Речь шла о статистиках. Секционирование зависит от функции секционирования, а она может быть далеко не тривиальной и "работать" может не одна секция... В природе ещё встречаются всякие распределённые секционированные представления, что будет со статистикой на их индексах, если отребилдить кластерный, который в основе представления - задайтесь таким вопросом... Вопрос в том, кто будет отвечать на вопросы пользователей, когда ребилд индекса, выполненный с помощью Вашей утилиты, приведёт к простою промышленной базы? ...проконсультируйтесь на эту тему с хорошим юристом в этой области... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 14:39 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
[quot Mind] >>Я не против обслуживания индексов как такового, я просто про то что в большинстве случаев ребилды всего подряд по бездумному правилу 5% - 30% не имеют особого смысла. Я с вами уже почти согласен :) Зависит от конкретного случая. zzzzzzzzzz. Ну будет индекс на 30% больше и что? Как это на стоимость то повлияет? Количество логических чтений то не поменяется. при выборе индекса опимизатор стотрит на статистику и количество страниц индекса которое вырастет при фрагментации (где-то было в ссылках выше). Само абсолютное значение фрагментации в %% не смотрит ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 14:53 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
zzzzzzzzzz (где-то было в ссылках выше). https://sqlperformance.com/2017/12/sql-indexes/impact-fragmentation-plans в комментариях ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 17:02 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
zzzzzzzzzzMind>>Я не против обслуживания индексов как такового, я просто про то что в большинстве случаев ребилды всего подряд по бездумному правилу 5% - 30% не имеют особого смысла. Я с вами уже почти согласен :) Зависит от конкретного случая. пропущено... при выборе индекса опимизатор стотрит на статистику и количество страниц индекса которое вырастет при фрагментации (где-то было в ссылках выше). Само абсолютное значение фрагментации в %% не смотритЕще раз. Это имеет значение только при скане индекса, потому что только тогда нужно прочитать все страницы, следовательно оценка расчитывается как [количество страниц в индексе] * [magic number]. Если же у нас поиск, то по барабану, ибо общее количество страниц в индексе никак не учитывается, какая разницы у вас индекс 10Гб или 15Гб если вам нужно прочитать 1 строку? Возможно на маленьких индексах будет на одно нелистовое чтение больше, но это во-первых, ничтожное падение производительности, во-вторых на больших таблицах даже такой разницы не будет. Короче, если у вас огромное хранилище данных и много сканов, то возможно стоит дефрагментировать, лучше во время загрузки данных в то хранилище :) Если у вас огромная, но правильно спроектированная OLTP база, и сканов нет, то смысл создавать лишнюю нагрузку без очевидного выигрыша, особенно если это 24/7 и нет больших технических окон? Если же есть сканы, тогда возможно лишняя нагрузка от сканов перевешивает ребилды, но тоже не факт. Как было написано в одной из статей, SSD может сгладить негативный эффект от фрагментированных индексов если дисковая не сильно нагружена. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 21:53 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
Тут коллега интересную идею предложил. Прикрутить конструктор условий, т.е. есть грид в котором мы задаем народ из условий и выбираем действие для исправления этой ситуации. Была ли такая штука полезной? Может есть идеи как по удобнее реализовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 17:02 |
|
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
|
|||
---|---|---|---|
#18+
Sergey SyrovatchenkoТут коллега интересную идею предложил. Прикрутить конструктор условий, т.е. есть грид в котором мы задаем народ из условий и выбираем действие для исправления этой ситуации. Была ли такая штука полезной? Может есть идеи как по удобнее реализовать. как говорят(ц) не тот народ попался в гриде ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2019, 08:33 |
|
|
start [/forum/topic.php?fid=46&msg=39812433&tid=1683782]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 173ms |
0 / 0 |