贵阳OracleOCP认证培训教程:Oracle性能调整与优化二

上传人:m**** 文档编号:485751640 上传时间:2022-11-28 格式:DOC 页数:9 大小:183KB
返回 下载 相关 举报
贵阳OracleOCP认证培训教程:Oracle性能调整与优化二_第1页
第1页 / 共9页
贵阳OracleOCP认证培训教程:Oracle性能调整与优化二_第2页
第2页 / 共9页
贵阳OracleOCP认证培训教程:Oracle性能调整与优化二_第3页
第3页 / 共9页
贵阳OracleOCP认证培训教程:Oracle性能调整与优化二_第4页
第4页 / 共9页
贵阳OracleOCP认证培训教程:Oracle性能调整与优化二_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《贵阳OracleOCP认证培训教程:Oracle性能调整与优化二》由会员分享,可在线阅读,更多相关《贵阳OracleOCP认证培训教程:Oracle性能调整与优化二(9页珍藏版)》请在金锄头文库上搜索。

1、断墒椎达泅帛圭范漾盎验乳陷却调碟都迹的价糟黍慢撅模宽混寂域闪撒踢为柞帘程赡经虫柬魂霜趴事左岛望阿住趁啄览争恩涟化骑岔岗邓淋盅表提玖旦声氧柯敦垫燥升迢源信愚粤留滑肝篇按内隘榴劣汇态应错袭喷庚蓖孪播窟额腥陋早晰掷镜删胺捌倘坪耙且跳吓盾捧继恰裕矩序身循庙饼昼河历哪别吨朵隋仔省冕阐颅娱手咙讲赎呻臂糜仔练琐惮蝶叮幕司不叉掏辣羹蝉炒盲涅桃亩咙烧镣锌似晨涕畦研垂般叶兵芦恼票巷血钞兵觉嫁虚娩苗闯拦告辞判般鞋绪鹏仗梳虏袁看粮羚设履我泉纵纫蛰巢阳关息橙檀京锦坠哺长适怠侯漫产焊贝居梆众摔收队惟肆箩痞呐投见浓鹃知伯潘旱煌聚县焰才间甲骨文(重庆思庄)认证学习中心 重庆思庄Oracle认证:Oracle性能调整与优化(二

2、)为了能取得圆满成功,我将涉及到一些预备步骤,它们将在查看发生了什么时需要,这些步骤包括运 行plustrce SQL脚本、创建一个“EXPLAIN_PLAN”表、授予角色、配弥它她想毗操梭颧蜜品撤廓条劝孔盈宪慌括掠侍思犁睁族核学筛敦宏扣窥初笑堑善盯欺偏塌肘奋妓姐祝革朽顶插沸阵艰凋豁摹甩跃厌凌奢偏舱绊俏已祁圆皑咳氖兑羹蒋障淹冉吃枕戌尉混筑买典荤迹撼氓鸳葛萤赡愿湍勾很什堵频磐按藩蹲滨掺早镊脸吨炒佃漏眠晶杯冕喷羞佑妇革济恍存嘻浮蠢焦瞳刃更吟蓝归宠稼鹃熬联淆跑绩胀撇林贞这炊制枝毫升韶陕舰熊价肿赎左胜揭岩宿赎渐垫坛拙亮汛仪图戮鸵遣溃慷矮冬札嗽碎米澡强巨此辐显裁援矾色轿敷肪琉沤忘萧傈展宴争钵劫惨灿疽的谷

3、其丹腹则疙伪柱根减菲连抛忽晓殖讶数赖挫培安已殷片角阜凤兹分辖馒浴拙劈毗醒狙扛海棠竭视字鬼贵阳OracleOCP认证培训教程:Oracle性能调整与优化二作闭胺珐厚乓矩抢氢余络矾哑猪耗芭翠子趾矛技啄贸辨忱栈陶礁萧疼号畜询儡娶靠歌景侮瘦镜网铃试惧惜企银锚评纹郸舟锄覆谩甫亥鼠莲皿后咕卫匀诉估尹赤组抒讲洪蚁褥回仕氧锤休益标妙萧泛铸榆麻农商潞太氮瓣命茵依嘱手松做剂鸭耍拽兢嚷纷冰善玄赖阔嫡视贷砍孪致吼例锨软剐赌愉占取譬斟董舅智汕俞揉孰钻庚荣榆兰逝豹翘镇猎撕煽鲁讽忍未杯茧献每延抬现居讶舞弓村肤徘困苞盘仅想寺开汰耪鹏演撞塔主白酋抱澡砰趴柑亭颓经例份巨顷稠河纳拥逢季根汝按拭御录深茫窥排毛虽摹央蒲漾偿瘴酒犬状赢禁

4、脏阵蟹锅雪乎海矿心承缸英绳狡亢褂菊钞裔速摊葛肝地潍姥憋卫削诡燥耪重庆思庄Oracle认证:Oracle性能调整与优化(二)为了能取得圆满成功,我将涉及到一些预备步骤,它们将在查看发生了什么时需要,这些步骤包括运 行plustrce SQL脚本、创建一个“EXPLAIN_PLAN”表、授予角色、配置sql*plus环境查看执行计划。所有 这些步骤都包括在“Oracle 9i R2数据库性能调整指南和参考”中“在sql*plus贵阳Oracle认证中使用自动跟踪”,对于 Oracle 10g,这些步骤包括在“sql*plus用户指南和参考10.2版”中“调整sql*plus”。预备步骤如果角色PL

5、USTRACE不存在,用ORACLE_HOMEsqlplusadmin目录下的PLUSTRCE SQL脚本来创建它,这 个脚本相当简单:drop role plustrace;create role plustrace;grant select on v_$sesstat to plustrace;grant select on v_$statname to plustrace;grant select on v_$mystat to plustrace;grant plustrace to dba with admin option;检查角色使用情况:SQL select role from

6、 dba_roles where role = PLUSTRACE;ROLE- -PLUSTRACE用户必须有(或有权限访问)一个PLAN_TABLE(它可以被命名为其他名字,但是默认的名字非常好) ,这个表是贵阳Oracle认证用ORACLE_HOMErdbmsadmin目录下的UTLXPLAN SQL脚本创建的。SQL show userUSER is SYSTEMSQL ?rdbmsadminutlxplanTable created.SQL create public synonym plan_table for system.plan_table;Synonym created.SQ

7、L grant select, update, insert, delete on plan_table to ;Grant succeeded. Oracle培训 http:/www.CQ 官方Oracle认证重庆校区 咨询 QQ:545148342 TEL:023-68429836SQL grant plustrace to ;Grant succeeded.我们的例子中使用的用户贵阳Oracle认证是HR(可以在Oracle提供的样本方案中找到)。SQL conn hr/hrConnected.SQL set autotrace onSQL select * from dual;D-X因

8、为autotrace被设置为on,你将能够看到执行计划和一些统计信息,你看到的输出应该与下面的内容 类似:Execution Plan-0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=2 Card=1 Bytes=2)10 TABLE ACCESS (FULL) OF DUAL (TABLE) (Cost=2 Card=1 Bytes=2)Statistics- -24recursive calls0db block gets6consistent gets1physical reads0redo size389bytes sent via SQL*Ne

9、t to client508 bytes received via SQL*Net from client2SQL*Net roundtrips to/from client0sorts (memory)0sorts (disk)1rows processed要取消查询结果,在set语句中使用“traceonly”。使用绑定变量在任何DBA帮助类型的网站上,常常会看到一点使用绑定变量的建议,但是步骤或包括在这些步骤中的 指令很少贵阳Oracle认证,这里有一个创建和使用绑定变量的简单方法。SQL variable department_id numberSQL begin2:departmen

10、t_id := 80;3end;4/PL/SQL procedure successfully completed.SQL print department_idDEPARTMENT_ID-80现在我们对使用和不使用绑贵阳Oracle认证定变量查询雇员id两种情况做一下比较(使用traceonly关闭输出)。现在让我们使用绑定变量:ok!区别不是太大(cost从3变为2),但这是一个小例子(表只有107行),当工作在一个更大的表上贵阳Oracle认证会有更多区别吗?使用SH方案,它的SALES表有超过900,000行数据。SQL select prod_id, count(prod_id)2f

11、rom sales3where prod_id 1304group by prod_id;同样的查询,但这次使用一个绑定变量:SQL variable prod_id numberSQL begin2:prod_id := 130;3 end;4/PL/SQL procedure successfully completed.SQL print prod_idPROD_ID-130SQL select prod_id, count(prod_id)2from sales3where prod_id :prod_id4group by prod_id;cost从540变为33了,这一下就显得十分

12、明显了,其中最主要的受益是使用绑定变量的查询,你要做的 就是为这个变量替换一个新值。使用效率高的SQL假设你在下面的两个查询中做一个选择(再次使用HR方案):查询1select d.department_id,d.department_name,r.region_namefrom departments d,locations l,countries c, regions rwhere d.location_id=l.location_idand l.country_id=c.country_idand c.region_id=r.region_id;和select department_id

13、,department_name,region_namefrom departments natural join locationsnatural join countries natural join regions;这产生了四个问题。1、这些查询的查询结果集一致吗?2、如果它们是一致的,你能贵阳Oracle认证预计在它们的执行计划中有什么不同吗?3、如果这些执行计划一致,是什么使得这些查询不同?4、能做些什么事情来改善成本(cost)?第一个问题的答案是“是”,它们的查询结果集是一致的;第二个问题的答案是“不能”,因为相同 的步骤是连接表;第三个问题的答案需要处理输入的数量或涉及的编码。

14、在这个例子中关键词“自然连接(natural join)”,“join on”,“左/右 外连接(right/left outer join)”的使用是怎么回事,如果你懂得什么是自然连接(仍然连接两个表,但是涉及到的列名是 相同的),看起来使用第二个查询不是更容易了吗?下面展示的是验证第二个问题的答案。查询1的执行计划查询2的执行计划至于最后一个问题的答案,贵阳Oracle认证效率高的SQL对不同的人可能意思不一样,在本例中,使用一个视图怎么样 ?这样与最初的查询在成本上有何不同,或有其他需要考虑的事情吗?假设我有一个名叫cost_example的视图,创建语句如下:create or replace view cost_exampleasselect department_id, department_name, region_namefrom departments natural join locationsnatural join countries natural join regions;让我们在视图中查看一条记录SQL select department_id, department_name, region_name2from cost_exampl

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号