powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не используется индекс.
23 сообщений из 48, страница 2 из 2
Не используется индекс.
    #40122722
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аднаэснек

К сожалению не осилил сделать это в SSMS. Не подскажите как это реализовать?


https://docs.microsoft.com/ru-ru/sql/relational-databases/performance/display-an-actual-execution-plan?view=sql-server-ver15
...
Рейтинг: 0 / 0
Не используется индекс.
    #40122733
ErMiValRU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Аднаэснек,
[quot Аднаэснек#22413840]
ErMiValRU
пропущено...

... у меня есть еще 1 таблица с таким же точно поведеним - _AccumRg25415. Так вот на ней скан продолжается. Отказ от PERSIST_SAMPLE_PERCENT в UPDATE STATISTICS не влияет.


А ребилд индексов, по таблице "_AccumRg25415" - делали ?
... ну как бы стандартные рекомендации на этой таблице тоже выполнены ?
Ребилд индексов, (Именно "ALTER INDEX ... REBUILD", а не "ALTER INDEX ... REORGANIZE")
Пересчет статистики, (Аналогично первой таблиц, "UPDATE STATISTICS ... WITH FULLSCAN")
Сброс закэшированных планов ( "DBCC FREEPROCCACHE")
?
(вроде как стандартные рекомендации, но они перекрывают 90% проблем с индексами)
...
Рейтинг: 0 / 0
Не используется индекс.
    #40122736
Аднаэснек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist
Аднаэснек

К сожалению не осилил сделать это в SSMS. Не подскажите как это реализовать?


https://docs.microsoft.com/ru-ru/sql/relational-databases/performance/display-an-actual-execution-plan?view=sql-server-ver15


Так и делаю. Но запрос все равно параметризируется. Или я не так интерпретирую то что вижу. скрин прикладываю.
...
Рейтинг: 0 / 0
Не используется индекс.
    #40122737
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аднаэснек,

похоже forced parameterization включено на базе
https://www.brentozar.com/blitz/forced-parameterization/
...
Рейтинг: 0 / 0
Не используется индекс.
    #40122750
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad
Аднаэснек,

похоже forced parameterization включено на базе
https://www.brentozar.com/blitz/forced-parameterization/


При FORCED были бы у обоих запросов параметры, а при Simple неизвестно какой запрос будет парметризирован, а какой нет.

https://docs-microsoft-com.translate.goog/en-us/sql/relational-databases/performance/specify-query-parameterization-behavior-by-using-plan-guides?view=sql-server-ver15&_x_tr_sl=en&_x_tr_tl=ru&_x_tr_hl=ru&_x_tr_pto=sc
...
Рейтинг: 0 / 0
Не используется индекс.
    #40122765
Аднаэснек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot ErMiValRU#22413904]Аднаэснек,
Аднаэснек
пропущено...


А ребилд индексов, по таблице "_AccumRg25415" - делали ?
... ну как бы стандартные рекомендации на этой таблице тоже выполнены ?
Ребилд индексов, (Именно "ALTER INDEX ... REBUILD", а не "ALTER INDEX ... REORGANIZE")
Пересчет статистики, (Аналогично первой таблиц, "UPDATE STATISTICS ... WITH FULLSCAN")
Сброс закэшированных планов ( "DBCC FREEPROCCACHE")
?
(вроде как стандартные рекомендации, но они перекрывают 90% проблем с индексами)


Да, все делалось. Но для чистоты эксперимента повторил:
ALTER INDEX _AccumRg25415_1 ON _AccumRg25415 REBUILD
GO
ALTER INDEX _AccumRg25415_2 ON _AccumRg25415 REBUILD
GO
UPDATE STATISTICS _AccumRg25415 WITH FULLSCAN
GO
DBCC FREEPROCCACHE

Все еще скан.
...
Рейтинг: 0 / 0
Не используется индекс.
    #40122772
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аднаэснек
0wl,

Во вложении

https://www.sql.ru/forum/actualfile.aspx?id=22413561] Приложенный файл (Plan_2.sqlplan - 16Kb)


если это помогло, то почему не пользуетесь?

0wl
Аднаэснек, можете получить план с использованием _AccumRg35623_2? Например, прям явно указать через хинт index:

Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT
0x00000000000000000000000000000000,
MIN(T1._Period)
FROM dbo._AccumRg35623 T1 with (index= _AccumRg35623_2)
WHERE
(T1._RecorderTRef = 0x000001EB
AND T1._RecorderRRef = 0x9C575CB90199817511EC632194753AD9)

...
Рейтинг: 0 / 0
Не используется индекс.
    #40122773
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аднаэснек


Все еще скан.


Стоимость
поиска по индексу = 0,0611744
Сканирование = 0,0219931

выбирается сканирование.
...
Рейтинг: 0 / 0
Не используется индекс.
    #40122777
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аднаэснек,

так будет seek?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT
0x00000000000000000000000000000000,
MIN(T1._Period)
FROM dbo._AccumRg35623 T1
WHERE
(T1._RecorderTRef = 0x000001EB
AND T1._RecorderRRef = 0x9C575CB90199817511EC632194753AD9)
option (use hint('DISABLE_OPTIMIZER_ROWGOAL'))
...
Рейтинг: 0 / 0
Не используется индекс.
    #40122778
Аднаэснек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One
Аднаэснек
0wl,

Во вложении

https://www.sql.ru/forum/actualfile.aspx?id=22413561] Приложенный файл (Plan_2.sqlplan - 16Kb)


если это помогло, то почему не пользуетесь?

0wl
Аднаэснек, можете получить план с использованием _AccumRg35623_2? Например, прям явно указать через хинт index:

Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT
0x00000000000000000000000000000000,
MIN(T1._Period)
FROM dbo._AccumRg35623 T1 with (index= _AccumRg35623_2)
WHERE
(T1._RecorderTRef = 0x000001EB
AND T1._RecorderRRef = 0x9C575CB90199817511EC632194753AD9)



Этот запрос генерируется платформой 1С. Я его не могу поменять равно как поменять структуру индексов. Как вариант добавить хинт через query store.
...
Рейтинг: 0 / 0
Не используется индекс.
    #40122782
Аднаэснек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad
Аднаэснек,

похоже forced parameterization включено на базе
https://www.brentozar.com/blitz/forced-parameterization/


SELECT d.is_parameterization_forced
FROM sys.databases AS d
WHERE d.name = 'моя база'

Возвращает 0
...
Рейтинг: 0 / 0
Не используется индекс.
    #40122783
Аднаэснек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff
Аднаэснек,

так будет seek?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT
0x00000000000000000000000000000000,
MIN(T1._Period)
FROM dbo._AccumRg35623 T1
WHERE
(T1._RecorderTRef = 0x000001EB
AND T1._RecorderRRef = 0x9C575CB90199817511EC632194753AD9)
option (use hint('DISABLE_OPTIMIZER_ROWGOAL'))



План прикладываю
...
Рейтинг: 0 / 0
Не используется индекс.
    #40122789
Аднаэснек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist
Аднаэснек


Все еще скан.


Стоимость
поиска по индексу = 0,0611744
Сканирование = 0,0219931

выбирается сканирование.


Да, я тоже заметил этот момент.
И таки не нашел ответа почему стоимость io 283, cpu 27 а стоимость скана 0,023
...
Рейтинг: 0 / 0
Не используется индекс.
    #40122790
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad
Аднаэснек,

похоже forced parameterization включено на базе
https://www.brentozar.com/blitz/forced-parameterization/


у него там в плане StatementParameterizationType="0" поэтому forced быть не может.

Аднаэснек
получите еще оценку когда идет скан но без оценки row goal

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT
0x00000000000000000000000000000000,
MIN(T1._Period)
FROM dbo._AccumRg35623 T1 with(index=1)
WHERE
(T1._RecorderTRef = 0x000001EB
AND T1._RecorderRRef = 0x9C575CB90199817511EC632194753AD9)
option (use hint('DISABLE_OPTIMIZER_ROWGOAL'))
...
Рейтинг: 0 / 0
Не используется индекс.
    #40122792
Аднаэснек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff
komrad
Аднаэснек,

похоже forced parameterization включено на базе
https://www.brentozar.com/blitz/forced-parameterization/


у него там в плане StatementParameterizationType="0" поэтому forced быть не может.

Аднаэснек
получите еще оценку когда идет скан но без оценки row goal

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT
0x00000000000000000000000000000000,
MIN(T1._Period)
FROM dbo._AccumRg35623 T1 with(index=1)
WHERE
(T1._RecorderTRef = 0x000001EB
AND T1._RecorderRRef = 0x9C575CB90199817511EC632194753AD9)
option (use hint('DISABLE_OPTIMIZER_ROWGOAL'))



Сделал так:

SELECT
0x00000000000000000000000000000000,
MIN(T1._Period)
FROM dbo._AccumRg25415 T1 with (index= _AccumRg25415_1)
WHERE
(T1._RecorderTRef = 0x000001EB
AND T1._RecorderRRef = 0x9C575CB90199817511EC632194753AD9)
option (use hint('DISABLE_OPTIMIZER_ROWGOAL'))

План во вложении.
...
Рейтинг: 0 / 0
Не используется индекс.
    #40122806
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аднаэснек,

хм, subtreecost (при общих равных оценках строк)
для оператора скана: 0.0254273
для seek: 0,0702934

при этом при подсчете дерева для seek он считает как сумму: io + cpu

а вот для оператора скана он видимо использует какой то свой алгоритм подсчета потому что io: 283.674 cpu: 27.8027 как он получил из этих цифр 0.0254273 можно попробовать посмотреть более подробно с флагами трассировки.
...
Рейтинг: 0 / 0
Не используется индекс.
    #40122831
Аднаэснек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff
Аднаэснек,

хм, subtreecost (при общих равных оценках строк)
для оператора скана: 0.0254273
для seek: 0,0702934

при этом при подсчете дерева для seek он считает как сумму: io + cpu

а вот для оператора скана он видимо использует какой то свой алгоритм подсчета потому что io: 283.674 cpu: 27.8027 как он получил из этих цифр 0.0254273 можно попробовать посмотреть более подробно с флагами трассировки.


если подскажете как, желательно без рестарта сиквела, то с удовольствием соберу необходимую информацию.
...
Рейтинг: 0 / 0
Не используется индекс.
    #40123544
Аднаэснек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Аднаэснек,

Ничего лучше не придумал как понижать уровень совместимости.
После установки уровня 130 (SQL 2016) план со сканированием стал сильно дороже и начался поиск по индексу.

Хотелось бы все таки разобраться как при уровне 150 у оптимизатора получалось 283+27 = 0.025
...
Рейтинг: 0 / 0
Не используется индекс.
    #40123558
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аднаэснек,

зачем понижать уровень совместимости, как я уже писал выше, "попробуйте хинт FORCE_LEGACY_CARDINALITY_ESTIMATION.".
...
Рейтинг: 0 / 0
Не используется индекс.
    #40123561
Аднаэснек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов,

Я бы рад. Но не могу я хинты использовать и запрос изменить.
Для диагностики в SSMS могу, в "живых" запросах только через query store можно добавить.

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

Да и уровень совместимости вернул обратно. Сервер со среднего 20-30% по ЦП ушел в полку. Тоже не вариант.
...
Рейтинг: 0 / 0
Не используется индекс.
    #40123579
ErMiValRU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Аднаэснек,

у вас явно какие-то проблемы со статистикой, особенно учитывая, что в первом случае "Update statistics" - помогло.
"PERSIST_SAMPLE_PERCENT = ON" появилась с MSSQL2016. Возможно с его введением были какие-то ещё изменения в статистике (хз какие) ... Как вариант "пошаманить" со статистикой проблемной таблицы в разном порядке, без использования нововведений ...
...
Рейтинг: 0 / 0
Не используется индекс.
    #40123767
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аднаэснек,

авторНо не могу я хинты использовать и запрос изменить

В каком смысле? Как раз для таких случаев изобрели руководство планов.
...
Рейтинг: 0 / 0
Не используется индекс.
    #40123914
Аднаэснек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов,

В том смысле что я про данную вещь впервые услышал.
Спасибо! Буду разбираться.
...
Рейтинг: 0 / 0
23 сообщений из 48, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не используется индекс.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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