【发布时间】:2018-09-25 09:52:35
【问题描述】:
我现在使用的是在 SQL Server 2012 上运行的相当神秘的 DB (SAP),只有 SELECT 权限,所以有些东西很难调试/优化。
我有一张大桌子'table1',还有一张小桌子'table2'、'table3'。百万行的大表会在where语句中过滤到最多100行
我必须从 table1 开始。你会推荐:
select fields
from table1
left join table2
left join table3
where table1.field1 = 'x'
and table1.field2 = 'y'
或者
Select
fields
from
(select fields
from table1
where table1.field1 = 'x' and table1.field2 = 'y') as t1
left join
table2
left join
table3
而且,为什么?我想更好地理解这一点。
谢谢!
【问题讨论】:
-
是否有sql server?
-
不要不必要地使用子查询。让优化器完成它的工作。
-
@scaisEdge SQL SERVER 2012
-
如果您使用 sqlserver,那么在您的应用程序中对 SAP 的引用是什么意思?
-
@scaisEdge SAP 存储在 MSSQL 中,只是为了让您知道我只有 SELECT 权限,并且表、名称、索引不是自我解释的,有时很难理解。
标签: sql sql-server sql-server-2008