欢迎光临柠檬居IT技术网,柠檬居是我在工作中经历的点点滴滴的记录体;通过它,我回忆过往遇到的难题;通过它,我了解我能力增长的过程!柠檬居在帮助我自己的同时也希望能够帮助各位来找寻问题解答的看客们!也欢迎技术上的交流,我的EMAIL: luckcf$Gmail.com 【.replace('$','@')】


Tag: 搜索预览模式: 普通 | 列表

数据库搜索优化简论

  很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解。比如:
  
  select * from table1 where name=''zhangsan'' and tID > 10000
  和执行:
  
  select * from table1 where tID > 10000 and name=''zhangsan''
  
  一些人不知道以上两条语句的执行效率是否一样,因为如果简单的从语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那么后一句仅仅从表的10000条以后的记录中查找就行了;而前一句则要先从全表中查找看有几个name=''zhangsan''的,而后再根据限制条件条件tID>10000来提出查询结果。
  
  事实上,这样的担心是不必要的。SQL SERVER中有一个“查询分析优化器”,它可以计算出where子句中的搜索条件并确定哪个索引能缩小表扫描的搜索空间,也就是说,它能实现自动优化。
  
  虽然查询优化器可以根据where子句自动的进行查询优化,但大家仍然有必要了解一下“查询优化器”的工作原理,如非这样,有时查询优化器就会不按照您的本意进行快速查询。
  
  在查询分析阶段,查询优化器查看查询的每个阶段并决定限制需要扫描的数据量是否有用。如果一个阶段可以被用作一个扫描参数(SARG),那么就称之为可优化的,并且可以利用索引快速获得所需数据。

查看更多...

Tags: 搜索 优化

分类:DataBase | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2283