powered by simpleCommunicator - 2.0.34     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
25 сообщений из 213, страница 6 из 9
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39833054
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mindkomrad как в SQLCoPilot, например -
https://sqlpadre.wordpress.com/2014/02/06/sql-copilota-software-review/ что то сайт то у них не открывается.

да, к сожалению, последний раз он откликался в октябре 2018
https://web.archive.org/web/2018*/www.sqlcopilot.com

странно, что у них произошло такого, чтобы сайт забросить
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39834916
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey SyrovatchenkoВыложил версию 1.0.0.39 :

Добавил возможность создавать индексы на основе информации из missing index
Мелкие улучшения в GUI

Сергей, если б в этом случае она показывала "почти синонимы", т.е. индексы, похожие на missing index, но отличающиеся includ'ом, или дополнительным "вторичным" полем в самом индексе - цены б ей не было.

Вообще, поиск синонимов и почти синонимов в индексах - был бы очень нужной штукой.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39835049
andy stА можно еще показать свободное место на диске расположения файлов базы и логов?
Правда, придётся переделывать табличку, чтобы файлы и файловые группы прикрутить.
Пока не планирую такое добавлять, потому как тяжело понять как этим пользоваться. Если можете нарисовать примерный мокап с предлагаемым функционалом, то буду благодарен.

andy stНу и печалит невозможность сортировать по полю "selection". Типа сначала выбранные, потом остальные. Как по базам, так и по индексам.
Пробовал исправить, увы не получилось.

andy stфишка: create index по missing опцию online=on игнорирует
Сделано. В следующем билде будет.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39835054
uaggsterесли б в этом случае она показывала "почти синонимы", т.е. индексы, похожие на missing index, но отличающиеся includ'ом, или дополнительным "вторичным" полем в самом индексе - цены б ей не было.

Вообще, поиск синонимов и почти синонимов в индексах - был бы очень нужной штукой.
То есть хотелось бы видеть в общем списки дубликаты индексов? Если индексы по полям идентичны (порядок может различаться), то такое могу реализовать подстветкой.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39835240
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Syrovatchenkouaggsterесли б в этом случае она показывала "почти синонимы", т.е. индексы, похожие на missing index, но отличающиеся includ'ом, или дополнительным "вторичным" полем в самом индексе - цены б ей не было.

Вообще, поиск синонимов и почти синонимов в индексах - был бы очень нужной штукой.
То есть хотелось бы видеть в общем списки дубликаты индексов? Если индексы по полям идентичны (порядок может различаться), то такое могу реализовать подстветкой.А что если поля одинаковые, а порядок разный то это дубликаты?

А что значит индексы отличаются дополнительным вторичным полем и что вам собственно это даст? Огласите все критерии похожести.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39835322
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MindSergey Syrovatchenkoпропущено...

То есть хотелось бы видеть в общем списки дубликаты индексов? Если индексы по полям идентичны (порядок может различаться), то такое могу реализовать подстветкой.А что если поля одинаковые, а порядок разный то это дубликаты?

А что значит индексы отличаются дополнительным вторичным полем и что вам собственно это даст? Огласите все критерии похожести.
Хотелось бы видеть ситуации типа такой:
1. Полные синонимы (т.е. абсолютно идентичные индексы, дубликаты).
2. Синонимы, отличающиеся списком INCLUDE:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
CREATE UNIQUE NONCLUSTERED INDEX [ix_I1] ON [dbo].[SCHET]
(
	[ID_SCHET] ASC
)
INCLUDE ( 	
	[CODE_O],
	[YEAR],
	[MONTH],
	[NSCHET],
	[DSCHET]
);

CREATE NONCLUSTERED INDEX [ix_I2] ON [dbo].[SCHET]
(
	[ID_SCHET] ASC
);

CREATE UNIQUE NONCLUSTERED INDEX [ix_I4] ON [dbo].[SCHET]
(
	[ID_SCHET] ASC
)
INCLUDE ( 	
	[CODE_O],
	[DATE_CONTRACT]
);


3. Частичные синонимы:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
CREATE UNIQUE NONCLUSTERED INDEX [ix_I11] ON [dbo].[SCHET]
(
	[ID_SCHET] ASC,
	[CODE_O] ASC
)
INCLUDE ( 	
	[YEAR],
	[MONTH],
	[NSCHET],
	[DSCHET]
);

CREATE NONCLUSTERED INDEX [ix_I12] ON [dbo].[SCHET]
(
	[ID_SCHET] ASC
);

CREATE UNIQUE NONCLUSTERED INDEX [ix_I13] ON [dbo].[SCHET]
(
	[ID_SCHET] ASC
)
INCLUDE ( 	
	[CODE_O],
	[DATE_CONTRACT]
);


Эти 3 индекса могут быть заменены одним, без ущерба для производительности:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE UNIQUE NONCLUSTERED INDEX [ix_I21] ON [dbo].[SCHET]
(
	[ID_SCHET] ASC,
	[CODE_O] ASC
)
INCLUDE ( 	
	[YEAR],
	[MONTH],
	[NSCHET],
	[DSCHET],
	[DATE_CONTRACT]
);


4. Ситуации, когда индексы, включая include, содержат одни и те же поля.
Я понимаю, что индексы:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE UNIQUE NONCLUSTERED INDEX [ix_I1] ON [dbo].[SCHET]
(
	[ID_SCHET] ASC,
	[CODE_O] ASC
)
INCLUDE ( 	
	[YEAR],
	[MONTH],
	[NSCHET],
	[DSCHET]
) 


И:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE UNIQUE NONCLUSTERED INDEX [ix_I1] ON [dbo].[SCHET]
(
	[CODE_O] ASC,
	[ID_SCHET] ASC
)
INCLUDE ( 	
	[YEAR],
	[MONTH],
	[NSCHET],
	[DSCHET]
) 


- существенно неэквивалентны в общем случае.
Но об их существовании - мне бы хотелось знать. Потому что в частном конкретном случае - они могут оказаться еще как эквивалентны.

Нечто подобное умеет sp_Blitz, но "настоящая" утилита - была бы полезной.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39835365
uaggsterХотелось бы видеть ситуации типа такой:
Такое сделать можно. Я даже за. Какого типа разукрашки хотели бы видеть в каждом из описанных случаев?
Если развивать тему, то можно выделять индексы которые не используются вообще (при условии что другие индексы в рамках таблицы используются).

Главное тут понимать как показывать о проблеме. Думаю можно в имени индекса показывать иконку восклицания + тултип.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39835435
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разумеется, 1 ситуация - это красный уровень, 2 - оранжевый, 3 - желтый, а четвертая - не знаю, серый какой-нибудь.
И парно (эээ... N-но) подсвечиваться, при наведении или выделении.
И какой-нибудь одновременный просмотр определения, с подсветкой различий.
Сам рефакторинг, и тем паче - автоматический рефакторинг, конечно, не нужен. Только обнаружение.

Я, прошу прощения, это, конечно, возможно, не тема данной утилиты, просто наболело.
У меня больше полусотни разных баз на куче серверов.
Ситуация когда "внезапно" выясняется, что база вдруг раздулась неприлично, или быстродействие на каких либо заливках - упало - чуть ли не ежедневно проявляется.
Новый мальчик (девочка) у разработчиков -> новый отчет -> куча новых индексов. Такая обычная цепочка.
Я понимаю, что такие проблемы решаются чисто административно, в смысле "бумажно-административно", методом расстреляния нерадивых, но, к сожалению, не могу довести эту прогрессивную методику до промышленного внедрения. Разработчики очень возражают.
Поэтому какой-нибудь дашборд, который индицировал бы ситуацию "вот тут новое говно, неотличимое от старого" - очень нужно.
По крайней мере, чтоб я мог отдать его молодым обезьянкам, чтобы скинуть эту проблему со своего старого обезьяньего хвоста.

Идея с "совсем не используемыми индексами" - она, конечно, замечательна, но нужно тогда, чтобы приложение куда-то засасывало статистику использования индексов, и хранило между перезапусками сервера.
Ну и типа порог срабатывания: "оповещать после квартала неиспользования" (настраиваемо).

Я прощу прощения за некоторую эмоциональность. Просто как в том анекдоте: "...И прошу прощения за неровный почерк, потому что даже прямо сейчас..."
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39836182
uaggster, сделаем :)

Мне идея понравилась. Как быстро получится пока гарантировать не смогу, но будет.
Сейчас новым тулом начал заниматься, который откладывал более двух лет.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39836184
uaggsterПоэтому какой-нибудь дашборд, который индицировал бы ситуацию "вот тут новое говно, неотличимое от старого" - очень нужно.

Могу лишь предложить посмотреть на бесплатный аналог от RedGate:
https://www.red-gate.com/products/dlm/dlm-dashboard/
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39838285
Выложил версию 1.0.0.42 :

Не генерировалась опция ONLINE для missing index

При выборе операции в лукапе и последующей сортировке по любому столбцу выделялась не та строка для которой делалось действие

Добавил возможность фильтрации не только по именам обьектов, но и по маске %

Исправил проблему с DevExpress из-за чего у многих не собирался проект



andy stфишка: create index по missing опцию online=on игнорирует
Исправлено

uaggsterХотелось бы видеть ситуации типа такой:
1. Полные синонимы (т.е. абсолютно идентичные индексы, дубликаты).
2. Синонимы, отличающиеся списком INCLUDE:
Планирую на следующий билд
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39838384
архивариус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за утилиту.
Побуду тестером:
1.
Два таймаута на 2 табличках в 2 базах из 20 баз идентичных (разные типы компрессий, и размер) при анализе (сервер не шустрый, может из за него):
Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

Ничего примечательного в этих таблицах кроме 5 и 6 млрд. row, точно такая же табличка в другой базе, но 1,7 млрд. row без таймаута. Размер небольшой, меньше 10 GB. Эти три базы CSA (ColumnStoreArchive clustered).

2.
[ 15:54:28.514 ] Elapsed time: 00:00:00:443. Pre-descibe: 0. Post-describe: 2

наверное r пропущено

3.
Select Databases не настраивается/изменяется размер окна, занимает половину высоты окошка 1920х1080.
imho, либо resize возможность хотелось бы, либо не половину, а всю высоту окна занимать?
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39838409
архивариус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
архивариус1.

вопрос снимается, увидел настройку таймаута.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39838455
Выложил версию 1.0.0.43 :

Исправил ошибку Arithmetic overflow error for data type tinyint, когда у таблицы более 255 столбцов (смешно, но факт)

В режиме совместиности с 2000-х на 2008R2 из-за опций ARITHABORT/NUMERIC_ROUNDABORT падал запрос с XQuery

Теперь не игнорим при сканировании ошибки выполнения

Увеличили дефолтные значения для максимального размера индекса и execution timeout

Добавили возможность менять размер окна при выборе базы

uaggsterВообще, поиск синонимов и почти синонимов в индексах - был бы очень нужной штукой.
В процессе.

архивариусПобуду тестером:
Что мог исправил. Спасибо за отзыв.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39839303
Выложил версию 1.0.0.44 :

Исправил ошибку, которая возникала от того что в базе есть офлайн файловые группы

Исправил проблему с неверным отображением поля Index Columns

Добавил функционалось по визуализации дублирующих индексов



uaggsterХотелось бы видеть ситуации типа такой:
1. Полные синонимы (т.е. абсолютно идентичные индексы, дубликаты).
2. Синонимы, отличающиеся списком INCLUDE:
3. Частичные синонимы:
Эти 3 индекса могут быть заменены одним, без ущерба для производительности:
4. Ситуации, когда индексы, включая include, содержат одни и те же поля.
Чуток решил упростить, но надеюсь будет норм по юзабельности. Там еще пара багов осталась в визуализации так что сорри. Спешил.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39839397
Выложил версию 1.0.0.45 :

Исправил ошибки при определении дубликатов в индексах
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39842340
Выложил версию 1.0.0.46 :

Подсветка неиспользуемых индексов

Добавлена опция STATISTICS_NORECOMPUTE

Ускорил запросы при получении списка баз данных
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39843391
ЕвгенийGEM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Syrovatchenko, провел независимый обзор тулзы:
https://habr.com/ru/post/461277/
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39844899
Выложил версию 1.0.0.47 :

Добавил возможность выбора Scan Mode (LIMITED / SAMPLED / DETAILED)

Добавлено новое поле Page Space Used, которое заполняется если выбрано SAMPLED / DETAILED сканирование

Исправил ошибку с неверным использованием в скриптах опции STATISTICS_NORECOMPUTE = DEFAULT

Исправил ошибку VIEW DATABASE STATE permission denied при сканировании missing index на ажур для базы мастер

Исправил ситуацию когда на форме ErrorBox неверно отображался call stack ошибки

Убрал ошибку при открытии линков в окне About



Очень буду рад фитбекам.
Потому как в прошлом билде накосячил со STATISTICS_NORECOMPUTE и никто даже не сказал :)
Не стесняйтесь конструктивно выражать свое фи.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39845213
eddie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. мне кажется нелогичным, что фильтрация происходит на моменте сканирования по фрагментации и размеру индексов.
это, очевидно, из-за того, что во главу угла ставится фрагментация, но статистика тоже важна/интересна;
2. reorganize - обязательная опция, зачем? (нельзя поставить: индексы, фрагментированные на 30%+ ребилдим, остальные не трогаем);
3. нельзя выделить несколько строчек (чтобы проставить всем один Fix, или поставить/снять галочки).
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39845279
eddie1. мне кажется нелогичным, что фильтрация происходит на моменте сканирования по фрагментации и размеру индексов.
Это было сделано для перфоманса, чтобы не захватывать сильно большие и сильно маленькие индексы.

eddieиз-за того, что во главу угла ставится фрагментация, но статистика тоже важна/интересна;
Недавно начал новый функционал делать где можно отдельно от индексов обслуживать статистику. Но пока времени свободного нет нормально долелать. Как будет готово я выложу новый билд.

eddie2. reorganize - обязательная опция, зачем? (нельзя поставить: индексы, фрагментированные на 30%+ ребилдим, остальные не трогаем);
Здесь можно поступить проще. Получаете список индексов потом фильтруете по колонке Fix. Выбираете все строки и это как раз тот кейс о котором вы говорите.

eddie3. нельзя выделить несколько строчек (чтобы проставить всем один Fix, или поставить/снять галочки).
Мысль хорошая, но пока as desing. Есть много ограничений в DevExpress. Первоначально я так и хотел сделать.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39845397
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Syrovatchenko,
1. Цветовая расцветка понятна только читающим этот топик. Легенду бы подписать.
2. При клике на раскрашенную строку можно предложить фильтрануть и оставить только те индексы, на основании которых была выставлена такая расцветка.
3. Там же по правой кнопке можно предложить скопировать либо текст ячейки, либо запилить в буфер обмена скрипт на create/disable/drop. Ну или то, что можно через выбор в Fix, но "побыстрому" и только в буфер обмена.
4. Поля таблицы имеют ограничение на максимальную ширину. Пичалька. Приходится ждать либо всплывающей подсказки, либо накликивать скрипт на индекс.
5. Отсутствие подсветки текущей строки тоже печалит, особенно если полей в таблице много и они широкие. Определить активную строку можно только по полю Fix. Частично решит проблему настройка количества фиксированных полей слева, которые отображаются всегда на месте при скроллировании влево-вправо. Но если будет и такое, и подсветка активной строки - будет приятнее.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39845674
andy st1. Цветовая расцветка понятна только читающим этот топик. Легенду бы подписать.
Сделаем.

andy st2. При клике на раскрашенную строку можно предложить фильтрануть и оставить только те индексы, на основании которых была выставлена такая расцветка.
Как-то муторно по правде. Думаю не вариант.

andy st3. Там же по правой кнопке можно предложить скопировать либо текст ячейки, либо запилить в буфер обмена скрипт на create/disable/drop. Ну или то, что можно через выбор в Fix, но "побыстрому" и только в буфер обмена.
Подумаю как это можно реализовать.

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

andy st5. Отсутствие подсветки текущей строки тоже печалит, особенно если полей в таблице много и они широкие. Определить активную строку можно только по полю Fix. Частично решит проблему настройка количества фиксированных полей слева, которые отображаются всегда на месте при скроллировании влево-вправо. Но если будет и такое, и подсветка активной строки - будет приятнее.
Подумаю как это можно будет сделать.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39845876
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Syrovatchenkoandy st2. При клике на раскрашенную строку можно предложить фильтрануть и оставить только те индексы, на основании которых была выставлена такая расцветка.
Как-то муторно по правде. Думаю не вариант.

внезапно :(
Дополнительный столбик с "Цветовые группы" с подписями типа "Нет", "Дубликат 1" (для группы дублей 1, а их может быть несколько), "Частично 1",2,3,4... и фильтр по нему.
Еще по правой кнопке из менюшки содержимое ячейки текущей строки "добавить/удалить" в фильтр столбика.
Я это всё к чему веду... надо гуй гуёвым делать, а не "слабое подобие левой руки" в виде "слехка покрасявше sqlcmd". Чтоб было приятно делать Analyze.
...
Рейтинг: 0 / 0
SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
    #39845891
andy stдополнительный столбик с "Цветовые группы" с подписями типа "Нет", "Дубликат 1" (для группы дублей 1, а их может быть несколько), "Частично 1",2,3,4... и фильтр по нему.
Сорри, теперь понял :)
Спасибо. Буду думать как сделать
...
Рейтинг: 0 / 0
25 сообщений из 213, страница 6 из 9
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SQL Index Manager - бесплатная утилита по обслуживанию индексов для SQL Server и Azure
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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