为什么有的公司要求DBA禁止使用between?


我们BI部门会经常查流量的数据,一天的数据量比较大,如果跨天求pv、uv,个人觉得between startDate and endDate 这样的方式应该比较直观,但是部门leader说自己在做oracle DBA的时候禁止使用between,说是引起的问题很多。

一个同事的运行的Hive脚本有这么一段: date between '2016-08-31' and '2016-08-31'
导致map数飙升到2000+,被运维警告。

不知道大家是怎么看的?


Hive的情况不了解,在Oracle中between在语义上等同于>=和<=两个条件,个人感觉应该没什么大的问题,大部分情况不会影响查询优化器生成执行计划。

Leader说的禁止使用Between的情况,最好能够比较好的例子说明,关于oracle性能方面的myth太多了,大部分源于对执行计划的原理不清楚造成的。如果起始日期和截止日期相等,转化为等值条件在写法上、执行优化方面会更好一些。



相关阅读:
Laravel 如何获取路由名称?
前后端分离中碰到跨域问题大家是怎么解决的?
阮一峰老师《ECMAScript 6入门》第一节中的疑问
定时器中this为什么会指向window
backbone排序问题,视图实时排序
vuex中的state值,在工具类模块中怎么获取?
怎样用yii2.0配合mongodb做后台的权限控制系统???
类方法里实现网络请求类单例的方法有些情况返回不了数据
mysql如何合并两张结构相同的数据表?
easyui1.5 datagrid中分页显示不正常,求教各位
API Gateway 或者 OpenAPI设计思想?
vue.js实现组件间的上移下移
新人小白问题之 什么时候需要用到form标签?什么时候不必用,用不用有什么区别?
Git出错 Fatal:multiple Stage Entriesfor Merged File
前端怎么实现关闭页面或浏览器后,重新打开页面或重启浏览器,可以继续原来的操作,比如重新打开后不需要重新调用后台的服务
flask 中的 template_rendered 函数
react map函数中点击事件失效
怎么检查一个checkbox是否存在?
为什么onmouseenter函数里面的i值为13?
iOS NSPredicate 过滤排序



快速导航

Copyright © 2016 phpStudy |