莫相离 发表于 2015-1-16 22:38:38

MYSQL网站制作之ORACLE SQL功能优化系列 (六)

一个相关的问题是第三方支持的资格问题,尽管直接来自厂商的支持和服务可以一定程度上减缓这个问题,但是,对于有的企业来说,通过强有力的本地化支持显然更有吸引力。oracle|功能|优化
20.用表毗连交换EXISTS



一般来讲,接纳表毗连的体例比EXISTS更无效率

SELECTENAME

FROMEMPE

WHEREEXISTS(SELECT‘X’

FROMDEPT

WHEREDEPT_NO=E.DEPT_NO

ANDDEPT_CAT=‘A’);



(更高效)

SELECTENAME

FROMDEPTD,EMPE

WHEREE.DEPT_NO=D.DEPT_NO

ANDDEPT_CAT=‘A’;



(译者按:在RBO的情形下,前者的实行路径包含FILTER,后者利用NESTEDLOOP)



21.用EXISTS交换DISTINCT

当提交一个包括一对多表信息(好比部门表和雇员表)的查询时,制止在SELECT子句中利用DISTINCT.一样平常能够思索用EXIST交换



比方:

低效:

SELECTDISTINCTDEPT_NO,DEPT_NAME

FROMDEPTD,EMPE

WHERED.DEPT_NO=E.DEPT_NO

高效:

SELECTDEPT_NO,DEPT_NAME

FROMDEPTD

WHEREEXISTS(SELECT‘X’

FROMEMPE

WHEREE.DEPT_NO=D.DEPT_NO);



EXISTS使查询更加敏捷,由于RDBMS中心模块将在子查询的前提一旦满意后,立即前往了局.



22.辨认’低效实行’的SQL语句



用以下SQL工具找出低效SQL:



SELECTEXECUTIONS,DISK_READS,BUFFER_GETS,

ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2)Hit_radio,

ROUND(DISK_READS/EXECUTIONS,2)Reads_per_run,

SQL_TEXT

FROMV$SQLAREA

WHEREEXECUTIONS>0

ANDBUFFER_GETS>0

AND(BUFFER_GETS-DISK_READS)/BUFFER_GETS<0.8

ORDERBY4DESC;



(译者按:固然今朝各类关于SQL优化的图形化工具层见叠出,可是写出本人的SQL工具来办理成绩一直是一个最好的办法)



23.利用TKPROF工具来查询SQL功能形态



SQLtrace工具搜集正在实行的SQL的功能形态数据并纪录到一个跟踪文件中.这个跟踪文件供应了很多有效的信息,比方剖析次数.实行次数,CPU利用工夫等.这些数据将能够用来优化你的体系.



设置SQLTRACE在会话级别:无效



ALTERSESSIONSETSQL_TRACETRUE



设置SQLTRACE在全部数据库无效仿,你必需将SQL_TRACE参数在init.ora中设为TRUE,USER_DUMP_DEST参数申明了天生跟踪文件的目次



(译者按:这一节中,作者并没有提到TKPROF的用法,对SQLTRACE的用法也不敷正确,设置SQLTRACE起首要在init.ora中设定TIMED_STATISTICS,如许才干失掉那些主要的工夫形态.天生的trace文件是不成读的,以是要用TKPROF工具对其举行转换,TKPROF有很多实行参数.人人能够参考ORACLE手册来懂得详细的设置.)
MySQL对硬件的较低要求是其最大的优势之一,不过需要注意的是:内存越多越好,因为所有的重要数据存储都在内存中完成。

飘灵儿 发表于 2015-1-19 20:08:53

多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。

仓酷云 发表于 2015-1-27 08:37:39

多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油

再现理想 发表于 2015-2-5 05:36:03

代替了原来VB式的错误判断。比Oracle高级不少。

admin 发表于 2015-2-11 06:02:44

比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。

只想知道 发表于 2015-3-1 22:59:17

多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。

兰色精灵 发表于 2015-3-11 00:34:42

SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。

活着的死人 发表于 2015-3-17 17:08:32

这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。

莫相离 发表于 2015-3-24 13:46:20

比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
页: [1]
查看完整版本: MYSQL网站制作之ORACLE SQL功能优化系列 (六)