仓酷云

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

[学习教程] MYSQL编程:oracle数据库优化

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

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

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

x
事实上,在任何DBaaS中,解决方案提供商对如何管理物理资源都没有控制权,因此MySQL学习教程可能会发现由于DBaaS的局限性使得他们提供给客户的远远小于客户所期望的。oracle|数据|数据库|优化
优化就是选择最无效的办法来实行SQL语句。Oracle优化器选择它以为最无效的

办法来实行SQL语句。



1).ISNULL和ISNOTNULL

假如某列存在NULL值,即便对该列创建索引也不会进步功能。

2).为分歧的事情编写分歧的SQL语句块

为完成分歧的事情编写一年夜块SQL程序不是好办法。它常常招致每一个义务的了局不优

化。若要SQL完成分歧的事情,一样平常应编写分歧的语句块比编写一个要好。

3).IN和EXISTS

Selectnamefromemployeewherenamenotin(selectnamefromstudent);

Selectnamefromemployeewherenotexists(selectnamefromstudent);

第一句SQL语句的实行效力不如第二句。

经由过程利用EXISTS,Oracle会起首反省主查询,然后运转子查询直到它找到第一个婚配

项,这就节俭了工夫。Oracle在实行IN子查询时,起首实行子查询,并将取得的了局

列表寄存在一个加了索引的一时表中。在实行子查询之前,体系先将主查询挂起,待

子查询实行终了,寄存在一时表中今后再实行主查询。这也就是利用EXISTS比利用IN

一般查询速率快的缘故原由。

4).NOT运算符

Select*fromemployeewheresalary1000;

Select*fromemployeewheresalary<1000orsalary>1000;

第一句SQL语句的实行效力不如第二句,由于第二句SQL语句可使用索引。

5).OrderBy语句

OrderBy语句的实行效力很低,由于它要排序。应制止在OrderBy字句中利用表达式。

6).列的毗连

select*fromemployeewherename||department=’ZYZBIOINFO’;

select*fromemployeewherename=’ZYZ’anddepartment=’BIOINFO’;

这两个查询,第二句比第一句会快,由于关于有毗连运算符’||’的查询,Oracle优化器是不

会利用索引的。

7).通配符‘%’当通配符呈现在搜刮词首时,Oracle优化器不利用索引

Select*fromemployeewherenamelike‘%Z%’;

Select*fromemployeewherenamelike‘Z%’;

第二句的实行效力会比第一句快,但查询了局集大概会分歧。

8).应只管制止夹杂范例的表达式

假定字段studentno为VARCHAR2范例

有语句select*fromstudentwherestudentno>123;

则Oracle会有一个隐含的范例转换。隐含的范例转换大概会使Oracle优化器疏忽索引。

这时候应利用显式的范例转换select*fromstudentwherestudentno=to_char(123)。

9).DISTINCT
DISTINCT老是创建一个排序,以是查询速率也慢。对于IT经理来说,令他们喜欢的MySQL的简单性还有另一方面。MySQL可以运行的更快速。某些人或许会说MySQL缺少了一些人们想要的功能。
乐观 该用户已被删除
9#
发表于 2015-3-22 23:55:28 | 只看该作者
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
再见西城 该用户已被删除
8#
发表于 2015-3-16 19:09:46 | 只看该作者
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
简单生活 该用户已被删除
7#
发表于 2015-3-8 23:50:24 | 只看该作者
呵呵,这就是偶想说的
活着的死人 该用户已被删除
6#
发表于 2015-2-27 08:37:57 | 只看该作者
从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。
分手快乐 该用户已被删除
5#
发表于 2015-2-9 15:20:15 | 只看该作者
比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
小魔女 该用户已被删除
地板
发表于 2015-2-4 03:54:08 | 只看该作者
另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);
再现理想 该用户已被删除
板凳
发表于 2015-1-25 21:31:35 | 只看该作者
呵呵,这就是偶想说的
老尸 该用户已被删除
沙发
发表于 2015-1-19 21:47:53 | 只看该作者
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-1 12:36

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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