[20190524]浅谈模糊查询.txt

--//一台生产系统遇到监听进程莫名down的情况,3月份曾经遇到的情况,链接:http://blog.itpub.net/267265/viewspace-2638863/
--//当时的分析:内存不足(机器内存4G相对偏小),磁盘IO不足,sql语句没有很好优化,没有使用hugepages。
--//实际上最本质的问题是SQL语句,这套系统已经运行6年以上,里面一些sql采用模糊查询也就是使用like '%姓名%'之类的查询条件.

--//首先提一下监听进程莫名down的问题,该版本10.2.0.4有1个bug,导致监听down掉.要打p6139856_10204_Linux-x86-64.zip补丁.
--//实际上这个bug一般出现在内存不足CPU资源不足的情况下才会激发。

1.关于模糊查询:

--//实际上这套系统上线我就针对这个问题提出自己的建议,开发往往拿用户的需求搪塞,从用户角度讲,确实需要这样的功能.

--//比如像姓名的模糊查询,操作用户难道不知道查询的姓吗?非也,实际上大部分情况下是知道的,最多的情况下就是一些姓不会读
--//或者读不对,还有就是拼音开头是z,c,s,zh,ch,sh,j之类的翻许多页能找到(注:大部分操作人员使用紫光拼音),一些经常打的字自
--//动调整到前面)。所以讲操作人员输入姓不会打的概率很低。完全没有必要千篇一律的查询like '%姓名%'。

--//再比如查询体检编号的问题,也是使用模糊查询,这套系统是体检系统,为了与住院病人编号相互区别。编码时在开头加入'tj'标识.
--//开发为了体验用户操作的方便,也是使用模糊查询,也就是不用输入tj也可以查询。而实际上操作用户根本不领你这个情,查询条件
--//都是like '%tjNNNNN%',我一扫描共享池就能看到这样的情况。

2.我的建议:

--//实际就是给模糊查询设置一点门槛。
--//就是在边上设计一个按钮,选上就是模糊查询,执行条件变成类似就是like '%姓名%'的模糊查询,不选就是like '姓名%'的查询。这
--//样等于给用户增加一点点"难度"。而且随着数据量增加,操作人员会慢慢体会模糊查询的"很慢".

--//还有一种方式就是让操作人员直接输入%作为模糊查询,仅仅在一些地方提示用户如何操作就ok了,这样改动更小,仅仅在于一点点操
--//作人员的培训,让他们知道如何输入查询条件。

3.给开发建议:
--//从我个人角度讲我很少提出无法完成的工作,或者工作量很大的改动,即使我发现一些设计不合理,如果改动过大,我基本不提。
--//就是提也都是浪费时间。

--//有时候我想是不是开发根本不知道还是故意而为之,这样的改动很难吗?像这样的系统即使我改用hugepages,也就是支撑1,2年.
--//说不定根本撑不到那个时间,硬件已经坏了。我见过许多项目如果从性能优化或者可持续运行角度讲.基本上属于豆腐渣工程。
--//更加不能理解的是,用户最终会把这些问题莫名其妙的问题归到网络信息中心... 无语...
--//也许拯救整个系统最好的选择就是购买更好的硬件,来掩盖软件设计开发的缺陷,良好的硬件就是一块遮羞布,如此反复出现。

[20190524]浅谈模糊查询.txt的更多相关文章

  1. 浅谈命令查询职责分离(CQRS)模式

    在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体.在一些业务逻辑简单的系统中可能没有什么问题,但是随着系统逻辑变得复杂,用户增多,这种设计就会出现一些性能 ...

  2. 转:浅谈命令查询职责分离(CQRS)模式

    原文来自于:http://www.cnblogs.com/yangecnu/p/Introduction-CQRS.html 在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查 ...

  3. 浅谈命令查询职责分离(CQRS)模式---转载

    在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体.在一些业务逻辑简单的系统中可能没有什么问题,但是随着系统逻辑变得复杂,用户增多,这种设计就会出现一些性能 ...

  4. 【转】浅谈命令查询职责分离(CQRS)模式

    原文链接:https://www.cnblogs.com/yangecnu/p/Introduction-CQRS.html 在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查 ...

  5. 浅谈Linq查询

    一.Var关键字 在学习Linq查询之前,我们先来学习var关键字的用法,看看微软官方的定义:从Visual C#3.0开始,在方法范围声明的变量可以具有隐式“类型” var.隐式类型的局部变量是强类 ...

  6. 浅谈oracle树状结构层级查询之start with ....connect by prior、level及order by

    浅谈oracle树状结构层级查询 oracle树状结构查询即层次递归查询,是sql语句经常用到的,在实际开发中组织结构实现及其层次化实现功能也是经常遇到的,虽然我是一个java程序开发者,我一直觉得只 ...

  7. oracle树形结构层级查询之start with ....connect by prior、level、order by以及sys_connect_by_path之浅谈

    浅谈oracle树状结构层级查询 oracle树状结构查询即层次递归查询,是sql语句经常用到的,在实际开发中组织结构实现及其层次化实现功能也是经常遇到的,虽然我是一个java程序开发者,我一直觉得只 ...

  8. 浅谈sql 、linq、lambda 查询语句的区别

    浅谈sql .linq.lambda 查询语句的区别 LINQ的书写格式如下: from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量 ...

  9. 浅谈SQL优化入门:1、SQL查询语句的执行顺序

    1.SQL查询语句的执行顺序 (7) SELECT (8) DISTINCT <select_list> (1) FROM <left_table> (3) <join_ ...

随机推荐

  1. iOS常用算法之两个有序数组合并, 要求时间复杂度为0(n)

    思路: 常规思路: 先将一个数组作为合并后的数组, 然后遍历第二个数组的每项元素, 一一对比, 直到找到合适的, 就插入进去; 简单思路: 设置数组C, 对比A和B数组的首项元素, 找到最小的, 就放 ...

  2. 别不信!servlet获取到的参数值,也许完全出乎你的意料!

    先贴出来简单得不能再简单的demo页面效果: 如下是spring mvc的Controller: @RequestMapping("mytest") @Controller pub ...

  3. SQL,case ziduan when ziduan_value then 'result'

    case a.sex when 0 then '女' when 1 then '男' else '其他' end as sex 当a表的性别字段的value为0时将查询的value转换成 '女',当字 ...

  4. mago3DJS 应用

    用于3D多块可视化的开源JavaScript库 生成3D GIS平台,集成和可视化AEC(建筑,工程,建筑)区域和传统的3D空间信息(3D GIS).将AEC和3D GIS集成到Web浏览器中,室内, ...

  5. NXP_RTCESL库

    恩智浦实时控制嵌入式软件库(缩写为RTCESL,以前为恩智浦嵌入式软件库FSLESL)是一组算法,从基础数学运算到高级数学变换以及高级观测器,这些都可以方便地用在复杂的实时控制应用中以及我们的电机控制 ...

  6. The Preliminary Contest for ICPC Asia Shenyang 2019

    传送门 B. Dudu's maze 题意: 是什么鬼东西???我读题可以读半小时QAQ 给出一张无向图,一个人在里面收集糖果,每个点都有一个糖果,特殊点除外.当他第一次进入特殊点时,会随机往一条边走 ...

  7. awk命令使用整理

    1. awk默认以空格分隔, 可摘出指定位置的内容, 通常用法如下( 文件名称为file.txt ): 文件中行内容为:  12:3   a  4:56   b awk  '{print $1}'  ...

  8. 用VB脚本复制文件夹并跳过重复文件

    VB中可通过 scripting.filesystemobject 对象操作文件,其中复制文件或文件夹的函数参数可选覆盖或不覆盖.选择覆盖时,如果目标路径存在同名文件或文件夹,则替换掉已存在的文件.而 ...

  9. 【转】SQL中GROUP BY语句与HAVING语句的使用

    一.GROUP BY GROUP BY语句用来与聚合函数(aggregate functions such as COUNT, SUM, AVG, MIN, or MAX.)联合使用来得到一个或多个列 ...

  10. Redis缓存雪崩,缓存穿透,热点key解决方案和分析

    缓存穿透 缓存系统,按照KEY去查询VALUE,当KEY对应的VALUE一定不存在的时候并对KEY并发请求量很大的时候,就会对后端造成很大的压力. (查询一个必然不存在的数据.比如文章表,查询一个不存 ...