首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

呃…字段替日期型,聚集索引,用between还是>=

2013-07-09 
呃…字段为日期型,聚集索引,用between还是1、字段datecheck为日期型2、字段为聚集索引3、表里有2013-5-1到20

呃…字段为日期型,聚集索引,用between还是>=
1、字段datecheck为日期型
2、字段为聚集索引
3、表里有2013-5-1到2013-5-30的数据
4、比如查询2013-5-10至2013-5-20的数据,使用between and好还是>=好?

select * from 表 where datecheck between 开始日期 and 结束日期
select * from  表 where datecheck>=开始日期 and datecheck<=结束日期

其实数据量有很多很多,想充分利用聚集索引的性能
[解决办法]
你打开执行计划查看cost开销就会发现,这二者并无而致,关键还是执行计划的选取,走索引的路线
所产生的开销,然后hash join或nested join综合产生的cost要少,然后产生的logical reads要少,
这是理解执行计划的key
[解决办法]
bewteen的效率大于>=.
[解决办法]
between and等效>= and <=
在查询计划中,between and 也常被转换成>= and <=
应该是等效的吧
[解决办法]
between ..and .. 跟 >= .. <= 应该是一样的.

假设数据是平均分布的,
查询的2013/5/10至2013/5/20数据占表总数据(2013-5-1到2013-5-30)的33%,
SQL引擎将会选择索引扫描(index scan)的方式.

热点排行