Oracle中很多SQL操作都会使用Temp Space临时空间,理想状况下OLTP环境中自动/手动管理的PGA总是能在私有内存中满足这些操作的空间需求,而在Data Warehouse数据仓库中往往我们需要配置一个巨大的临时表空间(组)来满足海量的维护/查询对临时空间的需求,那么到底有哪些SQL操作时需要用到临时空间的呢?Google了一下,似乎没有一张非常完整的列表,这里由我抛砖引玉地列出一些,当然这远远不够全面:
SQL CODEType
CREATE INDEXDDL
REBUILD INDEXDDL
ANALYZEDDL
CREATE PRIMARY KEY CONSTRAINTDDL
ENABLE CONSTRAINTDDL
CREATE TABLE AS SELECT(use permanet TBS)DDL
SELECT DISTINCTQUERY
ORDER BYClause
GROUP BYClause
UNION ALLClause
UNIONClause
MINUSClause
INTERSECTClause
ROLLUP() FUNCTIONFUNCTION
RANK() FUNCTIONFUNCTION
CONNECT BYClause
TEMPORARY TABLETemporary Data
LOB_DATALOB
LOB_INDEXLOB
HASH GROUP BYOperation
HASH JOINOperation
HASH JOIN (ANTI)Operation
HASH JOIN (SEMI)Operation
SORT MERGE JOINOperation
SORT MERGE Anti-JoinOperation
SORT MERGE Semi-JoinOperation
SORT GROUP BYOperation
IDX MAINTENANCE (SORT)Operation
WINDOW (SORT)Operation
ROLLUP (SORT)Operation
CONNECT-BY (SORT)Operation
UNIONOperation
UNION ALLOperation
SORT AGGREGATEOperation
SORT UNIQUEOperation