关于Db.Search效率方面的几点心得

转载 2007年09月28日 13:56:00
今天做一个需要显示出今天、明天、后天的车辆申请情况的应用时,总结了一些使用db.search做查询时效率方面的一些情况。
最开始我是想做一个View包含今天、明天、后天的车辆申请单,视图选择公式为:SELECT form = "XXX" & (@Year(@TextToTime(Applydate))=@Year(@Today) & @Month(@TextToTime(Applydate)=@Month(@Today) & (@Day(@TextToTime(Applydate))=@Day(@Today) | @Day(@TextToTime(Applydate))=@Day(@Tomorrow) | @Day(@TextToTime(Applydate))=@Day(@Adjust(@Tomorrow; 0; 0; 1; 0; 0; 0)))))
这个公式写的实在是巨复杂,导致在很少文档量的情况下刷新这个视图都要30秒以上,用LS去getview时也是非常的慢。

于是我改写了这个视图选择公式为:SELECT form = "XXX" & (@TextToTime(Applydate)=@Today | @TextToTime(Applydate)=@Tomorrow | @TextToTime(Applydate)=@Adjust(@Tomorrow; 0; 0; 1; 0; 0; 0)),改写后的视图刷新稍微快了些,但是web端展现页面时还是会有明显停顿的感觉。

接着我换用db.search直接从数据库中查询,查询公式为: search$ = {Form="XXX" & (@TextToTime(Applydate)=@Today | @TextToTime(Applydate)=@Tomorrow | @TextToTime(Applydate)=@Adjust(@Tomorrow; 0; 0; 1; 0; 0; 0))}这样得到的数据其实跟视图展示的方法速度上是差不多的,还是会有明显的停顿。
 
最后把今天、明天、后天的值算出来转换成String,然后再用db.search来查询,这个时候页面显示速度就很快了,基本上一刷而过。
具体代码是:
Dim date1 As New NotesDateTime(Today())
today1$ = Format$(date1.DateOnly, "YYYY-MM-DD")
Call date1.AdjustDay(1)
tomorrow1$ = Format$(date1.DateOnly, "YYYY-MM-DD")
Call date1.AdjustDay(1)
thirdday$ = Format$(date1.DateOnly, "YYYY-MM-DD")
search$ = {Form="XXX" & (Applydate="}+today1$+{" | Applydate="}+tomorrow1$+{" | Applydate="}+thirdday$+{")}
 
由此总结出以下几点:
1. 在视图选择公式中尽可能选择简单的逻辑来组成条件选择公式。
2. 在视图选择公式中尽可能避免使用@Today,@Tomorrow这样的函数,这样的视图每次刷新时都会重建索引(这类视图好像有个名称的,不过忘了),很影响系统性能的。
3. 在针对要获取明天、后天这样的动态日期的数据时,用LS的Db.search比用视图效率要高,因为LS中可以把明天、后天这样的值先算出来再带入searchformula$中成为一个常量,而视图选择公式就没法这样来做了。 

10万数据量的数据库查询效率比较 纯sql语句 和 view 视图

背景工作快2个月了,日子过的真快啊。时间真的有魔力,曾经觉得那么变态的sql语句,现在竟然觉得那么可爱(才怪)。 从刚开始的十几行的sql就觉得很长,到现在的100多行还感觉长的很正常很有道理,鬼知道...
  • wf824284257
  • wf824284257
  • 2017年08月19日 15:50
  • 1912

关于Db.Search效率方面的几点心得

今天做一个需要显示出今天、明天、后天的车辆申请情况的应用时,总结了一些使用db.search做查询时效率方面的一些情况。最开始我是想做一个View包含今天、明天、后天的车辆申请单,视图选择公式为:SE...
  • ukeychen
  • ukeychen
  • 2007年09月28日 13:56
  • 1954

2014年domino学习小结

lotus domino notes
  • java_jane
  • java_jane
  • 2015年03月19日 23:24
  • 1667

关于ESB实施的几点建议

作者 马国耀 前言 谈及企业服务总线(ESB),在有面向服务的架构(SOA)实施经验的开发者眼中一定不会陌生。这些年,人们一直在谈论它,以至有些人认为“实施SOA一定需要E...
  • zuoys
  • zuoys
  • 2013年07月03日 14:19
  • 598

计算机方面经典书籍<一>

我的另一篇博客共享了一些优秀的书籍的电子版,参见   《计算机编程优秀书籍电子版共享(持续更新……)》 图灵教育官方博客:http://turingbooks.iteye.com/ Window...
  • zhangkaihang
  • zhangkaihang
  • 2012年05月26日 17:04
  • 3925

浅谈工作中的几点小心得

最近,和同事几个人一起在研究Gearman的源代码。看到同事看源码飞速,顿时压力山大。自己自觉不自己的也在跟人家赶速度。但是,总感觉自己没啥收获,后面发现自己好好停下来,用自己的节奏看,反而看懂了不少...
  • zhouhong1026
  • zhouhong1026
  • 2013年12月17日 09:48
  • 1713

Android 开源项目第一篇——个性化控件(View)篇

目前包括: Android 开源项目第一篇——个性化控件(View)篇   包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、Ima...
  • qq_26424001
  • qq_26424001
  • 2015年08月17日 11:00
  • 2466

关于项目方面的几点经典小结

1.两个凡是:凡是不能创造价值的项目就不是好项目,凡是不能讨好客户的项目经理就不是好经理。2.分析客户需求:最终客户及最高客户往往决定项目的成败,因此不能之听中间客户的一面之言哦。3.有好的方法不一定...
  • bookshop
  • bookshop
  • 2005年07月18日 23:36
  • 650

关于信号处理的一些基本概念

传感器类型:根据传感器各构成部分工作方式的不同,可将传感器分成不同的类型;依据接收方式不同,有相对式和绝对式(惯性式)之分;依据机电转换输出量的不同又有发电机型和参数型两种类型。测量电路可输出不同的关...
  • genghaiyang
  • genghaiyang
  • 2008年04月19日 10:31
  • 2598

07深圳浩项隔音窗,隔音知识与方法

 我们居室是否在饱受室外噪音的蹂躏,尤其车辆较多的路段和闹市机场车站,这里介绍一点关于隔音窗方面的知识,供大家分亨。噪音的强度可用声级表示,单位为分贝(dB)。噪音级在35~45分贝是比较安静正常的环...
  • szgyc99
  • szgyc99
  • 2007年11月23日 22:39
  • 413
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于Db.Search效率方面的几点心得
举报原因:
原因补充:

(最多只允许输入30个字)