1 / 22
文档名称:

oracle开发人员面试题.docx

格式:docx   大小:56KB   页数:22页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

oracle开发人员面试题.docx

上传人:飞行的倩倩 2022/2/28 文件大小:56 KB

下载得到文件列表

oracle开发人员面试题.docx

文档介绍

文档介绍:一、基础概念
列举几种表连接方式
Or hash join/merge join/nest loop(cluster join)/index join ??
ORACLE 8i, 9i

表连接方法。
mizer=CBO(COST); /*

高效 */
ELSE
优化器

Optimizer=RBO(RULE); /*

高效 */
END IF;
END IF;
区别:
RBO根据规则选择最佳执行路径来运行查询。
CBO根据表统计找到最低成本的访问数据的方法确定执行计划。
使用 CBO需要注意:
需要经常对表进行 ANALYZE命令进行分析统计 ;
需要稳定执行计划 ;
需要使用提示 (Hint);
使用 RULE需要注意:
选择最有效率的表名顺序
优化 SQL的写法 ;
在 optimizer_mode=choose 时, 如果表有统计信息(分区表外) , 优化器将选择CBO,否则选 RBO。
RBO遵循简单的分级方法学 , 使用 15 种级别要点,当接收到查询,优化器将评估
使用到的要点数目 , 然后选择最佳级别(最少的数量)的执行路径来运行查询。CBO尝试找到最低成本的访问数据的方法 , 为了最大的吞吐量或最快的初始响应时间 , 计算使用不同的执行计划的成本, 并选择成本最低的一个 , 关于表的数据内容的统计被用于确定执行计划。
如何定位重要 ( 消耗资源多 ) 的 SQL
使用 CPU多的用户 session
SELECT , spid, status, SUBSTR , 1, 40) prog, ,, osuser, VALUE / 60 / 100
VALUE
FROM v$session a, v$process b, v$sesstat c WHERE # = 12 AND = AND =
ORDER BY VALUE DESC;
select sql_text from v$sql
where disk_reads > 1000 or (executions > 0 and buffer_gets/executions > 30000);
如何跟踪某个 session 的 SQL 利用 TRACE跟踪
ALTER SESSION SET SQLTRACE ON; COLUMN SQL format a200; SELECT machine, sql_text SQL FROM v$sqltext a, v$session b WHERE address = sql_address
AND machine = ‘&A’ ORDER BY hash_value, piece;
exec (sid,serial#,&sql_trace);
select sid,serial# from v$session where sid = (select sid from v$mystat
where rownum = 1);
exec (&sid,&serial#,&event_10046,&level_12,
6. SQL 调整最关注的是什么
检查系统的 I/O 问题
sar - d 能检查整个系统的 iostat ( IO statistics

”);

查看该 SQL的 response time(db block gets/consistent gets/physical reads/sorts (disk))
7. 说说你对索引的认识(索引的结构、对 dml 影响、对查询影响、为什么提高
查询性能)
索引有 B-TREE、BIT、CLUSTER等类型。 ORACLE使用了一个复杂的自平衡 B-tree 结构 ; 通常来说,在表上建立恰当的索引,查询时会改进查询性能。但在进行插入、删除、修改时,同时会进行索引的修改,在性能上有一定的影响。有索引且
查询条件能使用索引时, 数据库会先度取索引, 根据索引内容和查询条件, 查询
出 ROWID,再根据 ROWID取出需要的数据。由于索引内容通常比全表内容要少很多,因此通过先读索引,能减少 I/O ,提高查询性能。
b-tree

index/bitmap

index/function

index/patition