atom
atom

Reputation: 191

Efficient manner to perform multiple lookups in one custom control

I am building a custom control to do a lookup and provide a summary of the status of several items in database. There are 20 different statuses, and in order to determine the number for each status, I am doing a NotesDatabase.search to count each status.

This was fine when there were only 2 statuses to check, however the business now want all of them displayed. :)

I'm concerned about the time it will take to do the search, and want to do this in the most efficient manner possible.

Things I have taken into account:

Does anyone have a clean suggested solution?

I am about to start testing the 20 searches and will update this with those results, but am expecting it to be very slow.

A

Upvotes: 0

Views: 119

Answers (3)

D.Bugger
D.Bugger

Reputation: 2359

Would it be possible to add 20 Status documents, and to update one or more of these documents whenever some condition is met? Each time a document is updated, an agent runs to match with those conditions, in order to update the status.

If there are many updates per day, it's not really efficient.

Upvotes: 0

stwissel
stwissel

Reputation: 20384

the other option: instead of @DBLookup you go into the view and just run through it end to end using a navigator. That's pretty fast and should be faster than 20x search.

Of course you could update tallies in the QuerySave event and write it into a user specific in memory profile.

So in your QuerySave you would see what Users are loaded in a ApplicationBean and update those. If a user logs in newly then a search in the database is done into the application bean. When a session expires (Session listener) the entry in the ApplicationBean is cleared out.

Upvotes: 1

stwissel
stwissel

Reputation: 20384

Instead of 20 searches you actually might be better off with ONE Ajax call. Create a view that is categorized by your status and is collapsed. Then make an Ajax call ...statusview?ReadViewEntries&Outputformat=JSON&count=100. This will give you the 100 status summary entries with a childcount property.

Would that work for you?

Upvotes: 0

Related Questions