以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  like效率问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186437)

--  作者:尘埃落定
--  发布时间:2023/5/3 11:23:00
--  like效率问题
请问老师,下面这句代码效率比较低,请问有优化的办法吗?
    Dim xmsum As Double = DataTables("科目核算余额表").Compute("sum(期末余额)", "科目代码 like \'" & kmdm & "*\' and 项目名称 = \'" & lmnm & "\'")

--  作者:有点蓝
--  发布时间:2023/5/3 11:25:00
--  
like的效率一向都不高,优化的方法就是尽量不使用like。如果不存在重复的项目名称,可以去掉科目代码这个条件
--  作者:尘埃落定
--  发布时间:2023/5/3 11:31:00
--  
避不开啊!
--  作者:有点蓝
--  发布时间:2023/5/3 11:35:00
--  
增加一个级码,比如,1、2、3级,直接使用级码判断。要想精确的查询,往往需要增加一些冗余的信息
--  作者:尘埃落定
--  发布时间:2023/5/3 12:00:00
--  
换了一个思路,问题解决了!在“科目核算余额表”中增加了一列“一级科目代码”,然后不用like,直接用等于,原来需要2400多秒才能完成的计算,现在不到7秒就可以完成。