相关疑难解决方法(0)

CTE 和临时表有什么区别?

通用表表达式 (CTE) 和临时表有什么区别?我什么时候应该使用一个?

CTE

WITH cte (Column1, Column2, Column3)
AS
(
    SELECT Column1, Column2, Column3
    FROM SomeTable
)

SELECT * FROM cte
Run Code Online (Sandbox Code Playgroud)

临时表

SELECT Column1, Column2, Column3
INTO #tmpTable
FROM SomeTable

SELECT * FROM #tmpTable
Run Code Online (Sandbox Code Playgroud)

sql-server cte

183
推荐指数
7
解决办法
19万
查看次数

改进/重构慢查询的技巧?

我们来玩乐透吧!

好的。我有一个numbers80 行(数字 1-80)的表:

create table dbo.numbers (knum tinyint primary key identity);
Run Code Online (Sandbox Code Playgroud)

我有一张桌子,上面有drawid,每个数字都画出来了。

create table dbo.draws (drawid int, drawnumber tinyint);
Run Code Online (Sandbox Code Playgroud)

现在,鉴于该draws表可能包含以下数据:

drawid   drawnumber
  1         10
  1         36
  1         54
  1         75
  2          9
  2         45
  2         46
  2         72
Run Code Online (Sandbox Code Playgroud)

我想知道最后一次出现每种可能的三数排列是什么时候。

我正在使用这个:

declare @curdraw int
select @curdraw = max( drawid)-100 from draws;

select TOP 10 K1,K2,K3, @curdraw-max(d1.drawid)  from THREES 
inner join DrawNumbers d1 WITH (NOLOCK) ON K1 = D1.DRAWNUMBER
INNER JOIN DRAWNUMBERS D2 WITH (NOLOCK) …
Run Code Online (Sandbox Code Playgroud)

performance sql-server-2008 t-sql performance-tuning

5
推荐指数
1
解决办法
550
查看次数