Lotus Notes视图索引的机制

Lotus Notes视图索引的机制
内容提要:
本文对视图的索引机制进行说明。包括:术语、索引的机制、视图索引的选项说明。
说明
视图索引的机制
第1章概述
本文档主要是对视图的索引机制进行说明。包括:术语、索引的机制、视图索引的选项说明。
文档中用到的术语:
更新(Refresh):按F9可以刷新视图的索引。Refresh读视图的索引并刷新用户的屏幕。它不会重建视图的索引。
重建(Rebuild):按Shift+F9可以重建视图的索引。重建视

大家好,又见面了,我是你们的朋友全栈君。

内容提要:

本文对视图的索引机制进行说明。包括:术语、索引的机制、视图索引的选项说明。

说明

视图索引的机制

第 1 章 概述
本文档主要是对视图的索引机制进行说明。包括:术语、索引的机制、视图索引的选项说明。

文档中用到的术语:
更新(Refresh):按F9可以刷新视图的索引。Refresh读视图的索引并刷新用户的屏幕。它不会重建视图的索引。

重建(Rebuild):按Shift+F9可以重建视图的索引。重建视图索引的操作调用NIF,视图的索引会完全被重新建立。(Refresh只更新未被索引的文档)。

第 2 章 索引介绍
Notes的索引由三部分子系统组成:

  • NIF(Notes Indexing Facility)
  • Update
  • Updall

1. NIF(Notes Indexing Facility)
Notes Indexing Facility简称NIF是Notes用于操作索引的一组函数或功能。大部分的调用是当用户访问服务器时由服务器发起的。
当用户修改、 删除或增加一个文档,视图会立刻反应出文档的变化。
当用户修改视图中的文档或切换到另外一个视图时,NIF发现数据库被修改,因此它会强制更新视图索引。如果视图中有很多文档被更新,视图索引的更新可能需要一段时间。
当视图的左上角出现刷新标志时,说明数据库中包含比展示在屏幕上更新的信息。按F9可以刷新视图。刷新视图将从数据库中读新的视图索引,并刷新用户的屏幕。这个操作同时也会刷新当前的视图。

2. Update
Update是服务器上持续运行的一个任务,一般是通过notes.ini中的ServerTasks加载。例如:
ServerTasks=Replica, Router, Update
Update进程会检查一个视图刷新的请求队列,进行处理。视图刷新的请求一般来源于三个方面:
复制:当数据库复制后,会在队列中增加一项。
路由:当路由任务在数据库中添加一个文档,会在队列中增加一项。
用户:当用户修改数据库并关闭数据库后,会在队列中增加一项。

Update任务会合并同一任务的多个相同请求。Update大约每15分钟会运行一次,更新视图的索引。

注意:如果用户在视图索引更新前访问数据库,用户访问的视图将立即更新。

3. Updall
Updall是Update的一次性运行版本。它遍历所有的数据库,运行完成后停止,而不是从一个队列中读取请求。和Update一样,它也会更新数据库中的视图索引,不同之处在于:第一,它会更新全文索引(Full Text Index);第二,它会清除deletion Stubs.

第 3 章 导致视图索引刷新或重建的因素
导致视图索引重建的因素:
1. 设计修改
修改了视图选择或列的公式。其它外观的调整(例如列宽)不会造成视图索引的重建。
2. 视图崩溃(crash)
3. Shift+F9

导致视图索引更新的因素:
1. 复制
2. 代理
3. 路由
4. 用户的对文档的修改
5. Ctrl+Shift+F9

第 4 章 视图索引何时被刷新
视图索引的刷新可以分为以下三种情况:
1. 不定期刷新:
打开一个数据库视图时,有以下四种刷新频度可选项:

1). “Auto, after first use”视图: 打开时自动更新。如果视图在最近的更新之后有文档的修改,当用户打开数据库时,视图将自动更新。用户必须等待视图刷新完成后才能打开数据库。

说明:当udpate或updall运行于这种类型的视图时,视图自动被更新(up-to-date)。

2). “Automatic”视图:打开时自动更新。 如果视图在最近的更新之后有文档的修改,当用户打开数据库时,视图将自动更新。用户必须等待视图刷新完成后才能打开数据库。

说明:当udpate或updall运行于这种类型的视图时,视图自动被更新(up-to-date)。 如果视图索引不存在,update或updall运行时会自动创建视图索引。

3). “Manual/Background”视图: 用户打开视图时,视图索引不会刷新。视图总是很快就能打开。用户刷新视图的唯一途径就是通过F9刷新。

说明:当udpate或updall运行于这种类型的视图时,视图自动被更新(up-to-date)。

4). “Automatic – at most once every XX hours”视图:如果用户打开视图时,视图超过预定的间隔还没有刷新,视图才被刷新。
如果视图在预定的时间间隔内已经被刷新,视图可以立即打开。
定期的刷新由Chronos任务完成,这种视图可以用于经常有文档修改的大型数据库。当用户打开视图时,他们无需等待视图的刷新,视图可以很快打开(但视图会出现需要刷新的图标)。

说明:当udpate或updall运行于这种类型的视图时,视图自动被更新(up-to-date)。

2. Update任务(当关闭一个视图时刷新)
Updall任务刷新一个数据库中的视图,在服务器上持续运行。它维护了一个工作队列,定期检查队列中是否有需要更新的请求。以下三种原因可以生成更新请求:
– 用户修改了数据库中的文档并关闭数据库
– 数据库复制后
– 邮件路由任务增加文档到数据库

Updall任务会更新数据库中所有曾经打开过的视图,而不管视图的刷新选项是何种类型(对于automatic类型的视图,如果视图索引不存在,将会重建)。通过log_update=2可以观察到数据库中所有被刷新的索引。Update任务是增量更新,因此一般速度很快。

3. 定期的视图刷新(updall)
Updall缺省会在每天早晨2点定时运行,更新所有的数据库。所有的数据库更新完成后,updall任务结束。
Updall任务会更新数据库中所有曾经打开过的视图,而不管视图的刷新选项是何种类型(对于automatic类型的视图,如果视图索引不存在,将会重建)。通过log_update=2可以观察到数据库中所有被刷新的索引。

注意:updall任务也可以通过服务器控制台、服务器远程控制台或操作系统命令运行。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163033.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2013成都邀请赛J称号||HDU4725 The Shortest Path in Nya Graph(spfa+slf最短的优化)

    2013成都邀请赛J称号||HDU4725 The Shortest Path in Nya Graph(spfa+slf最短的优化)

    2022年1月3日
    62
  • SpringFramework、SpringBoot、SpringCloud的区别

    SpringFramework、SpringBoot、SpringCloud的区别文章目录SpringSpringFrameworkSpringMVCSpringBootSpringCloud总结Spring是一个技术生态体系,是集大成者。它包含了SpringFramework、SpringBoot、SpringCloud等(还包括SpringClouddataflow、springdata、springintegration、springbatch、springsecurity、springhateoas),可以参考链接:https://spring.

    2022年6月1日
    31
  • linux重命名文件名_linux 文件重命名

    linux重命名文件名_linux 文件重命名https://blog.csdn.net/weixin_33724570/article/details/91909917https://blog.csdn.net/csdnnews/article/details/87927567https://blog.csdn.net/weixin_34329187/article/details/93004715https://blog…

    2025年10月19日
    4
  • 【Java SE】————标识符及命名规则和关键字

    【Java SE】————标识符及命名规则和关键字Java标识符:             Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,其中,对于变量,常量,函数,语句块也有名字,我们统统称之为Java标识符.。       标识符是用来给类、对象、方法、变量、接口和自定义数据类型命名的。      Java标识符由数字,字母和下划线(_),美元符号($)组成。在Java中是区分大小写的,而且

    2022年7月8日
    25
  • 数据库严格模式_mysql关系型数据库

    数据库严格模式_mysql关系型数据库设置严格模式为当前会话设置严格模式:执行SETsql_mode=’STRICT_TRANS_TABLES’或者SETsql_mode=’STRICT_ALL_TABLES’。全局设置严格模式:执行SETglobalsql_mode=’STRICT_TRANS_TABLES’或者SETglobalsql_mode=’STRICT_ALL_TABLES’。或者在MyS…

    2025年7月10日
    7
  • Java分页类定义和使用「建议收藏」

    Java分页类定义和使用「建议收藏」1 简介在后端与前端进行交互的过程中,需要对后端得到的数据进行分页推送给前端,比如说在某个博客网站上某用户编写了100篇文档,但在页面展示时,可能在每个页面仅仅展示10条数据,如下图所示因此,而且此类需求是一个常见需求,所以可以总结一下这个用法。一般需要实现该情景,需要返回的类似数据如下:{"result":"success&

    2022年10月3日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号