sql语句查询条件的不同表达方式对查询性能的影响

今天操作数据库遇到一个问题

目标表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语句查询条件的不同表达方式对查询性能的影响

时间: 2024-10-25 18:08:22

sql语句查询条件的不同表达方式对查询性能的影响的相关文章

SQL Server中多表连接时驱动顺序对性能的影响

原文:SQL Server中多表连接时驱动顺序对性能的影响 本文出处:http://www.cnblogs.com/wy123/p/7106861.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他) 最近在SQL Server中多次遇到开发人员提交过来的有性能问题的SQL,其表面的原因是表之间去的驱动顺序造成的性能问题,具体表现在(已排除其他因素影响的情况下),存储过程偶发性的执行时间超出预期,甚至在调试的时候

sql语句中3表删除和3表查询

好久没来咱们博客园了,主要近期在忙一些七七八八的杂事,包括打羽毛球比赛的准备和自己在学jqgrid的迷茫.先不扯这些没用的了,希望大家能记得小弟,小弟在此谢过大家了. 回归正题:(以下的sql是本人在用yii框架开发项目时写的,希望对大家有些帮助) 首先是多表查询,为了简化我先贴出自己的代码,在贴出解释代码. select a.*, b.*, c.* from rlzy_payfeeinf a inner join rlzy_personinfo b on a.bid=b.bid join rl

SQL语句中条件里需要有单引号问题

经常写SQL语句条件中会有两个单引号,但是本身又被单引号包括, 如select * from control where column=' '  如果column中的条件为exec usp_Data '{0}' 那这个就不好办了,就这样拿进去sql语句就报语法错误. 那么解决的方法就是在column的条件中用两个单引号来表示一个单引号... 这样问题就解决了 如下: select * from control where column=' exec usp_Data ''{0}'''

FreeSql (二十七)将已写好的 SQL 语句,与实体类映射进行二次查询

有时候,我们希望将写好的 sql 语句,甚至是存储过程进行查询,虽然效率不高(有时候并不是效率至上). 巧用AsTable var sql = fsql.Select<UserX>() .AsTable((a, b) => "(select * from user where clicks > 10)") .Page(1, 10).ToList(); 本身 AsTable 是用来进行分表分库的,后续我们会接着讲. 友情提醒:当开启了自动同步结构功能,UserX

sql语句多条件简单写法

比如用户可以按姓名跟添加时间任意情况搜索 拼接sql语句可以这样写 string sql1 = @"SELECT dbo.RenYuan.Name, dbo.BiYeLunWenKeTi.KeTiMing, dbo.BiYeLunWenKeTi.KeTiNeiRong, dbo.BiYeLunWenKeTi.KeTiId, dbo.BiYeLunWenKeTi.UserId, dbo.BiYeLunWenKeTi.BianJiShiJian, dbo.BiYeLunWenKeTi.Remark,

mysql优化之sql执行流程及表结构(schema)对性能的影响

part 1 sql执行流程(如下图所示) 1.客户端发送一条查询到服务器. 2.服务器通过权限检查后,先检查查询缓存,命中则直接返回结果.否则进入3. 3.服务器进行sql解析,预处理,再由优化器根据该sql涉及到的数据表的信息计算,生成执行计划. 4..MySQL根据优化器生成的执行计划,调用存储引擎的API来执行查询:5..将结果返回给客户端. 总结:SQL执行的最大瓶颈在于磁盘的IO,即数据的读取:不同SQL的写法,会造成不同的执行计划的执行,而不同的执行计划在IO的上面临完全不一样的数

SQL语句 常用条件判断

条件判断写法: 对每天记录执行操作时,判断所限制的条件-----> 操作符:                     =      <>(不匹配检查)       !=     <       >       <=     >= 例:不是由供应商1003生产的产品           Where vend_id<>1003 AND 两个 同时满足 OR  两个条件中有一个满足即可 注意:And 和 or同时使用时应注意其优先级 and>or 例如

jqgrid postData setGridParam 调用多次时查询条件累加的问题--详情页查询导致的无法在新的页面中查询

$("#btn_search").click(function () { url = "/AMEvents/GetGridJson?evtype=1"; var $gridList = $("#gridList"); var posData = $("#searchform").formSerialize() $gridList.setGridParam( { url: url, postData: posData } ).t

如何查找MySQL中查询慢的SQL语句

本文导读:如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启动时,mysqld 会写一个包含所有执行时间超过long_query_time 秒的SQL语句的日志文件,通过查看这个日志文件定位效率较低的SQL .下面介绍MySQL中如何查询慢的SQL语句 一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_