Azure Serverless SQL объединяет два OPENROWSET с низкой производительностью

У меня есть что-то вроде этого:

      select a.*
from OPENROWSET( bulk 'tableA/Year=*/Month=*/**' ... ) a
inner join OPENROWSET( bulk 'tableB/Year=*/Month=*/**' ... ) b on b.id= a.ref_id
where a.filepath(1)= 2023 and a.filepath(2)= 11
    and a.filepath(1)= b.filepath(1)
    and a.filepath(2)= b.filepath(2)

По мнению Microsoft, это будет то же самое, что и подход с фиксированным путем:

      select a.*
from OPENROWSET( bulk 'tableA/Year=2023/Month=11/**' ... ) a
inner join OPENROWSET( bulk 'tableB/Year=2023/Month=11/**' ... ) b on b.id= a.ref_id

Однако я вижу, что подход с фиксированным путем намного быстрее (сканирование данных 10 к 1), чем рекомендуемый подход к файлу (независимо от того, находится ли код внутри или вне представления).

Почему это происходит?

Примечание 1. Я ввел два последних условия в первый блок кода, чтобы посмотреть, смогу ли я принудительно сократить разделы.

Примечание 2. Если нет JOIN, я получаю точно такие же показатели/производительность.

0 ответов

Другие вопросы по тегам