作者zacaria (zacaria)
看板Database
标题[SQL ] 如何有效率的重复执行相同程式
时间Fri Nov 1 23:52:31 2013
我用的是oracle
最近遇到一个问题
想请教有没有比较有效的解决方法
有n个table需要常常建立 (table_1、table_2、...、table_n)
但是执行时的条件每次都不一样
简化如下:
create table table_1 as
select * from A
where x in (4562,7864,1432)
and y in (51321,123153)
and z=35413;
create table table_2 as
select * from A
where x in (5641,1324)
and y in (86746,15345,23415)
and z=54231;
其中 x,y,z 每次要带入的数值无论是个数或是内容都没有规律
也就是说 下次x可能只有一个值、或是有四个值不等
我想请问除了每次逐笔更改where处之外
有没有比较有效率的方式可以处理
想了好久想不出来
烦请有经验的高手帮帮忙
非常感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.162.216.164
1F:→ moyasi:重点在x,y,z的值能不能直接select 出来 11/02 01:06
可以
只是我尝试用
select * from A
where x in (select xx from X)
and y in (select yy from Y)
and z=(select zz from Z)
却非常耗时
直接给数值时间上快很多
2F:→ moyasi:为什麽要一直建立table 不能写成view吗? 11/02 01:07
因为会需要保留这些table
作为资料的备份
假设不考虑备份的情况下
用view会比较好吗?
我对view粗略的了解是它其实跟建立table
在code上没有很大的不同
这样讲不知道对不对呢
最後 谢谢您的回覆 ^^
※ 编辑: zacaria 来自: 1.162.200.47 (11/04 22:26)