某些情況下, 需要 多個非常大的表關聯的情況下, 但是需要檢索的, 是少量的資料的時候.可以先把 大表的資料, 檢索出那一小部分, 然後插入到 臨時表中, 最後再關聯處理.
例如:某百貨公司的資料庫.
裡面有下面這2張 沒有分割槽的表
銷售表: 銷售日期, 銷售流水號, 銷售金額
銷售明細表: 銷售流水號, 銷售物品, 銷售數量
當上面的表裡面,包含幾年的資料以後。
假如你要查詢 昨天的銷售合計。 很簡單
select * from 銷售表 where 銷售日期 = 昨天。
但是當你要查詢 昨天的銷售的, 某種商品的 銷售情況的時候。 就要
select
......
from
銷售表 join 銷售明細表
on (銷售表.銷售流水號 = 銷售明細表.銷售流水號)
where
銷售表.銷售日期 = 昨天
and 銷售明細表.銷售物品 =某物品
這種情況下,由於2個大表關聯,查詢時間非常的長。
可以通過臨時表。
先insert into 臨時表1
select * from 銷售表 where 銷售日期 = 昨天
然後再insert into 臨時表2
select * from 銷售明細表 where 銷售流水號 in (select 銷售流水號 from 臨時表1)
最後select
......
from
臨時表1 join 臨時表2
on (臨時表1.銷售流水號 = 臨時表2.銷售流水號)
這樣就是 2個小表關聯處理,查詢起來,速度快一些。
Oracle中臨時表
最近考慮到我們的資料庫端寫儲存過程關於臨時表使用的情況,由於我們 現在還不清楚資料庫端到底是怎麼處理的,是否和sql server的處理方式相 同,是否會存在隱患等等一些問題,為了避免將來不必要的麻煩我做了深 入的研究和檢視了一些權威的資料,現在和大家共享,希望大家在處理 oracle臨時表是注意一...
Oracle中臨時表
最近考慮到我們的資料庫端寫儲存過程關於臨時表使用的情況,由於我們 現在還不清楚資料庫端到底是怎麼處理的,是否和 sql server 的處理方式相 同,是否會存在隱患等等一些問題,為了避免將來不必要的麻煩我做了深 入的研究和檢視了一些權威的資料,現在和大家共享,希望大家在處理 oracle 臨時表是...
oracle中建立臨時表方法
1.首先必須有許可權 2.建表的語法示例 建立虛擬表 create global temporary table test ssid int,sname varchar2 20 on commit delete rows 插入資料 insert into test values 1,200 查詢資料...