0

検索を行い、データベース内のいくつかのアイテムのステータスの概要を提供するカスタム コントロールを構築しています。20 の異なるステータスがあり、各ステータスの数を決定するために、各ステータスをカウントする NotesDatabase.search を実行しています。

チェックするステータスが 2 つしかない場合はこれで問題ありませんでしたが、現在はすべてのステータスを表示する必要があります。:)

検索にかかる時間が気になるので、できるだけ効率よく検索したい。

私が考慮したこと:

  • ドキュメントは定期的に更新されるため、エージェントに計算を実行させたり、カスタム コントロールに静的な値のルックアップを実行させることはできません。これは、データが古いことを意味します。
  • 結果はログインしたユーザーに依存し、ログイン ID に基づいてカウントを行うため、実際には 1 人ごとに個別のビューを持つことはできません。

誰もがきれいな提案された解決策を持っていますか?

20 回の検索のテストを開始しようとしています。これらの結果でこれを更新しますが、非常に遅いと予想されます。

4

3 に答える 3

1

他のオプション: @DBLookup の代わりに、ビューに入り、ナビゲーターを使用して端から端まで実行します。これはかなり高速で、20 倍の検索よりも高速になるはずです。

もちろん、QuerySave イベントで集計を更新し、それをユーザー固有のメモリ プロファイルに書き込むこともできます。

したがって、QuerySave では、どのユーザーが ApplicationBean にロードされているかを確認し、それらを更新します。ユーザーが新しくログインすると、データベース内の検索がアプリケーション Bean に対して行われます。セッションの有効期限が切れると (セッション リスナー)、ApplicationBean のエントリが消去されます。

于 2012-08-29T03:32:24.133 に答える
0

20 個のステータス ドキュメントを追加し、何らかの条件が満たされたときにこれらのドキュメントの 1 つまたは複数を更新することは可能でしょうか? ドキュメントが更新されるたびに、ステータスを更新するために、それらの条件に一致するようにエージェントが実行されます。

1 日に多くの更新があると、あまり効率的ではありません。

于 2012-08-31T13:35:15.677 に答える
0

20回の検索の代わりに、実際には1回のAjax呼び出しの方が良いかもしれませ. ステータスによって分類され、折りたたまれたビューを作成します。次に、Ajax 呼び出しを行います...statusview?ReadViewEntries&Outputformat=JSON&count=100。これにより、childcount プロパティを持つ 100 個のステータス サマリー エントリが得られます。

それはあなたのために働くでしょうか?

于 2012-08-29T03:26:43.390 に答える