这是关于 SQL Server 2008 R2 的问题
到目前为止,我还不是 DBA。我是一名java开发人员,时不时要写SQL。(主要嵌入在代码中)。我想知道我是否在这里做错了什么,如果是,我能做些什么来避免它再次发生。
Q1:
SELECT something FROM (SELECT * FROM T1 WHERE condition1) JOIN ...
Q1 有 14 个连接
Q2 与 Q1 相同,但有一个例外。(SELECT * FROM T1 WHERE condition1) 之前执行,并存储在临时表中。
这不是相关的子查询。
Q2:
SELECT * INTO #tempTable FROM T1 WHERE condition1
SELECT something FROM #tempTable JOIN ...
再次,14 加入。
现在让我感到困惑的是,第一季度花了 > 2 分钟,(尝试了几次,以避免缓存发挥作用)而第二季度(两个查询相结合)花了 2 秒!!!是什么赋予了?