"选择前10名,然后选择加入表",而不是"从连接表中选择前10名"

Fro*_*840 4 sql sql-server stored-procedures

我继承了一个存储过程,它在八个表中执行连接,其中一些表包含数十万行,然后从该连接的结果中选择前十个条目.

我在过程开始时有足够的信息从单个表中选择那十行,然后在这十行上执行这些连接,而不是在数十万个中间行上执行.

如何选择前十行​​,然后只对这十行进行连接,而不是在表中的所有数千行中执行连接?

Mar*_*rco 9

我应该试试:

SELECT * FROM
    (SELECT TOP 10 * FROM your_table
     ORDER BY your_condition) p
INNER JOIN second_table t
    ON p.field = t.field
Run Code Online (Sandbox Code Playgroud)