sql 臨時表與子查詢效率解析

2022-03-11 14:53:36 字數 2393 閱讀 2708

update dc_keyword set wordstatus=

'已啟用

'where word =

'類目出價

'and wordstatus=

''

select

a.data_time,

a.campaign_id,

a.adgroup_id,

a.nick,

b.word,

b.wordstatus,

--a.isusecategoryprice,

case b.wordstatus when

'未啟用

'then

0else

1end

newisusecategoryprice

into

#temp111

from

dc_adgroup a

inner

join

dc_keyword b

on a.data_time=b.data_time and a.campaign_id=

b.campaign_id

and a.adgroup_id=

b.adgroup_id

where b.word =

'類目出價

'update dc_adgroup set isusecategoryprice=

bb.newisusecategoryprice

--select

--aa.data_time,

--aa.campaign_id,

--aa.adgroup_id,

--aa.nick,

--bb.word,

--bb.wordstatus,

--aa.isusecategoryprice,

--bb.newisusecategoryprice

from

dc_adgroup aa

inner

join

#temp111 bb --注意:如果這裡不用臨時表,當執行大資料量時,效率很差

on aa.data_time=bb.data_time and aa.nick=bb.nick and aa.campaign_id=bb.campaign_id and aa.adgroup_id=bb.adgroup_id

--

不建議用下面這種方式:

update dc_keyword set wordstatus=

'已啟用

'where word =

'類目出價

'and wordstatus=

''

update dc_adgroup set isusecategoryprice=

bb.newisusecategoryprice

--select

--aa.data_time,

--aa.campaign_id,

--aa.adgroup_id,

--aa.nick,

--bb.word,

--bb.wordstatus,

--aa.isusecategoryprice,

--bb.newisusecategoryprice

from

dc_adgroup aa

inner

join

(

select

a.data_time,

a.campaign_id,

a.adgroup_id,

a.nick,

b.word,

b.wordstatus,

--a.isusecategoryprice,

case b.wordstatus when

'未啟用

'then

0else

1end

newisusecategoryprice

into

#temp111

from

dc_adgroup a

inner

join

dc_keyword b

on a.data_time=b.data_time and a.campaign_id=

b.campaign_id

and a.adgroup_id=

b.adgroup_id

where b.word =

'類目出價

'

) bb 

on aa.data_time=bb.data_time and aa.nick=bb.nick and aa.campaign_id=bb.campaign_id and aa.adgroup_id=bb.adgroup_id

Oracle子查詢臨時表

oracle 臨時表,可以有兩種型別的臨時表 會話級臨時表 事務級臨時表。會話級臨時表 因為這個臨時表中的資料和你的當前會話有關係,當你當前 session 不退出的情況下,臨時表中的資料就還存在,而當你退出當前 session 的時候,臨時表中的資料就全部沒有了,這個時候如果以另外乙個 sessi...

SQL臨時表查詢所有子節點資料

方法一 create table 臨時表名 欄位1 約束條件,欄位2 約束條件,方法二 select into 臨時表名 from 你的表 方法三 利用with語句 sql server 2005 版本 with test id,name as select bucode,bunamech from...

SQL 表變數與臨時表

表變數在sql server 2000中首次被引入。表變數的具體定義包括列定義,列名,資料型別和約束。而在表變數中可以使用的約束包括主鍵約束,唯一約束,null約束和check約束 外來鍵約束不能在表變數中使用 定義表變數的語句是和正常使用create table定義表語句的子集。只是表變數通過de...