关于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$中成为一个常量,而视图选择公式就没法这样来做了。 

写代码提高效率的几点心得

在写代码的过程中经常会由于各种各样的问题导致效率地下,以下是在实际的过程中可以提高效率的几点心得 1、在做一个新的功能之前可以先在脑袋里进行构思,形成一个大致的框架,然后使用草稿纸话出实现该...

Oracle性能调优实践中的几点心得

  • 2012年10月15日 16:16
  • 36KB
  • 下载

关于php必须谨慎处理变量和调用内置函数的几点总结,否则会带来安全方面的灾难

php 安全 变量处理 函数调用

编写VB打印控制程序的几点心得

  • 2009年06月09日 14:58
  • 419KB
  • 下载

.NET分层开发的几点心得

  • 2009年12月03日 16:13
  • 43KB
  • 下载

关于php面向对象继承方面的几点总结

本文主要总结几点php面向对象继承时的几点: //people.class.php class People{ private $name; private $sex; private...

关于css排版的几点心得

  • 2008年12月21日 10:15
  • 2KB
  • 下载

UT-Austin大学在Image search and large-scale retrieval方面的一系列papers

WhittleSearch: Interactive Image Search with Relative Attribute Feedback.  A. Kovashka, D. Parikh, a...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于Db.Search效率方面的几点心得
举报原因:
原因补充:

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