不帅 发表于 2015-1-16 22:43:46

MYSQL编程:oracle数据库优化

事实上,在任何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缺少了一些人们想要的功能。

老尸 发表于 2015-1-19 21:47:53

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

再现理想 发表于 2015-1-25 21:31:35

呵呵,这就是偶想说的

小魔女 发表于 2015-2-4 03:54:08

另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);

分手快乐 发表于 2015-2-9 15:20:15

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

活着的死人 发表于 2015-2-27 08:37:57

从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。

简单生活 发表于 2015-3-8 23:50:24

呵呵,这就是偶想说的

再见西城 发表于 2015-3-16 19:09:46

记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。

乐观 发表于 2015-3-22 23:55:28

财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
页: [1]
查看完整版本: MYSQL编程:oracle数据库优化