关于oracle语句的语法问题?

[复制链接]
查看11 | 回复2 | 2011-5-7 01:45:08 | 显示全部楼层 |阅读模式
在浏览论坛的时候看到以下语句
SELECT /*+FULL(A)*/ A.F_FYID,A.F_FTJE,A.F_JXID
FROM LR_CBSJ A
不明白/*+FULL(A)*/ 有什么作用,注释的吗?
回复

使用道具 举报

千问 | 2011-5-7 01:45:08 | 显示全部楼层
是hint,
指示优化器按照hint来生成执行计划,
如上为:全表扫描LR_CBSJ
回复

使用道具 举报

千问 | 2011-5-7 01:45:08 | 显示全部楼层
SQL> SET AUTOTRACE ON;
SQL> SELECT /*+INDEX(EMPLOYEES)*/ EMPLOYEE_ID FROM EMPLOYEES WHERE EMPLOYEE_ID>205;
EMPLOYEE_ID
-----------
206

Execution Plan
----------------------------------------------------------
0SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=1 Bytes=4)
10 INDEX (RANGE SCAN) OF 'EMP_EMP_ID_PK' (UNIQUE) (Cost=2 Car

d=1 Bytes=4)


Statistics
----------------------------------------------------------

0recursive calls

0db block gets

1consistent gets

0physical reads

0redo size
380bytes sent via SQL*Net to client
503bytes received via SQL*Net from client

2SQL*Net roundtrips to/from client

0sorts (memory)

0sorts (disk)

1rows processed
SQL> EDIT
已写入文件 afiedt.buf
1* SELECT /*+FULL(EMPLOYEES)*/ EMPLOYEE_ID FROM EMPLOYEES WHERE EMPLOYEE_ID>205
SQL> /
EMPLOYEE_ID
-----------
206

Execution Plan
----------------------------------------------------------
0SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=1 Bytes=4)
10 TABLE ACCESS (FULL) OF 'EMPLOYEES' (Cost=2 Card=1 Bytes=4)


Statistics
----------------------------------------------------------

0recursive calls

0db block gets

7consistent gets

0physical reads

0redo size
380bytes sent via SQL*Net to client
503bytes received via SQL*Net from client

2SQL*Net roundtrips to/from client

0sorts (memory)

0sorts (disk)

1rows processed
SQL>
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行