通常,一个查询优于两个,因为优化器有更多信息可以使用,并且可能能够产生比单独使用更高效的查询计划.此外,使用两个(或更多)查询通常意味着您将多次运行第二个查询,并且DBMS可能必须重复生成查询的查询计划(但如果您准备语句并将参数作为占位符传递则不会当(重新)执行查询时.这意味着程序和DBMS之间的来回交换更少.如果您的DBMS位于世界(或国家)另一端的服务器上,这可能是一个重要因素.
反对组合这两个查询,最终可能会在DBMS和应用程序之间传递大量重复数据.如果表T1中的10,000行中的每一行与表T2中的平均30行连接(因此总共返回300,000行),那么您可能会将大量数据重复发送回客户端.如果T1的(相关投影)的行大小相对较小并且来自T2的数据相对较大,则这无关紧要.如果来自T1的数据很大且来自T2的数据很小,那么这可能很重要; 决定前的措施.