Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
Всем привет! Вот такой запрос (вместо многоточий между фигурными скобками где-то килобайт в синтаксисе JSON): Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Пораждает какой-то дикий execution plan (на картинке). Почему так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 10:59 |
|
||
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
нормальный план. засканить кусок кластерного индекса один раз. Это куда лучше чем сотню раз в нем по одной записи искать. даже с учетом сортировки скаляров. Хотя может сортировка скаляров и тянет.... из-за килобайтов джейсона. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 11:08 |
|
||
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
Yuri Abele, Вас смущает диапазон поиска Id? что в гистограмме FileMetaData.[File].PK? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 11:11 |
|
||
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
felix_ffYuri Abele, Вас смущает диапазон поиска Id? что в гистограмме FileMetaData.[File].PK? В т.ч.. Зачем он так ищет?: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 11:28 |
|
||
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
И зачем ему при поиске по кластерному индексу, вытаскивать имеющиеся значаение поля MetaInfo? Я же не сравниваю его ни с чем, просто перезаписываю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 11:32 |
|
||
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
План покажите в формате sqlplan. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 11:37 |
|
||
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
Yuri Abele, Код: sql 1. 2. 3. вы его переиспользуете в своей update, поэтому и тянет. а по диапазону, необходимо посмотреть гистограмму. да и вообще бы желательно весь план в формате .sqlplan а не скриншот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 11:38 |
|
||
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
Подсократил в плане количество строк из VALUES TABLE. В оригинале их 100. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 11:58 |
|
||
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
Пораллельно с обновлением [MetaInfo] бежит еще процесс, который обновляет поле [HashSum] (см. ниже) - план выполнения идентичный предыдущему. Оба эти запроса еще недавно выполнялись, приактически, мгновенно. Теперь же, минимум минуту! Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 12:04 |
|
||
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
Ой, вот этого в запросе нет. Скопировал нечайно текст из экспериментов: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 12:05 |
|
||
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
реальный план покеж ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 12:26 |
|
||
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
Yuri Abele, Так а в чем собственно проблема? Вы приложили предполагаемый план, а не фактический. При этом он походу он закэширован, поскольку у вас инструкция для 3 граничных значений, а по оценкам он считает что будет обрабатывать 100 строк. (правда это мое предположение возможно действительно по данному распределению будет 100 строк) сделайте Код: sql 1. при этом могу предположить: если у вас два параллельных merge, один временно блокирует другого ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 12:29 |
|
||
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
Yuri AbeleВ т.ч.. Зачем он так ищет?: Код: sql 1. Чтоб не делать лишнюю работу. При компиляции запроса из ваших values определяются минимальное и максимальное значения id и далее используются для сканирования диапазона кластерного индекса вместо его полного сканирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 12:37 |
|
||
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
felix_ffсделайте Код: sql 1. Выдает таблицу в 195 строк. Как ее показать? Скриншотом? P.S. А смысл? Это же поле CLUSTERED PRIMARY KEY - там по определению каждое значение только один раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 12:50 |
|
||
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
В приложении "живой" план выполнения. Я взял только для HashSum, он (в байтах) покомпактнее. И я для строк VALUES TABLE уже из плана вырезал большую часть, оставил только 5 Rows. Иначе файл слишком здоровый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 12:55 |
|
||
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
Yuri Abele, ну пусть Вас не смущает интервал, он берет для операции поиска по кластерному индексу интервал границ заведомо меньший или равный чем минимальное значение и заведомо больший или равный максимального значения из вашего набора значений. в этом случае это границы [8098917; 8099044] в таком диапазоне поиск по индексу выдаст вам 128 строк, но поскольку значений в (using values ) у вас 100 ему надо убрать лишние 28 строк, на что и делается constant scan + sort для возможности применения merge join двух наборов. 8098917 - значение у вас присутствует в списке значений, 8099044 - я не увидел или вы его вырезали или оно подогнано оптимизатором из гистограммы статистики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 14:08 |
|
||
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
felix_ff8098917 - значение у вас присутствует в списке значений, 8099044 - я не увидел или вы его вырезали или оно подогнано оптимизатором из гистограммы статистики. Да, я вырезал. Там пакетами по 100 строк бомбит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 14:34 |
|
||
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
Большущее спасибо за помощь по анализу! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 15:26 |
|
||
|
Почему такой зверский план выполнения?!!!
|
|||
|---|---|---|---|
|
#18+
Почистил через JSON_MODIFY ненужные элементы в нагенеренных MetaInfo, Потом прогнал INDEX REORGONIZE ALL по этой таблице. Итог - размер таблицы в байтах уменьшился порядка в 50 раз. Тут уже можно дышать :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 09:59 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1688159]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
73ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 259ms |
| total: | 427ms |

| 0 / 0 |
