当前位置:首页 > 开发 > IT生活 > 正文

[非技术]工作记录_4

发表于: 2014-07-18   作者:53873039oycg   来源:转载   浏览:
摘要:            接着聊下报表,下面仅为一家之言,你可以当成瞎扯淡,从我写了2,3天的报表sql来看,我发现,(我)在工作中:           (一)报表大部分是是3-4个表关联,2个表关联

           接着聊下报表,下面仅为一家之言,你可以当成瞎扯淡,从我写了2,3天的报表sql来看,我发现,(我)在工作中

          (一)报表大部分是是3-4个表关联,2个表关联起来查询的很少,单表查询的更少,所以,每次看到别人在博客了说报表sql查询**数据花了0.0*秒,我就发现别人大部分是单表查询,再加上索引,查询条件使用索引,速度要多快有多快

 

          而我遇到的情况是,3-4个表一关联,在数据少的情况下,(单表最多6-7万),速度很快,表的记录一多,速度直线下降,什么,加上索引,真实情况是,(1)表不是你建的,人家建表的时候为方便使用已经建了几个索引,你还想建索引,问DBA同不同意

 

         (2)你以为建了索引就很快,你建了索引,你能用得上吗?如果说建了索引就是方便用的,你建了索引,用户知道吗?你以为用户选择条件会知道那个条件是索引?我遇到过的情况是,为了加快查询速度,我在前台限制了用户必须选我的索引条件,结果就是用户不买账,凭什么要限制,我是管理员,我就是要看所有的下属门店,你限制了,我就得一个个点,漏了怎么办?就算不漏,这么多下属门店,什么时候才能点完,一句话,系统不好用,改

  

        (3)用户一般会偷懒,比如报表有很多条件可以选择,你千辛万苦说服人家千万要选择这个条件才能查询得更快,但是结果就是,用户选择的最多的就是只选择一个时间,然后直接点查询,然后,你哭了,索引建了这么多,单凭一个时间来过滤根本快不了多少

 

       (4)最怕的就是那种就算用户选了几个条件也走不了索引的,这种情况就是表索引建太多了,不能再建索引了,而要查询的偏偏要按那个没有索引的字段来过滤,这种情况很头疼

 

       (二)刚说了报表很少有单表查询的,单表查询要什么报表,直接多写几行代码不就得了。再来说说用户,俗话说顾客是上帝,上帝有什么需求你就得做。工作中由于一个组织下面的下属门店太多,直接使用select标签根本放不下,所以使用了那种既可以下拉选择,也可以输入关键字过滤的控件,好像叫combox,名字忘记了。一开始,用户更不不会用,教了很多次才教会用户怎么使用关键字过滤,然后用户又有意见了:(1)选择框太慢,这是因为下属组织太多,(2)输入关键字太麻烦,下属组织几十个,我就要输入几十次,麻烦,遇到这种情况,直接跪了,如张三和李四同属于大BOSS。大BOSS下面有很多小弟。张三管一部分小弟,李四管一部分小弟。小弟之间没有任何关系,这时候没有办法区分那些小弟是归张三管的,那些小弟归李四管。

 

      (三)上面的需求说什么也做不了,那退而求其次,品牌下面的机型不也是可以输入可以选择吗。我要求把常用的几个品牌,品牌下面常用的几个机型放在最前面,方便使用,你以为简单的使用order by 品牌名字 desc 就可以搞定吗?错,品牌之间不是按常用来插入的,说不定最常用的在最后面呢。这时候得这样写了

     

--按品牌热度排序
select * from t_brand order by decode(brand_name,'苹果',6,'三星',5,'天语',4,'海信',3,'华为',2,'小米',1,1/brand_id) desc

  

    或者采用配置表

    

with tmp_t(brand_name,pr) as(
select '苹果',6 from dual union all
select '三星',5 from dual union all
select '天语',4 from dual union all
select '海信',3 from dual union all
select '华为',2 from dual union all
select '小米',1 from dual 
)
select pb.* from t_brand pb,tmp_t t order by decode(pb.brand_name,t.brand_name,t.pr,1/pb.brand_id) desc

   什么?系统框架不支持这种写法,那你用jdbc写吧,不就多写几行代码吗

 

      (四)人家的报表都是0.0*秒就查询到记录,最慢的也就3-4秒,我的报表多少秒超时呢?说出来忏愧,报表超时时间120秒,你没听错,就是120秒,用户提出什么要求,一句话,做,前提是你得多等几分钟,几分钟小事,只要满足我的需求就行。(一般都是一分钟内查询出来的,太慢了的化会定时沉淀数据。),几十秒都是小事,工作中遇到上传Excel解析到数据库的,等上10分钟才出结果很正常。工作中数据校验很少是单表的,都是先查询这个表看是否满足条件,满足继续换一个表校验,一轮下来,校验4,5个表很正常。

 

        

      不写了

      全文完

     

    

      

[非技术]工作记录_4

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
偶然发现chrome浏览器ajax请求返回的信息很正常,直接在地址框输入得到的信息是乱码,原来我的chrom
今天有客户反映说imei检验不通过,我查询了几个网站发现都提示是错误的imei,而是问了下客户在哪查
最近用maven引入了一些jar包,在找某个变量在代码中什么时候用到了,eclipse搜索没有找到,只好搜ja
最近有点小忙,虽然还抽空去SH参加了iOS的Talk。主要做的是修改了个xCode4.x时代就有的项目,主要内
3.确认窗口 这样虽然方便,但有时候会不小心误单击【删除】链接,所以我们使用JavaScript以使单击
本月记录: Bri. 19/04/2015 - 30/04/2015 论文阅读工作: Bjarne Stroustrup&Tim Lindholm, "The F
1、收到要求要用lua环境完成一个基础UI界面,但多次因为资源名字等细节问题浪费事件,_TP_内部编辑
这是效果图; tooltip.css: .ui-slider-tooltip{ /* CSS属性顺序按照 字母首字母 排列*/ background:
从今天开始着重写对工作内容的分析和理解,穿插一些个人感受啥滴!!! 通过对代码的继续阅读,不仅
今天是2011年最后一周了,早起发了个微薄,为了新年奋斗最后一周!为了应付堵车,还是车上看书最好
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号