Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
More questions about Rushmore optimization
Message
From
25/06/1999 22:33:56
 
 
To
25/06/1999 17:24:11
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Miscellaneous
Thread ID:
00234217
Message ID:
00234282
Views:
22
>Hello Everybody
>
>I try to summarize all what I've read here and there about velocity in Data fetching and rushmore optimization. Some questions came into my mind after reading the interesting thread of last March about Deleted() tag and Rushmore optimization: I've picked some ideas that lead me to the following:
>
>Here is what I believe I have understood:
>
>If my (VFP)data are located on a server, each time I run a query through the LAN, I fetch all the records of all the tables involved in the SQL Select statement. Let's suppose there is only one 3MB table involved in the query: it would take about 3 seconds to fetch the table (on the idea that my ethernet LAN has a 10 KBits/sec speed): it's an eternity!
>
>In the same time, I read that rushmore optimization should be based on a local copy of these tables index files (March thread about Deleted() tags).
>
>If I understand right, I think that, compared to a non optimized query, a fully optimized SQL statement will:
>1- run against the local copy of the index file
>2- and then will only get the selected records from the distant table (or even only the desired fields), reducing both volume of repatriated data, trafic on the LAN and time of the query. This instead of fetching the whole distant table into my client station and processing the SELECTion on the local machine.
>
>In other words, does Rushmore optimization prevent to import the whole tables into the client machines each time a SELECT is run?

No; the concept of Rushmore is that the data file itself isn't read until the result set is needed; it first attempts to use the .CDX file to service elements of the query to restrict the record set needed to solve the Select statement, and only then will pull data from the file to resolve any query elements that cannot be serviced by existing indexes. It builds temporary indexes as needed, and these do not persist beyond the query, so that if the elements of a query can be serviced from existing index tags, only the .CDX file segments and the result set of the select cross the wire.

If you issue queries whose elements cannot be serviced using existing indexes, VFP will be forced to read the table(s) involved and build temporary indexes to service the query. These temporary indexes are non-persistent, so that each query will result in having to re-read segments of the table not held in the local machine's cache. Some query elements are never solvable using an index (for example, substring searches of a character or memo field) which will result in moving large volumes of data across the wire each time the query changes.

>
>Do I understand well?
>
>Selection processing is rarely clearly explained in guides or books, overall these subtleties about the way the data are fetched within or without Rushmore, about what exactly (whole tables? All records? Just some of them? All fields? Just some of them?just index tables?...)is repatriated when one runs a query.
>
>I hope to get useful answers to my questions and I'm sure that lots among us will be interesting in having the answers to these questions that remain vague to many.
EMail: EdR@edrauh.com
"See, the sun is going down..."
"No, the horizon is moving up!"
- Firesign Theater


NT and Win2K FAQ .. cWashington WSH/ADSI/WMI site
MS WSH site ........... WSH FAQ Site
Wrox Press .............. Win32 Scripting Journal
eSolutions Services, LLC

The Surgeon General has determined that prolonged exposure to the Windows Script Host may be addictive to laboratory mice and codemonkeys
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform