|
Не используется индекс.
|
|||
---|---|---|---|
#18+
Аднаэснек К сожалению не осилил сделать это в SSMS. Не подскажите как это реализовать? https://docs.microsoft.com/ru-ru/sql/relational-databases/performance/display-an-actual-execution-plan?view=sql-server-ver15 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 13:17 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
Аднаэснек, [quot Аднаэснек#22413840] ErMiValRU пропущено... ... у меня есть еще 1 таблица с таким же точно поведеним - _AccumRg25415. Так вот на ней скан продолжается. Отказ от PERSIST_SAMPLE_PERCENT в UPDATE STATISTICS не влияет. А ребилд индексов, по таблице "_AccumRg25415" - делали ? ... ну как бы стандартные рекомендации на этой таблице тоже выполнены ? Ребилд индексов, (Именно "ALTER INDEX ... REBUILD", а не "ALTER INDEX ... REORGANIZE") Пересчет статистики, (Аналогично первой таблиц, "UPDATE STATISTICS ... WITH FULLSCAN") Сброс закэшированных планов ( "DBCC FREEPROCCACHE") ? (вроде как стандартные рекомендации, но они перекрывают 90% проблем с индексами) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 13:45 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
PaulWist Аднаэснек К сожалению не осилил сделать это в SSMS. Не подскажите как это реализовать? https://docs.microsoft.com/ru-ru/sql/relational-databases/performance/display-an-actual-execution-plan?view=sql-server-ver15 Так и делаю. Но запрос все равно параметризируется. Или я не так интерпретирую то что вижу. скрин прикладываю. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 13:57 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
Аднаэснек, похоже forced parameterization включено на базе https://www.brentozar.com/blitz/forced-parameterization/ ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 14:00 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 14:30 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
[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 Все еще скан. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 15:00 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
Аднаэснек 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 15:11 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
Аднаэснек Все еще скан. Стоимость поиска по индексу = 0,0611744 Сканирование = 0,0219931 выбирается сканирование. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 15:13 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
Аднаэснек, так будет seek? Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 15:20 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
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.
Этот запрос генерируется платформой 1С. Я его не могу поменять равно как поменять структуру индексов. Как вариант добавить хинт через query store. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 15:24 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
komrad Аднаэснек, похоже forced parameterization включено на базе https://www.brentozar.com/blitz/forced-parameterization/ SELECT d.is_parameterization_forced FROM sys.databases AS d WHERE d.name = 'моя база' Возвращает 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 15:29 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
felix_ff Аднаэснек, так будет seek? Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
План прикладываю ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 15:31 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
PaulWist Аднаэснек Все еще скан. Стоимость поиска по индексу = 0,0611744 Сканирование = 0,0219931 выбирается сканирование. Да, я тоже заметил этот момент. И таки не нашел ответа почему стоимость io 283, cpu 27 а стоимость скана 0,023 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 15:40 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
komrad Аднаэснек, похоже forced parameterization включено на базе https://www.brentozar.com/blitz/forced-parameterization/ у него там в плане StatementParameterizationType="0" поэтому forced быть не может. Аднаэснек получите еще оценку когда идет скан но без оценки row goal Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 15:42 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
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._AccumRg25415 T1 with (index= _AccumRg25415_1) WHERE (T1._RecorderTRef = 0x000001EB AND T1._RecorderRRef = 0x9C575CB90199817511EC632194753AD9) option (use hint('DISABLE_OPTIMIZER_ROWGOAL')) План во вложении. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 15:51 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
Аднаэснек, хм, subtreecost (при общих равных оценках строк) для оператора скана: 0.0254273 для seek: 0,0702934 при этом при подсчете дерева для seek он считает как сумму: io + cpu а вот для оператора скана он видимо использует какой то свой алгоритм подсчета потому что io: 283.674 cpu: 27.8027 как он получил из этих цифр 0.0254273 можно попробовать посмотреть более подробно с флагами трассировки. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 16:14 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
felix_ff Аднаэснек, хм, subtreecost (при общих равных оценках строк) для оператора скана: 0.0254273 для seek: 0,0702934 при этом при подсчете дерева для seek он считает как сумму: io + cpu а вот для оператора скана он видимо использует какой то свой алгоритм подсчета потому что io: 283.674 cpu: 27.8027 как он получил из этих цифр 0.0254273 можно попробовать посмотреть более подробно с флагами трассировки. если подскажете как, желательно без рестарта сиквела, то с удовольствием соберу необходимую информацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 16:50 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
Аднаэснек, Ничего лучше не придумал как понижать уровень совместимости. После установки уровня 130 (SQL 2016) план со сканированием стал сильно дороже и начался поиск по индексу. Хотелось бы все таки разобраться как при уровне 150 у оптимизатора получалось 283+27 = 0.025 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 10:56 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
Аднаэснек, зачем понижать уровень совместимости, как я уже писал выше, "попробуйте хинт FORCE_LEGACY_CARDINALITY_ESTIMATION.". ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 11:25 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
Владислав Колосов, Я бы рад. Но не могу я хинты использовать и запрос изменить. Для диагностики в SSMS могу, в "живых" запросах только через query store можно добавить. Тут потенциально большая лажа закопана. Таких таблиц, схожих по структуре много, если сломаются все я замучаюсь хинты добавлять. Да и уровень совместимости вернул обратно. Сервер со среднего 20-30% по ЦП ушел в полку. Тоже не вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 11:31 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
Аднаэснек, у вас явно какие-то проблемы со статистикой, особенно учитывая, что в первом случае "Update statistics" - помогло. "PERSIST_SAMPLE_PERCENT = ON" появилась с MSSQL2016. Возможно с его введением были какие-то ещё изменения в статистике (хз какие) ... Как вариант "пошаманить" со статистикой проблемной таблицы в разном порядке, без использования нововведений ... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 12:11 |
|
Не используется индекс.
|
|||
---|---|---|---|
#18+
Аднаэснек, авторНо не могу я хинты использовать и запрос изменить В каком смысле? Как раз для таких случаев изобрели руководство планов. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2021, 02:56 |
|
|
start [/forum/moderation_log.php?user_name=alinell]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
168ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 670ms |
total: | 957ms |
0 / 0 |