有故障查询代码,由18位阿拉伯数字表示,每一位的值(0到9,表示不同的含义)这样故障代码如放在数据库中我感觉查询会很花时间,要怎样处理比较好

解决方案 »

  1.   

    这样故障代码如放在数据库中我感觉查询会很花时间.为什么会花时间?我感觉?想问题,不要主观臆断哦。故障查询代码在进行查询的时候,你可以优化一下SQL在数据库端,你可以加索引
      

  2.   

    可以放在properties文件中:18位阿拉伯数字=消息java.util.Properties工具类操纵这个文件效率还是非常高的,如果这种应用出现频繁,索性将这个pros放到全局作用域中,效率则更高。
      

  3.   

    18位,每一位不同还是0~9设计这个表的人估计是C/C++弄多了,喜欢& | 逻辑运算汗。
    在该字段上建索引,明显不合适,函数索引跟普通索引不是一回事(至少oracle中在t列上建的索引,用substr等函数,不会利用到这个索引)。要是查某一位,得建18个索引。
    可以考虑数据库得数学运算符/及%(取mod)来取到对应位置得值来做比较或过滤(同样oracle不会利用该字段索引)。比如取低3位,12345为你的那个字段的值
    SQL> select trunc(mod(12375,1000)/100)as a from dual;         A
    ----------
             3
      

  4.   

    比如
    数字位     值      含义
       1        0     主动诊断
                 1     PPPOE
                2   其他
                 3 IE
               4 OE
               5 Outlook 
               6 网络掉线