Hi All, I was wondering if you might so kind to give me your thoughts on an SQL Server setup and performance issue? I#%92d be very grateful for anything you can contribute. Hopefully it'll be an interesting thread. The situation is this: My company is becoming an XML web service gateway for travel agents to search, book and package travel product from our 50+ suppliers. We have a travel agents website where they login and perform searches. Our middle tier receives their search criteria (dates, destinations, star rating, car hire and flight requirements) and then uses a multi threaded core to connect to all 50+ suppliers simultaneously. The challenge is, that all suppliers use incredibly different APIs and data structures (the travel industry is full of I.T. cowboys and no standards). To unify, compare, filter and sort this mish mash of data our application cleans and restructures this data and inserts this into our â€˜standard#%92 table structure. These inserts vary a lot, when we get a good quality feed we usually do an xml insert into a temp table then select into our table structure. Some times we require a cursor and other times the data is so poor the middle tier has to be extracted using xml DOM, xPath, string pattern matching and then inserted row by row from the middle tier â€“ great! (If it were simply well formed xml I#%92d consider BizTalk) Search wise, we estimate we#%92ll get about 200-2000 searches a minute which equals a lot of threads and a lot of inserts etc. Each search takes anything between 5-120 seconds as we#%92re only as quick as a slowest supplier so I also have to worry about total number of threads used at the middle tier. In SQL config terms parts of the database we want to be persisted (bookings info and searches made), and others are purely there as a search cache that needs to last as long as the users search session (5 mins ish). This brings me to my first specific question: would it be better performance wise to: a) use temp tables for each search (big over head of creating, populating, indexing and filtering the tables 2000 times a minute?) b) use fixed shared cache tables (current config) in a separate database (separate to bookings tables that would be written to disk and backup etc) with minimal logging etc (is it possible to create an in memory database)? SQL version wise we have an old sql 2000 Ent Edition server licence (open licence Open Licence 5) which is valuable as we can use as many cpus as we want without extra license fees. Many thanks in advance, I look forward to hearing from you.