就业数据资源平台
当前位置:首页 > 笔试题目
笔试题(SQL tuning )


SQL tuning 类

1 列举几种表连接方式

等连接、非等连接、自连接、外连接(左、右、全)

2 不借助第三方工具,怎样查看sql的执行计划

I) 使用Explain Plan,查询PLAN_TABLE;

EXPLAIN   PLAN

SET STATEMENT_ID=’QUERY1′

FOR

SELECT *

FROM a

WHERE aa=1;

SELECT    operation, options, object_name, object_type, ID, parent_id

FROM plan_table

WHERE STATEMENT_ID = ‘QUERY1′

ORDER BY ID;

II)SQLPLUS中的SET TRACE 即可看到Execution Plan Statistics

SET AUTOTRACE ON;

3:如何使用CBO,CBO与RULE的区别

IF 初始化参数 OPTIMIZER_MODE = CHOOSE THEN   –(8I DEFAULT)

IF 做过表分析

THEN 优化器 Optimizer=CBO(COST);           /*高效*/

ELSE

优化器 Optimizer=RBO(RULE);                /*高效*/

END IF;

END IF;

区别:

RBO根据规则选择最佳执行路径来运行查询。

CBO根据表统计找到最低成本的访问数据的方法确定执行计划。

使用CBO需要注意:

I)   需要经常对表进行ANALYZE命令进行分析统计;

II) 需要稳定执行计划;

III)需要使用提示(Hint);

使用RULE需要注意:

I)   选择最有效率的表名顺序

II) 优化SQL的写法;

4 如何定位重要(消耗资源多)的SQL

使用CPU多的用户session

SELECT    a.SID, spid, status, SUBSTR (a.program, 1, 40) prog, a.terminal,a.SQL_TEXT,

osuser, VALUE / 60 / 100 VALUE

FROM v$session a, v$process b, v$sesstat c

WHERE c.statistic# = 12 AND c.SID = a.SID AND a.paddr = b.addr

ORDER BY VALUE DESC;

5 如何跟踪某个session的SQL

就业数据资源平台