`

DBA笔试题答案 - 阿里巴巴的Oracle DBA笔试题答案-SQL tuning类

阅读更多

阿里巴巴的Oracle DBA笔试题参考答案 - SQL tuning类
SQL tuning类参考解答:
  一:SQL tuning 类

  1:列举几种表连接方式

 程序代码
  hash join/merge join/nest loop(cluster join)/index join


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

 程序代码
  set autot on
  explain plan set statement_id = &item_id for &sql;
  select * from table(dbms_xplan.display);
  http://download-west.oracle.com/ ... /b10752/ex_plan.htm


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

  在optimizer_mode=choose时,如果表有统计信息(分区表外),优化器将选择CBO,否则选RBO。RBO遵循简单的分级方法学,使用15种级别要点,当接收到查询,优化器将评估使用到的要点数目, 然后选择最佳级别(最少的数量)的执行路径来运行查询。

  CBO尝试找到最低成本的访问数据的方法,为了最大的吞吐量或最快的初始响应时间,计算使用不同 的执行计划的成本,并选择成本最低的一个,关于表的数据内容的统计被用于确定执行计划。

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

 程序代码
select sql_text
from v$sql
where disk_reads > 1000 or (executions > 0 and buffer_gets/executions > 30000);


  5:如何跟踪某个session的SQL

 程序代码
exec dbms_system.set_sql_trace_in_session(sid,serial#,&sql_trace);
select sid,serial# from v$session where sid = (select sid from v$mystat where rownum = 1);
exec dbms_system.set_ev(&sid,&serial#,&event_10046,&level_12,'');

  6:SQL调整最关注的是什么

  查看该SQL的response time(db block gets/consistent gets/physical reads/sorts (disk))

  7:说说你对索引的认识(索引的结构、对dml影响、为什么提高查询性能)

  b-tree index/bitmap index/function index/patitional index(local/global) 索引通常能提高select/update/delete的性能,会降低insert的速度,

  8:使用索引查询一定能提高查询的性能吗?为什么

  索引就是为了提高查询性能而存在的, 如果在查询中索引没有提高性能, 只能说是用错了索引,或者讲是场合不同

  9:绑定变量是什么?绑定变量有什么优缺点?

  绑定变量是相对文本变量来讲的,所谓文本变量是指在SQL直接书写查询条件,这样的SQL在不同条件下需要反复解析,绑定变量是指使用变量来代替直接书写条件,查询bind value在运行时传递,然后绑定执行。优点是减少硬解析,降低CPU的争用,节省shared_pool ;缺点是不能使用histogram,sql优化比较困难

  10:如何稳定(固定)执行计划

 程序代码
  query_rewrite_enabled = true
  star_transformation_enabled = true
  optimizer_features_enable = 9.2.0


  创建并使用stored outline
oracle can automatically create outlines for all SQL statements, or you can create them for specific SQL statements. In either case, the outlines derive their input from the optimizer.

oracle creates stored outlines automatically when you set the initialization parameter Create_STORED_OUTLINES to true. When activated, oracle creates outlines for all compiled SQL statements. You can create stored outlines for specific statements using the Create OUTLINE statement.

Creating Outlines:http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14211/outlines.htm

  11:和排序相关的内存在8i和9i分别怎样调整,临时表空间的作用是什么

  Oracle 8i中sort_area_size/sort_area_retained_size决定了排序所需要的内存

  如果排序操作不能在sort_area_size中完成,就会用到temp表空间

  Oracle 9i中如果workarea_size_policy=auto时,

  排序在pga内进行,通常pga_aggregate_target的1/20可以用来进行disk sort;

  如果workarea_size_policy=manual时,排序需要的内存由sort_area_size决定

  在执行order by/group by/distinct/union/create index/index rebuild/minus等操作时,

  如果在pga或sort_area_size中不能完成,排序将在临时表空间进行(disk sort),

  临时表空间主要作用就是完成系统中的disk sort.

  12:存在表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sql

 程序代码
  create table t(a number(,b number(,c number(,d number();
  /
  begin
  for i in 1 .. 300 loop
  insert into t values(mod(i,2),i/2,dbms_random.value(1,300),i/4);
  end loop;
  end;
  /
  select * from (select c.*,rownum as rn from (select * from t order by c desc) c) where rn between 21 and 30;
  /
  select * from (select * from test order by c desc) x where rownum < 30
  minus
  select * from (select * from test order by c desc) y where rownum < 20 order by 3 desc

  相比之 minus性能较差

分享到:
评论

相关推荐

    阿里巴巴的Oracle DBA笔试题参考答案

    阿里巴巴的Oracle DBA笔试题参考答案 本文将从阿里巴巴的Oracle DBA笔试题参考答案中提取相关知识点,并进行详细解释。 一、SQL Tuning SQL Tuning是数据库管理员(DBA)最常见的任务之一。它涉及到SQL语句的优化...

    阿里巴巴公司DBA笔试题

    ### 阿里巴巴公司DBA笔试题知识点详解 #### 一、SQL Tuning 类 1. **列举几种表连接方式** - **INNER JOIN**:返回两个表中具有匹配值的所有行。 - **LEFT JOIN (LEFT OUTER JOIN)**:返回左表的所有行,即使右...

    阿里巴巴公司DBA笔试题.doc

    ### 阿里巴巴公司DBA笔试题知识点解析 #### 一、SQL Tuning 类 1. **列举几种表连接方式** - **内连接(INNER JOIN)**: 只返回两个表中匹配的行。 - **左外连接(LEFT OUTER JOIN)**: 返回左表中的所有行,并...

    oracle dba 笔试题

    ### Oracle DBA 笔试题详解 #### SQL Tuning 类 1. **表连接方式** 表连接在SQL查询中至关重要,常见的连接方式包括: - **Merge Join**: 这种连接方式适用于两个表中都有排序的情况,Oracle将两个已排序的表...

    阿里巴巴公司 DBA 笔试题(上)

    #### 一、SQL Tuning 类 1. **列举几种表连接方式** - **Hash Join**:适用于大型表的连接,基于散列算法进行数据匹配。 - **Merge Join**:适用于有序的数据集,通过排序两个表的数据再进行合并。 - **Nested ...

    Oracle DBA 笔试题

    【Oracle DBA 笔试题详解】 一、Database 1. 创建用户时,需要赋予`CONNECT`权限,使得新用户能够连接到数据库。 2. 重构索引通常涉及重建索引,可以通过`ALTER INDEX REBUILD`命令实现,或者在索引碎片过多时,...

    数据库笔试和答案

    阿里巴巴的Oracle DBA笔试题参考答案 - SQL tuning类

    据说是阿里巴巴公司DBA笔试题

    阿里巴巴公司 DBA 笔试题知识点总结 以下是对给定文件信息的详细知识点总结: SQL Tuning 1. 表连接方式:hash join、merge join、nest loop (cluster join)、index join 2. 查看 SQL 执行计划:使用 set ...

    阿里巴巴的一份dba试题,很经典

    ### 阿里巴巴DBA笔试题中的核心知识点 #### SQL Tuning 类 1. **表连接方式**: - **Hash Join**:通过计算参与连接操作的行的哈希值来实现连接,适用于大型表之间的连接。 - **Merge Join**:适用于已排序的...

    DBA笔试题.wps

    SQL tuning 类  1:列举几种表连接方式  hash join/merge join/nest loop(cluster join)/index join  2:不借助第三方工具,怎样查看sql的执行计划  set autot on  explain plan set statement_id = &item_...

    oracle 10g 考试题库

    Oracle 10g 是Oracle公司推出的数据库管理系统的一个版本,它在2003年发布,提供了许多增强功能和性能优化,对于数据库管理员(DBA)来说是重要的学习和认证目标。"Oracle OCP"(Oracle Certified Professional)是...

    Oracle 12c OCP资料

    - **考试格式**:一般分为两部分,一部分是基于选择题的笔试,另一部分是实验室操作考试。 - **学习路径**:通过官方文档、培训课程、在线教程和实际操作来准备,熟悉Oracle 12c的所有主要功能和工具。 4. **...

Global site tag (gtag.js) - Google Analytics