Re: Table Variable vs Temporary Table
From: Tibor Karaszi (tibor_please.no.email_karaszi_at_hotmail.nomail.com)
Date: 11/24/04
- Next message: Marina S.: "Re: Can't concatenate string"
- Previous message: Louis Davidson: "Re: Fit table on one page if possible?"
- In reply to: Yoshi: "Re: Table Variable vs Temporary Table"
- Next in thread: Louis Davidson: "Re: Table Variable vs Temporary Table"
- Reply: Louis Davidson: "Re: Table Variable vs Temporary Table"
- Messages sorted by: [ date ] [ thread ]
Date: Wed, 24 Nov 2004 16:29:26 +0100
> This is what I understand... table variables are created in memory (RAM).
This is a myth, understandable, however as they are called "variables". But in fact they are handled
internally very much the same way as temp tables (on difference is that there is slightly less
logging to the transaction log for table variables). However, statistics can very well explain the
effect, so using temp tables for lather data sets is generally a good idea as statistics is more and
more important the more data you have...
-- Tibor Karaszi, SQL Server MVP http://www.karaszi.com/sqlserver/default.asp http://www.solidqualitylearning.com/ "Yoshi" <yoshi@home.com> wrote in message news:udkw2Zj0EHA.2012@TK2MSFTNGP15.phx.gbl... > Craig, > > We had a similiar issue where a developer wrote a Stored Procedure using a > temporary "memory" variable. The process took all day. I changed it to a > temporary table and it ran under 3 hours. > > This is what I understand... table variables are created in memory (RAM). > They are supposed to be faster because of this. However, I have found that > if the server has limited RAM and is not a dedicated SQL Server, table > variables can be quite slow. I believe if the table variable is processing > alot of data and the server doesn't have not RAM/memory, then it swaps to > disk. > > My rule is if your dealing with alot of data, then use a temporary table > otherwise use the table variable. > > Y > > > "CB" <craig.bryden@derivco.com> wrote in message > news:unzTDNj0EHA.3808@tk2msftngp13.phx.gbl... > > Hi > > > > I have discoverred a situation where the performance between using a table > > variable and a temporary table is remarkably different. > > We have a query that declares a table variable, then populates it (this is > > quick) and then this is used in a very complicated query where it is being > > referenced many times in sub-queries. The query takes about 180 seconds to > > run. > > > > I changed the query to use a temporary table. There were no logic changes. > > In fact I simply did a search and replace on the table name (i am aliasing > > the table everywhere). Using this method the query runs in 5 seconds. > > > > Can anyone please explain this difference to me? I did expect that the two > > would not be the same but this is ridiculous. > > > > Any help would be appreciated > > > > Thanks > > > > Craig > > > > > > > >
- Next message: Marina S.: "Re: Can't concatenate string"
- Previous message: Louis Davidson: "Re: Fit table on one page if possible?"
- In reply to: Yoshi: "Re: Table Variable vs Temporary Table"
- Next in thread: Louis Davidson: "Re: Table Variable vs Temporary Table"
- Reply: Louis Davidson: "Re: Table Variable vs Temporary Table"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|
Loading