|Rushmore Technology - The Heart of The Fox
What Is Rushmore
Rushmore is a data access technique that permits sets of records to be accessed very efficiently. Rushmore query optimization uses indexes efficiently to quickly find a set of records. It is used on queries that involve restrictions on multiple-indexed fields. Rushmore is an exclusive technology for rapidly selecting sets of records from tables. It can reduce query response times from hours or minutes to seconds.
The legendary data access performance in FoxPro stems from its Rushmore query optimization and use of fixed length storage of data. Rushmore creates bit-mapped indexes that allow the engine to very quickly determine whether each row in a table meets a criteria and should therefore be included in a query's result set. Fixed width storage of data ensures that a field will be in the same location from row to row, making that field easier to locate.
Starting with the Rushmore query technology in the Visual FoxPro 2.0 release, FoxPro's primary attraction has been its fast data engine. It doesn't seem to have lost that edge over the years: posted reports on the newsgroups claim the new release of Visual FoxPro is twice as fast as SQL Server, for 50 users or less.
Why This Technology is Named Rushmore
The Fox Software design team came up with the "code-name" Rushmore after spending a night watching the Alfred Hitchcock's movie "North by Northwest".
Understanding Rushmore Technology
Rushmore technology is a data access technique that uses standard Visual FoxPro indexes to optimize access to data. You can use Rushmore with any Visual FoxPro index, including FoxPro 1.x (.idx) indexes, compact (.idx) indexes, and compound (.cdx) indexes.
Both .cdx and compact .idx indexes use a compression technique that produces indexes as small as one-sixth the size of uncompressed old-format indexes. Visual FoxPro can process a compressed index faster because it requires less disk access, and because more of the index can be buffered in memory. Although Rushmore, like other file access techniques, benefits from the smaller size of compact indexes, it also functions very well with indexes in older formats.
When Visual FoxPro processes very large tables on computers with only the minimum amount of RAM, Rushmore might not find sufficient memory to operate. In that case, Visual FoxPro might display a warning message (“Not enough memory for optimization”). Although your program will function correctly and without losing any data, the query will not benefit from Rushmore optimization.
In its simplest form, Rushmore speeds the performance of single-table commands using FOR clauses that specify sets of records in terms of existing indexes. Also, Rushmore can speed the operation of certain commands such as LOCATE and INDEX.
Visual FoxPro SQL commands use Rushmore as a basic tool in multi-table query optimization, using existing indexes and even creating new ad-hoc indexes to speed queries.