sql语句查询条件的不同表达方式对查询性能的影响
2014-08-22 02:41
656 查看
今天操作数据库遇到一个问题
目标表RA_AD_DAILY_DATA的数据量大概有5千万左右,其中的BUSINESS_DATE字段为日期类型
我要查询8月20号导入的三条记录,刚开始用这种方式去查:
SELECT * FROM RA_AD_DAILY_DATA WHERE to_char(BUSINESS_DATE,'yyyy-MM-dd')= '2014-08-20' ;
速度非常慢,五分钟左右才能出来结果(在PL/SQL developer中)
同样都是查询2014年8月20日的数据,换一种表达的方式
用 SELECT * FROM RA_AD_DAILY_DATA WHERE BUSINESS_DATE= to_date('2014-08-20','yyyy-MM-dd') ;
只用了0.3秒就查询出来了
第一种方式要把所有的数据库里边的BUSINESS_DATE字段都变成字符串类型然后再进行比较,因为数据库的数据量非常大,所以是不可取的
更重要的原因是把日期转换成字符串之后,在日期之上建立的索引就失效了。。。。
目标表RA_AD_DAILY_DATA的数据量大概有5千万左右,其中的BUSINESS_DATE字段为日期类型
我要查询8月20号导入的三条记录,刚开始用这种方式去查:
SELECT * FROM RA_AD_DAILY_DATA WHERE to_char(BUSINESS_DATE,'yyyy-MM-dd')= '2014-08-20' ;
速度非常慢,五分钟左右才能出来结果(在PL/SQL developer中)
同样都是查询2014年8月20日的数据,换一种表达的方式
用 SELECT * FROM RA_AD_DAILY_DATA WHERE BUSINESS_DATE= to_date('2014-08-20','yyyy-MM-dd') ;
只用了0.3秒就查询出来了
第一种方式要把所有的数据库里边的BUSINESS_DATE字段都变成字符串类型然后再进行比较,因为数据库的数据量非常大,所以是不可取的
更重要的原因是把日期转换成字符串之后,在日期之上建立的索引就失效了。。。。
相关文章推荐
- 以淘宝商品搜索漫谈查询条件的排序对效率的影响(SQL查询性能优化,附调优(性能诊断)DMV)
- 以淘宝商品搜索漫谈查询条件的排序对效率的影响(SQL查询性能优化,附调优(性能诊断)DMV)
- 用一条SQL语句查询一张表得到不同条件的多个结果
- 以淘宝商品搜索漫谈查询条件的排序对效率的影响(SQL查询性能优化,附调优(性能诊断)DMV)
- 在同一个sql语句中写不同条件的count数量,和查询半年的数据
- SQL 查询语句中交叉条件的应用!
- cxGrid补遗之得到含查询条件的sql语句
- asp下实现多条件模糊查询SQL语句
- 利用Attribute特性简化多查询条件拼接sql语句的麻烦
- [导入]SQL 查询语句中交叉条件的应用!
- SQL存储过程事务和优化方法(包括查询方式语句结合)
- [导入]利用Attribute特性简化多查询条件拼接sql语句的麻烦
- 【转贴】不同数据库查询前几条记录的SQL语句
- left join语句中条件不同位置对结果的影响
- SQL存储过程事务和优化方法(包括查询方式语句结合)
- 巧用sql语句以提高数据库查询性能
- 多项查询条件组合下的SQL语句生成
- 对多表联合查询的SQl语句的改进,大幅提高查询性能
- SQL 查询语句中交叉条件的应用!
- ASP.NET偷懒大法三 (利用Attribute特性简化多查询条件拼接sql语句的麻烦)