仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1007|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL网页设计ORACLE SQL功能优化系列 (七)

[复制链接]
飘飘悠悠 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:39:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
甚至一个有经验的Windows管理者也可以轻松部署并开始学习它,而你不需投入一分钱来了解这个数据库。oracle|功能|优化
24.用EXPLAINPLAN剖析SQL语句



EXPLAINPLAN是一个很好的剖析SQL语句的工具,它乃至能够在不实行SQL的情形下剖析语句.经由过程剖析,我们就能够晓得ORACLE是怎样毗连表,利用甚么体例扫描表(索引扫描或全表扫描)和利用到的索引称号.

你必要依照从里到外,从上到下的序次解读剖析的了局.EXPLAINPLAN剖析的了局是用缩进的格局分列的,最外部的操纵将被开始解读,假如两个操纵处于统一层中,带有最小操纵号的将被起首实行.

NESTEDLOOP是多数不依照上述划定规矩处置的操纵,准确的实行路径是反省对NESTEDLOOP供应数据的操纵,个中操纵号最小的将被开始处置.



译者按:



经由过程理论,感应仍是用SQLPLUS中的SETTRACE功效对照便利.

举例:



SQL>list

1SELECT*

2FROMdept,emp

3*WHEREemp.deptno=dept.deptno

SQL>setautotracetraceonly/*traceonly能够不显现实行了局*/

SQL>/

14rowsselected.

ExecutionPlan

----------------------------------------------------------

0SELECTSTATEMENTOptimizer=CHOOSE

10NESTEDLOOPS

21TABLEACCESS(FULL)OFEMP

31TABLEACCESS(BYINDEXROWID)OFDEPT

43INDEX(UNIQUESCAN)OFPK_DEPT(UNIQUE)



Statistics

----------------------------------------------------------

0recursivecalls

2dbblockgets

30consistentgets

0physicalreads

0redosize

2598bytessentviaSQL*Nettoclient

503bytesreceivedviaSQL*Netfromclient

2SQL*Netroundtripsto/fromclient

0sorts(memory)

0sorts(disk)

14rowsprocessed



经由过程以上剖析,能够得出实践的实行步骤是:

1.TABLEACCESS(FULL)OFEMP

2.INDEX(UNIQUESCAN)OFPK_DEPT(UNIQUE)

3.TABLEACCESS(BYINDEXROWID)OFDEPT

4.NESTEDLOOPS(JOINING1AND3)





注:今朝很多第三方的工具如TOAD和ORACLE自己供应的工具如OMS的SQLAnalyze都供应了极为便利的EXPLAINPLAN工具.大概喜好图形化界面的伴侣们能够选用它们.



(待续)
珍贵的资金可以用于其他业务的启动,诸如市场、广告或调研和开发等。
老尸 该用户已被删除
沙发
发表于 2015-1-19 21:05:15 | 只看该作者
比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
只想知道 该用户已被删除
板凳
发表于 2015-1-27 08:36:08 | 只看该作者
其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
小女巫 该用户已被删除
地板
发表于 2015-2-5 05:20:00 | 只看该作者
大家注意一点。如下面的例子:
第二个灵魂 该用户已被删除
5#
发表于 2015-2-11 05:47:27 | 只看该作者
原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
谁可相欹 该用户已被删除
6#
发表于 2015-3-1 22:45:36 | 只看该作者
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
海妖 该用户已被删除
7#
发表于 2015-3-11 00:34:42 | 只看该作者
理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识
愤怒的大鸟 该用户已被删除
8#
发表于 2015-3-17 17:08:35 | 只看该作者
还不是性能有问题!否则面向对象的数据库早就实现了!建议使用CLR的地方一般是和应用的复杂程度或操作系统环境有很高的耦合度的场景。如你想构建复杂的算法,并且用到了大量的指针和高级数据模型。
透明 该用户已被删除
9#
发表于 2015-3-24 14:01:44 | 只看该作者
而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 01:09

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表