我的问题与确定如何从我的查询中获得最佳 SQL 性能有关。目前,我正在使用 Java Spring 应用程序连接到 SQL Server。在我的应用程序中,我执行连接多个表并将值绑定到查询的查询。
下面是这些查询之一的示例。我的问题要注意的关键是所有绑定变量都是相同的值。
SELECT * FROM MY_DATA data
LEFT OUTER JOIN join1 ON data.id1=join1.id and join1.id2=?
LEFT OUTER JOIN join2 ON data.id2=join2.id and join2.id2=?
LEFT OUTER JOIN join3 ON data.id3=join3.id and join3.id2=?
我在想可能更好的是将该值绑定到 SQL 参数。所以修改后的查询可能如下所示:
DECLARE @bind_value varchar
SET @bind_value=?
SELECT * FROM MY_DATA data
LEFT OUTER JOIN join1 ON data.id1=join1.id and join1.id2=@bind_value
LEFT OUTER JOIN join2 ON data.id2=join2.id and join2.id2=@bind_value
LEFT OUTER JOIN join3 ON data.id3=join3.id and join3.id2=@bind_value
这对性能有帮助还是有损?还是有更好的方法来完全编写查询?感谢您花时间看这个!