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


Posted in 面试题 onApril 03, 2016
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 minus
select * from (select * from test order by c desc) y where rownum
相比之 minus性能较差

Tags in this post...

面试题 相关文章推荐
说出一些常用的类,包,接口
Sep 22 面试题
What is the purpose of Void class? Void类的作用是什么?
Oct 31 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
Jul 30 面试题
说一下mysql, oracle等常见数据库的分页实现方案
Sep 29 面试题
什么是Smart Navigation?
Jul 03 面试题
Linux的文件类型
Jul 05 面试题
几个Shell Script面试题
Aug 31 面试题
分别介绍一下Session Bean和Entity Bean
Mar 13 面试题
JAVA招聘远程笔试题
Jul 23 面试题
介绍一下Java中标识符的命名规则
Feb 03 面试题
shell的种类有哪些
Apr 15 面试题
解释下列WebService名词:WSDL、SOAP、UDDI
Jun 22 面试题
几道数据库的概念性面试题
May 30 #面试题
阿里巴巴Oracle DBA笔试题答案-备份恢复类
Nov 20 #面试题
Oracle性能调优原则
May 03 #面试题
ORACLE十问
Apr 20 #面试题
ORACLE第二个十问
Dec 14 #面试题
一道写SQL的面试题和答案
Nov 19 #面试题
一个SQL面试题
Aug 21 #面试题
You might like
PHP array_multisort()函数的使用札记
2011/07/03 PHP
laravel学习教程之关联模型
2016/07/30 PHP
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
jquery ajax中使用jsonp的限制解决方法
2013/11/22 Javascript
LABjs、RequireJS、SeaJS的区别
2014/03/04 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
浅谈Node.js爬虫之网页请求模块
2018/01/11 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
Node.js 实现远程桌面监控的方法步骤
2019/07/02 Javascript
微信小程序 网络通信实现详解
2019/07/23 Javascript
vue移动端城市三级联动组件使用详解
2019/07/26 Javascript
JS实现贪吃蛇游戏
2019/11/15 Javascript
Python实现网站文件的全备份和差异备份
2014/11/30 Python
详解Python中expandtabs()方法的使用
2015/05/18 Python
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
浅析Python中元祖、列表和字典的区别
2016/08/17 Python
Python快速排序算法实例分析
2017/11/29 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
Python实现带参数的用户验证功能装饰器示例
2018/12/14 Python
python钉钉机器人运维脚本监控实例
2019/02/20 Python
在python中,使用scatter绘制散点图的实例
2019/07/03 Python
在django-xadmin中APScheduler的启动初始化实例
2019/11/15 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
一道写SQL的面试题和答案
2013/11/19 面试题
北京-环亚运商测试题.net程序员初步测试题
2013/05/28 面试题
天猫活动策划方案
2014/08/21 职场文书
阿凡达观后感
2015/06/10 职场文书
爱国主义影片观后感
2015/06/18 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书