由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - 为啥Oracle stored procedure 里面不建议用 temporary table?
相关主题
DB2 Stored Procedure Error Handler美东有没有老中的oralce user group呀?
Stored Procedure?新手学习oracle需要安装Oracle的几点建议
DBA vs Database Developer想考几个Oracle的证书
advices please on learning Oracle生化小硕转DBA-考证,培训班,还是念个学位?
新手学数据库:到底是从Oracle 还是 SQL server 学起,还是今天版上贴了2个工作
大妈想转行搞database,请大牛指点出路!有人找到remote 的 Oracle DBA 或者 PLSQL developer的工作吗?
Oracle 看来还有很长的路学Oracle BI ,从哪里入手?
怎么样提高SQL SERVER的编程水平?请问怎样找到StoredProcedures的修改记录?
相关话题的讨论汇总
话题: oracle话题: table话题: stored话题: procedure话题: tt
进入Database版参与讨论
1 (共1页)
h*****6
发帖数: 866
1
为啥Oracle stored procedure 里面不建议用 temporary table? 谢谢。
B*****g
发帖数: 34098
2
only use tt when you have to

【在 h*****6 的大作中提到】
: 为啥Oracle stored procedure 里面不建议用 temporary table? 谢谢。
y****w
发帖数: 3747
3
谁建议的? 如果temp table解决问题最合适,为什么不用? 乱七八糟流行的坏主意多
了。有些成为坏主意就是因为不分场合的乱用,

【在 h*****6 的大作中提到】
: 为啥Oracle stored procedure 里面不建议用 temporary table? 谢谢。
h*****6
发帖数: 866
4
现在组的manager说的。
俺的工作涉及把TSQL stored procedure code转成PL SQL, 有的 TSQL stored
procedure 有两三千行代码,好几个TEMP tables, 如果PL SQL 不用TEMP table,就只
能用 Associative Array or nested table, 处理数据,最后写到表里,中间过程不用
TEMP table,都在memory内。
Stroed procedure 的功能就是把几个millions records 级别的表join在一起,做一些
很简单判别,加减,再写进原来的表或不同的表。
这样的stored procedure有20多个,用linux cron job,每晚跑一次。
如果PL SQL stored procedure 用TEMP table, 转变从TSQL到PLSQL就很容易。不用的
话,大的stored procedure还是挺complex的。
B*****g
发帖数: 34098
5
你们公司要parttime remote consultant吗?本人价格厚道,人超所值,哈哈。
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTIO

【在 h*****6 的大作中提到】
: 现在组的manager说的。
: 俺的工作涉及把TSQL stored procedure code转成PL SQL, 有的 TSQL stored
: procedure 有两三千行代码,好几个TEMP tables, 如果PL SQL 不用TEMP table,就只
: 能用 Associative Array or nested table, 处理数据,最后写到表里,中间过程不用
: TEMP table,都在memory内。
: Stroed procedure 的功能就是把几个millions records 级别的表join在一起,做一些
: 很简单判别,加减,再写进原来的表或不同的表。
: 这样的stored procedure有20多个,用linux cron job,每晚跑一次。
: 如果PL SQL stored procedure 用TEMP table, 转变从TSQL到PLSQL就很容易。不用的
: 话,大的stored procedure还是挺complex的。

y****w
发帖数: 3747
6
1. manager不是技术标准。要有你自己的判断。当然如果你的方法没有明显优势,听人家的。
2. tsql有很多temp table,最好你分析分析是不是有必要换成collection。基本面上我是持怀疑态度的,小的转换无所谓,大临时表你要用collection性能要吃紧。
3. 在转换时间,运行效率间权衡,直接转很可能是最合理的。beijing转的那个连接让我很吃惊,大概就是把临时表换成自查询了?那sql server原先自己也能这么干啊。做成临时表示不是有原因?很可能就是性能,加个索引嘛。

【在 h*****6 的大作中提到】
: 现在组的manager说的。
: 俺的工作涉及把TSQL stored procedure code转成PL SQL, 有的 TSQL stored
: procedure 有两三千行代码,好几个TEMP tables, 如果PL SQL 不用TEMP table,就只
: 能用 Associative Array or nested table, 处理数据,最后写到表里,中间过程不用
: TEMP table,都在memory内。
: Stroed procedure 的功能就是把几个millions records 级别的表join在一起,做一些
: 很简单判别,加减,再写进原来的表或不同的表。
: 这样的stored procedure有20多个,用linux cron job,每晚跑一次。
: 如果PL SQL stored procedure 用TEMP table, 转变从TSQL到PLSQL就很容易。不用的
: 话,大的stored procedure还是挺complex的。

B*****g
发帖数: 34098
7
个人觉得大量的数据根本就不应该放到tt、collection里去。

人家的。
我是持怀疑态度的,小的转换无所谓,大临时表你要用collection性能要吃紧。
让我很吃惊,大概就是把临时表换成自查询了?那sql server原先自己也能这么干啊。
做成临时表示不是有原因?很可能就是性能,加个索引嘛。

【在 y****w 的大作中提到】
: 1. manager不是技术标准。要有你自己的判断。当然如果你的方法没有明显优势,听人家的。
: 2. tsql有很多temp table,最好你分析分析是不是有必要换成collection。基本面上我是持怀疑态度的,小的转换无所谓,大临时表你要用collection性能要吃紧。
: 3. 在转换时间,运行效率间权衡,直接转很可能是最合理的。beijing转的那个连接让我很吃惊,大概就是把临时表换成自查询了?那sql server原先自己也能这么干啊。做成临时表示不是有原因?很可能就是性能,加个索引嘛。

y****w
发帖数: 3747
8
有些大库在做某些查询的时候,把中间结果放到tt加个index,比直接一个sql写出来好很多。抓到老鼠就是展招。
btw,对于collection,个人觉得就是给程序员手头的方便,别指望真能处理大数据。

【在 B*****g 的大作中提到】
: 个人觉得大量的数据根本就不应该放到tt、collection里去。
:
: 人家的。
: 我是持怀疑态度的,小的转换无所谓,大临时表你要用collection性能要吃紧。
: 让我很吃惊,大概就是把临时表换成自查询了?那sql server原先自己也能这么干啊。
: 做成临时表示不是有原因?很可能就是性能,加个索引嘛。

B*****g
发帖数: 34098
9
大量查询最好分成小块来做,想想往一个temp table里存百万个数据(假设有100个
session在run?)。。。。
collection处理大数据的效果很好,具体请见CINAOUG系列文章,hoho

好很多。抓到老鼠就是展招。

【在 y****w 的大作中提到】
: 有些大库在做某些查询的时候,把中间结果放到tt加个index,比直接一个sql写出来好很多。抓到老鼠就是展招。
: btw,对于collection,个人觉得就是给程序员手头的方便,别指望真能处理大数据。

y****w
发帖数: 3747
10
对我这儿来说,放几百万小意思. 要分成10w的小块,经常要慢个n>10倍的。
说真的,你去做下试验看看多大批次总体效果最好。我有时候就不明白大家为什么对现
代数据库的大数据处理能力不放心

【在 B*****g 的大作中提到】
: 大量查询最好分成小块来做,想想往一个temp table里存百万个数据(假设有100个
: session在run?)。。。。
: collection处理大数据的效果很好,具体请见CINAOUG系列文章,hoho
:
: 好很多。抓到老鼠就是展招。

相关主题
大妈想转行搞database,请大牛指点出路!美东有没有老中的oralce user group呀?
Oracle 看来还有很长的路新手学习oracle需要安装Oracle的几点建议
怎么样提高SQL SERVER的编程水平?想考几个Oracle的证书
进入Database版参与讨论
B*****g
发帖数: 34098
11
放心,所以就是inline table,hoho,DBA不让。基于网上post和个人测试,oracle处
理数据,一般bulk每次1万-10万最快。
另外,你的EXP是DB2,oracle不一定同理工作,而且还是case by case。你举个例子为
啥要用temp table吧。俺也有例子,哈哈。

【在 y****w 的大作中提到】
: 对我这儿来说,放几百万小意思. 要分成10w的小块,经常要慢个n>10倍的。
: 说真的,你去做下试验看看多大批次总体效果最好。我有时候就不明白大家为什么对现
: 代数据库的大数据处理能力不放心

y****w
发帖数: 3747
12
这也太累了。还是老原则,具体情况具体分析,没有必然差劲的技术,也没有银子子弹。
btw,上面我说催着改了的是sql server。

【在 B*****g 的大作中提到】
: 放心,所以就是inline table,hoho,DBA不让。基于网上post和个人测试,oracle处
: 理数据,一般bulk每次1万-10万最快。
: 另外,你的EXP是DB2,oracle不一定同理工作,而且还是case by case。你举个例子为
: 啥要用temp table吧。俺也有例子,哈哈。

B*****g
发帖数: 34098
13
就SQL Server转Orcle来说,把SP里的tt转成collection或者其他基本上是正确的。就是
用tt,也不要在SP做create/drop。

弹。
oracle处
子为

【在 y****w 的大作中提到】
: 这也太累了。还是老原则,具体情况具体分析,没有必然差劲的技术,也没有银子子弹。
: btw,上面我说催着改了的是sql server。

g***l
发帖数: 18555
14
我不是ORACLE的,但是这样,CREATE TEMP TABLE就要产生IO,现在SERVER的主要问题
是HIGH IO WAIT,DISK的读写速度现在是BOTTLE NECK,内存啥的越来越大,现在都是
尽量用内存或者CACHE,避免读写DISK
h*****6
发帖数: 866
15
你指的的Oracle用tt是指global temporary table吗?就是那种手动创建,一直存在数
据库里
面,不是sp自动创建,tt表名字整个DB unique, 在sp里面插入删除数据时把这样的tt
作为临时的地
方,sp最后把tt表内容清空。好像和一个空的permanent表没有啥区别了。
能简单介绍一下Oracle sp里面create/drop table的危害吗?我想我manager说的就是
不要在SP
做create/drop,俺不懂为啥?谢谢。

就是

【在 B*****g 的大作中提到】
: 就SQL Server转Orcle来说,把SP里的tt转成collection或者其他基本上是正确的。就是
: 用tt,也不要在SP做create/drop。
:
: 弹。
: oracle处
: 子为

B*****g
发帖数: 34098
16
tt和普通table有区别,tt是per session的。不同的session可以同时run多个SP(用同
一个tt),各个session之间互不影响,session结束后自动清除。普通table不行。
In oracle, create/drop tt是DDL,不易在SP中作(DBA正常的DDL除外)。而且一般
DBA也不会让你在SP里用DDL,如果DBA让你这样做了,换DBA吧。一般来说SP里也基本上
用不到tt。具体看我贴的唐木开特的link

tt

【在 h*****6 的大作中提到】
: 你指的的Oracle用tt是指global temporary table吗?就是那种手动创建,一直存在数
: 据库里
: 面,不是sp自动创建,tt表名字整个DB unique, 在sp里面插入删除数据时把这样的tt
: 作为临时的地
: 方,sp最后把tt表内容清空。好像和一个空的permanent表没有啥区别了。
: 能简单介绍一下Oracle sp里面create/drop table的危害吗?我想我manager说的就是
: 不要在SP
: 做create/drop,俺不懂为啥?谢谢。
:
: 就是

1 (共1页)
进入Database版参与讨论
相关主题
请问怎样找到StoredProcedures的修改记录?新手学数据库:到底是从Oracle 还是 SQL server 学起,还是
How to let oracle execute a procedure every hour?大妈想转行搞database,请大牛指点出路!
为啥sqlplus 比 oracle sql developer 强大,强大在哪?谢谢。Oracle 看来还有很长的路
sql server 面试题 (6)怎么样提高SQL SERVER的编程水平?
DB2 Stored Procedure Error Handler美东有没有老中的oralce user group呀?
Stored Procedure?新手学习oracle需要安装Oracle的几点建议
DBA vs Database Developer想考几个Oracle的证书
advices please on learning Oracle生化小硕转DBA-考证,培训班,还是念个学位?
相关话题的讨论汇总
话题: oracle话题: table话题: stored话题: procedure话题: tt