怎样写出精炼高效的sql语句

 我来答
简单又缤纷的才俊1
2012-11-05 · TA获得超过169个赞
知道答主
回答量:147
采纳率:80%
帮助的人:74万
展开全部
精炼又高效率的Sql语句对一个大型网站或大型数据库来讲是很有用的,Sql的冗余造成系统与资源的占用和时间的增加。
1.什么样的sql,才算是高效的sql呢?2.sql为什么不走索引?如何让sql走索引,即改变sql的执行计划3.索引有哪几种?4,什时候用索引,什么时候全表扫描oracle优化器的表统计信息,评估出表的最佳连接顺序,表的连接方法,执行路径;最后生成执行计划,oracle就按着这个计划来执行sql1.什么样的sql是高效sql?答:最本质答案就是执行时间最短,怎么才能最短了,就是用最少的资源把事办了,不做无用功;即使sql的io最少,那怎么样才才能最少呢?就是尽量用索引,不要全表扫描;在多表关联的时候,开发人选正确的表连接方法,执行路径等2.sql为何不走索引A.类型不匹配B。条件列包含函数但没有创建相应的函数索引C。复合索引中的前导列没有被做为查询条件D。CBO的模式下,选择的行数比例较大,优化器选择全表扫描E。CBO的模式下,表很久没有分析,优化器选择了全表扫描3.索引种类及创建方法A。B*索引create index indexname on tablename(columnname);B.反向索引create index indexname on tablename(columnname) reverse;C.降序索引create index indexname on tablename(columnname desc);D.位图索引create bitmap index indexname on tablename(columnname);E。函数索引create index indexname on tablename(functionname(columnname));4,什时候用索引,什么时候用全表扫描?答:要使用索引时,首先要弄清一些基本信息表有多少行?查询返回多少行?表的哪些列上有索引?都是什么样的索引?在有多个条件列时,应该选择什么样的索引?A.当查询的记录数,在有序表中小于40%的时候,最好用索引;否则用全表扫描B.当查询的记录数,在有无序表中小于7%的时候,最好用索引;否则用全表扫描C.表的锁片较多时(这个表dml操作很频繁)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式