日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle查询结果存入临时表,Oracle查询问题引发临时表使用

發(fā)布時間:2025/3/12 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle查询结果存入临时表,Oracle查询问题引发临时表使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

分析某段時間內(nèi),刷卡金額大于1000的卡的消費記錄,寫法如下。

sql語句寫法:select a.dno,a.dcard,a.dcard_money,a.dcard_type,a.ddate, a.dsubshop,a.dworker,a.dtype,j.Djf Dnowjf,b.dsje,B.Dcount

from st_card_salemx a,

( select m.dcard,Count(1) Dcount,Sum(dcard_money) dsje

from st_Card_Salemx m

where ddate >= to_Date('2016-7-17','yyyy-mm-dd')

and Ddate <= to_Date('2016-7-19','yyyy-mm-dd')

and dcard_type <> '06'

group by m.dcard

having Sum(dcard_money) >= 1000 ) b,st_card_jf j

where a.dcard = b.dcard and b.dcard = j.dcardno

and a.ddate >= to_Date('2016-7-17','yyyy-mm-dd')

and a.Ddate <= to_Date('2016-7-19','yyyy-mm-dd')

order by 2

問題:剛開始使用的時候,3分鐘可以出結(jié)果,用了一年以后,40分鐘都還沒有出結(jié)果。Dcard是主鍵,Ddate有索引,原因不明。有誰知道原因的請回復(fù),十分感謝。

我的解決辦法:1、對子查詢b生成臨時表,用的時候往臨時表中寫入數(shù)據(jù),查詢完成即刪除。

創(chuàng)建臨時表Create Global Temporary Table b(dcard varchar(20),dcount int,dsje numeric(12,2) )On Commit Preserve Rows;

2、這樣上面的查詢語句改為

select a.dno,

b,'yyyy-mm-dd')

order by 2

3、查詢。在程序中先啟動事務(wù),往b表中寫入數(shù)據(jù)(就是子查詢的內(nèi)容),執(zhí)行查詢,回滾事務(wù)。這樣數(shù)據(jù)就能正確的顯示,并且速度很快,效率很高。

雖然問題得到了解決,但是原因未查明,請求指點。

按以上方法問題得到解決,現(xiàn)在只需要6秒即可得到結(jié)果。

備注:臨時表比較

sqlserver:分本地臨時表僅在當前會話中可見;全局臨時表在所有會話中都可見。本地臨時表的名稱前面有一個編號符 (#table_name),而全局臨時表的名稱前面有兩個編號符 (##table_name)。表結(jié)構(gòu)是臨時的,會話結(jié)束或者重啟服務(wù)之后,臨時表即消失。

Oracle:表結(jié)構(gòu)是永久的,重啟服務(wù)也依然存在,除非顯式drop table。

總結(jié)

如果覺得編程之家網(wǎng)站內(nèi)容還不錯,歡迎將編程之家網(wǎng)站推薦給程序員好友。

本圖文內(nèi)容來源于網(wǎng)友網(wǎng)絡(luò)收集整理提供,作為學(xué)習(xí)參考使用,版權(quán)屬于原作者。

總結(jié)

以上是生活随笔為你收集整理的oracle查询结果存入临时表,Oracle查询问题引发临时表使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。