Andrew Pollack's Blog

Technology, Family, Entertainment, Politics, and Random Noise

Example showing two views that LOOK and ACT the same, but one is 153 times larger

By Andrew Pollack on 10/06/2009 at 01:13 PM EDT

View indexes are the real culprit in performance on so many servers. One reason they're too big, is the use of the wrong @Function. Here's the result of a simple test I tossed together. I did this for my presentation on performance at AdminCamp a week ago. I thought I'd share it here.

Setup:
New database with two forms, both the same other than the form name. Form one has two documents created. Form two has two documents created. What's the difference then? The two documents using form two has have 30,000 response documents on them. The documents created from form one have no responses.

Next, I created four views, with selection formulas as follows:

View #1 -- SELECT form = "TEST1" | @AllDescendants
View #2 -- SELECT form = "TEST1" | @IsResponseDoc
View #3 -- SELECT form = "TEST2" | @AllDescendants
View #4 -- SELECT form = "TEST2" | @IsResponseDoc

In the database itself, views #1 & #2 look identical. Views number 3 and 4 also look identical to each other.

What about the difference in view sizes?

View #2 is 153 Times the Size of #1
and has the EXACT same content

This happens because the @IsResponseDoc formula selects ALL response documents in the database, including those not responses to the actual parents in the view. Those response documents don't display, because their parent isn't in the view -- so they're orphaned -- but they're still in the index. By using @AllDescendants, only responses where the parent is in the view are actually found.



Now imagine the savings if instead of 30,000 documents we were talking about 300,000 documents.


There are  - loading -  comments....

re: Example showing two views that LOOK and ACT the same, but one is 153 times largerBy Ben Langhinrichs on 10/06/2009 at 03:11 PM EDT
Great tip. Out of curiosity, I went to our internal Helpdesk and went to
Manage Views. The two largest views had exactly this problem, and one was
reduced to a fifth of the size when fixed, the other to about a third of the
size. Not as great as 1/153 of the size, but a substantial and measurable
improvement with no loss of function. Outstanding!

Now, I just have to go run Synopsis on every other large db I have. Sigh!
Why go that route?By Andrew Pollack on 10/06/2009 at 03:23 PM EDT
Just write an agent that runs through the db directory, opens all the views in
the databases, looks at the selection formula (all lotuscript) and does a seach
for that formula command -- you could, if you dare, just replace it and save as
the syntax is the same. Of course, that would cause a bunch of views to
rebuild.
re: Example showing two views that LOOK and ACT the same, but one is 153 times largerBy Stephan H. Wissel on 10/06/2009 at 04:27 PM EDT
Steal the code here:
http://www.wissel.net/blog/d6plinks/SHWL-7DDMJV

Of course you could change the background color if you find anyt of these:
@now @today @isResponseDoc

:-) stw
re: Example showing two views that LOOK and ACT the same, but one is 153 times largerBy Dan Soares on 10/07/2009 at 09:22 AM EDT
Andrew... awesome tip !

Dan
re: Example showing two views that LOOK and ACT the same, but one is 153 times largerBy Theo Heselmans on 10/06/2009 at 03:55 PM EDT
Nice tip, I never use either of these @functions because they were confusing.
Now I'll remember !
re: Example showing two views that LOOK and ACT the same, but one is 153 times largerBy Chris Blatnick on 10/06/2009 at 04:29 PM EDT
Nice one, Andrew! These are the tips that *every* Domino developer needs to
know.
re: Example showing two views that LOOK and ACT the same, but one is 153 times largerBy Jerry Carter on 10/07/2009 at 11:26 AM EDT
Impressive space savings!
re: Example showing two views that LOOK and ACT the same, but one is 153 times largerBy Andre Guirard on 02/28/2011 at 03:37 PM EST
This is a good tip, but beware that @IsResponseDoc doesn't behave exactly
identically to @AllDescendants. It's too long to explain here, so I wrote a
blog entry about it, which I'll post when Lotus' servers are back up (at the
moment Littleton's shut down, probably due to a downed wire in the ice storm).


Other Recent Stories...

  1. 05/05/2016Is the growing social-sourced economy the modern back door into socialism?Is the growing social-sourced economy the modern back door into socialism? I read a really insightful post a couple of days ago that suggested the use of social network funding sites like “Go Fund Me” and “Kickstarter” have come about and gained popularity in part because the existing economy in no longer serving its purpose for anyone who isn’t already wealthy. Have the traditional ways to get new ventures funded become closed to all but a few who aren’t already connected to them and so onerous as to make ...... 
  2. 04/20/2016Want to be whitelisted? Here are some sensible rules for web site advertisingAn increasing number of websites are now detecting when users have ad-blocking enabled, and refuse to show content unless you "whitelist" their site (disable your ad-blocking for them). I think that is a fair decision on their part, it's how they pay for the site. However, if you want me (and many others) to white list your site, there are some rules you should follow. If you violate these rules, I won't whitelist your site, I'll just find content elsewhere. 1. The total space taken up by advertisements ...... 
  3. 12/30/2015Fantastic new series on Syfy called “The Expanse” – for people who love traditional science fiction[] “The Expanse” is a new science fiction series being broadcast onthe Syfy channelthis winter. It’s closely based on a series of books by author James S. A. Corey beginning with “Leviathan Wakes”. There are 5 books in the “Expanse” series so far. If you’re a fan of the novels you’ll appreciate how closely the books are followed.TIP: The first five episodes are already available on Syfy.com. If you’re having trouble getting into the characters and plot, use those to get up to speed.The worlds created for ...... 
  4. 10/20/2015My suggestion is to stay away from PayAnywhere(dot)com  
  5. 08/07/2015Here is one for you VMWARE gurus - particularly if you run ESXi without fancy drive arrays 
  6. 08/06/2015The Killer of Orphans (Orphan Documents) 
  7. 06/02/2015Homeopathic Marketing: Traveler on my Android is now calling itself VERSE. Allow me to translate that for the IBM Notes community... 
  8. 03/17/2015A review of British Airways Premium Economy Service – How to destroy customer goodwill all at once 
  9. 02/26/2015There's a bug in how @TextToTime() and @ToTime() process date strings related to international standards and browser settings. 
  10. 01/21/2015Delivering two new presentations at Developer Camp (EntwicklerCamp) 2015 in Germany 
Click here for more articles.....


pen icon Comment Entry
Subject
Your Name
Homepage
*Your Email
* Your email address is required, but not displayed.
 
Your thoughts....
 
Remember Me  

Please wait while your document is saved.