当Oracle处理一个查询时,经常需要为SQL语句的解析与执行的中间结果
(intermediate stage)准备临时空间。Oracle会自动地分配被称为临时段
(temporary segment)的磁盘空间。例如,Oracle在进行排序操作时就需要使
用临时段。当排序操作可以在内存中执行,或Oracle设法利用索引就执行
时,就不必创建临时段。
需要使用临时段的操作:
● CREATE INDEX
● SELECT ... ORDER BY
● SELECT DISTINCT ...
● SELECT ... GROUP BY
● SELECT . . . UNION
● SELECT ... INTERSECT
● SELECT ... MINUS
有些不能使用索引的关联操作(unindexed join),或者需要在子查询间建立
相互关系(correlated subqueries),也可能需要使用临时段(temporary
segment)。所以当查询包含DISTINCT,GROUP BY,或 ORDER BY 子句
时,Oracle有可能使用两个临时段。
临时表及其索引使用的段
Oracle可以为临时表(temporary table)及其索引分配临时段(temporary
segment)。临时表中的数据只在会话(session)或事务(transaction)的运行
期内存在。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8183550/viewspace-666795/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8183550/viewspace-666795/