title: Using Oracle temp table for multiple async HTTP calls
body: <p>I have a Silverlight app that makes multiple (often concurrent) asynchronous calls to an Oracle database.  The largest database table stores around 5 million records.  Below is a summary of how the Silverlight app works, followed by my question.</p>
  
  <ol>
  <li><p>The user sets query criteria to select a particular group of records, usually 500 to 5000 records in a group.</p></li>
  <li><p>An asynchronous WCF call is made to the database to retrieve the values in four fields (latitude, longitude, heading, and time offset) over the selected group of records (meaning the call returns anywhere from 2k to 20k floating point numbers.  These values are used to plot points on a map in the browser.</p></li>
  <li><p>From here, the user can choose to graph the values in one or more of an additional twenty or so fields associated with the initial group of records.  The user clicks on a field name, and another async WCF call is made to retrieve the field values.</p></li>
  </ol>
  
  <p><strong>My question is this: does it make sense in this case to store the records selected in step one in a temp table (or materialized view) in order to speed up and simplify the data access in step three?</strong></p>
  
  <p>If so, can anyone give me a hint regarding a good way to maintain the browser-to-temp-table link for a user's session?</p>
  
  <p>Right now, I am just re-querying the 5 million points each time the user selects a new field to graph--which works until the user selects three or more fields at once.  This causes the async calls to timeout before they can return.</p>