SQL查询结构是否会影响其性能?

我的问题是理论上的。说以下查询(选项A):

Select *
from orders o
  inner join (
     select *
     from orderDetails 
     where product = 'shirt'
              ) od    on o.orderId = od.orderId

与以下内容比较(选项B)

Select *
from orders o
  inner join orderDetails  od    on o.orderId = od.orderId
where od.product = 'shirt'

一个相对于另一个有什么技术优势吗?例如,我得到的印象是,由于内部联接发生在已经缩小的行数上,因此选项A对DB的资源需求较少。尽管选项B给出了相同的结果,但是,它似乎在将所有可用的orderId缩小到衬衫之前执行了内部联接。

我对bc的最终影响感到好奇,有时存储过程会变得很大,并且我想确保它们不会不必要地影响报表加载时间。