
时间:2015-06-28 00:00 来源:IT猫扑网|http://www.itmop.com/ 作者:网管联盟 我要评论(0)
迷糊的问题:
1.什么样的sql,才算是高效的sql呢?
2.sql为什么不走索引?如何让sql走索引,即改变sql的执行计划
3.索引有哪几种?
4,什时候用索引,什么时候全表扫描
oracle优化器的表统计信息,评估出表的最佳连接顺序,表的连接方法,执行路径;
最后生成执行计划,oracle就按着这个计划来执行sql
1.什么样的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操作很频繁)
关键词标签:sql
相关阅读 sql server系统表损坏的解决方法 SQL Server asp.net 数据提供程序连接池 SqlServer2005对现有数据进行分区具体步骤 一个Access数据库数据传递的实例方法 为导入文件加上时间戳标记的两种方法 SQL Server 2005 在不允许远程连接的情况下的破解
热门文章
sql server系统表损坏的解决方法
SqlServer2005对现有数据进行分区具体步骤
解决SQL Server中Group无法实现的问题
SQL Server 2005降级到2000的正确操作步骤
手把手教你学会SQL Server镜像操作
实战手记:让百万级数据瞬间导入SQL Server
人气排行 配置和注册ODBC数据源-odbc数据源配置教程 如何远程备份(还原)SQL2000数据库 SQL2000数据库远程导入(导出)数据 SQL2000和SQL2005数据库服务端口查看或修改 修改Sql Server唯一约束教程 SQL Server 2005降级到2000的正确操作步骤 sql server系统表损坏的解决方法 浅谈JSP JDBC来连接SQL Server 2005的方法 SQL Server创建表语句介绍 MS-SQL2005服务器登录名、角色、数据库用户、角色、架构的关系 如何使用SQL Server中的客户端配置工具 SQL Server 分布式查询:OLE DB连接(一)
查看所有0条评论>>