什么是buffer(sort)

来源:互联网 发布:java项目打包部署 编辑:程序博客网 时间:2024/06/05 00:45

BUFFER (SORT)

Description

Performs a memory sort on a row source

Versions

This operation was introduced in Oracle 9.0.1 though it may have been used in limited circumstances in some earlier versions

This operation is implemented in the following versions


9.0.1 9.2.0

Examples

Example 1

This example was developed using Oracle 9.2.0.1 on Windows 2000

This example requires the following table and index definitions

    CREATE TABLE t1 (c1 NUMBER);
CREATE INDEX T1_C1 ON T1(C1);

At least one of the tables must be analysed

    ANALYZE TABLE t1 COMPUTE STATISTICS;

The statement

    SELECT t1.c01, t2.c01
FROM t1;

generates the following execution plan

   0     SELECT STATEMENT Optimizer=CHOOSE
1 0 MERGE JOIN (CARTESIAN)
2 1 TABLE ACCESS (FULL) OF 'T1'
3 1 BUFFER (SORT)
4 3 TABLE ACCESS (FULL) OF 'T2'
Example 2

This example was developed using Oracle 9.2.0.1 on Windows 2000

This example requires the following table and index definitions

    CREATE TABLE t1 (c1 NUMBER,c2 NUMBER);

In Oracle 9.0.1 and above the statement

    SELECT c1,c2 FROM t1
CONNECT BY c1 = PRIOR c2
START WITH c1 = 0;

generates the following execution plan

   0      SELECT STATEMENT Optimizer=CHOOSE
1 0 CONNECT BY (WITH FILTERING)
2 1 NESTED LOOPS
3 2 TABLE ACCESS (FULL) OF 'T1'
4 2 TABLE ACCESS (BY USER ROWID) OF 'T1'
5 1 NESTED LOOPS
6 5 BUFFER (SORT)
7 6 CONNECT BY PUMP
8 5 TABLE ACCESS (FULL) OF 'T1'
 
原创粉丝点击