Tom, the most frequent cause of the ‘spinning ball’ issue is running out of free RAM, and consequent heavy use of Virtual Memory swap files. Virtual Memory lets a procedure go to completion in the absence of free RAM, but as it involves swapping data back and forth between RAM and the HD - and read/write speeds are orders or magnitude slower on the HD - slowdowns happen.
Christian Grunenberg has noted on the forum that the ‘limits’ of a DEVONthink database are currently about 200,000 documents and about 300,000,000 total words. But I would find a database of that size unsatisfactory in performance. I’m spoiled; I want want most of my searches to produce results in 50 milliseconds or less, and See Also to pop up suggestions almost instantaneously.
DEVONthink’s File > Database Properties panel displays 3 measurements of database size, the file storage size, the number of documents and the total number of words in the database. The single most important measure is usually the total number or words.
In toto, I manage more than 250,000 documents among a number of databases. I do most of my work on laptops that have 4 GB installed RAM.
To satisfy my preference for quick performance I use topically-designed databases that satisfy a particular need or interest. If I use a rule of thumb that the aggregate number of words in my open databases is in the neighborhood of 40,000,000 total words or less, I get fast performance. With only DEVONthink Pro Office open with my set of open databases, I still have almost half the physical RAM free, so there are no page outs and no use of Virtual memory.
I treat my databases as information ‘Lego blocks’ that I can assemble for a given purpose.
If your database has grown very large and takes up most free RAM in operation, you might consider splitting it into two or more smaller databases.
But I usually have several other applications open, as well, and they use RAM resources also. Apple’s memory management is pretty good, but over time RAM will tend to get ‘clogged’ by no longer used data that’s reducing the amount of free RAM. Safari tends to be a memory hog, taking up more and more RAM as time goes on. If I’ve been doing a lot of browsing while collecting data into my databases, it will eventually fill up all my available free RAM. Quitting Safari often doesn’t release all the RAM it had been using. (By contrast, DEVONagent Pro doesn’t hog RAM.)
I’ve been using an OS X maintenance utility, C ocktail, for a long time. The current release includes a feature that I find very useful to keep my Macs running at full speed, a feature to purge inactive RAM and optimize free RAM. As the utility places a little icon in the menubar to indicate visually the amount of remaining free RAM, I can avoid page outs (and use of Virtual Memory swap files) by temporarily quitting Safari or another app that’s using lots of RAM, and purging inactive RAM. Presto! With my normal set of open databases in DT Pro Office, I’ve still got 1,500 to 2,000 MB free RAM, and I never see a spinnig ball.
My favorite laptop these days is a 13" MacBook Air with i7 CPU and 256 GB SSD. My DT Pro Office databases load very quickly from the solid state drive. True, the faster read/write speeds of the SSD would somewhat mitigate slowdowns when Virtual Memory swap files are being used, but that would also involve a lot of ‘hammering’ of the SSD when swap files are in heavy use, something I want to avoid.