如何写出高效的sql的一点想法_绿色软件之家

绿色软件之家:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|系统之家|纯净系统

您当前所在位置:首页数据库MSSQL → 如何写出高效的sql的一点想法

如何写出高效的sql的一点想法

时间:2015/6/28来源:绿色软件之家作者:网管联盟我要评论(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

相关阅读

文章评论
发表评论

热门文章 SqlServer2005对现有数据进行分区具体步骤SqlServer2005对现有数据进行分区具体步骤sql server系统表损坏的解决方法sql server系统表损坏的解决方法MS-SQL2005服务器登录名、角色、数据库用户MS-SQL2005服务器登录名、角色、数据库用户Access、SQL Server、Oracle常见应用的区别Access、SQL Server、Oracle常见应用的区别

相关下载

人气排行 如何远程备份(还原)SQL2000数据库SQL2000数据库远程导入(导出)数据配置和注册ODBC数据源-odbc数据源配置教程SQL2000和SQL2005数据库服务端口查看或修改SQL Server 2005降级到2000的正确操作步骤修改Sql Server唯一约束教程浅谈JSP JDBC来连接SQL Server 2005的方法SQL Server创建表语句介绍