SQL效率 - 哪个更快?

时间:2010-08-03 08:23:29

标签: sql tsql performance

我正在进行批量插入,但在插入实际表之前,我需要进行一些检查。所以目前我正在插入临时表,但我刚刚看到可以声明表。所以我的问题是 - 哪个更快?创建或声明。该表将在其上完成多个SELECTS,并将包含大约200,000条记录。

DECLARE @tbl1 TABLE
(
col1 VARCHAR(10)
)

CREATE TABLE tbl1
(
col1 VARCHAR(10)
)

最后,是否可以更改声明的表?

谢谢你。

1 个答案:

答案 0 :(得分:3)

@tbl表变量存储在内存中,但如果内存压力很高,则为will spill into tempdb

@tbl vars上没有允许DDL,按设计(没有索引,统计信息等)。

在您连接的数据库中创建常规表。

性能方面,这完全取决于SQL Server的配置方式以及为tempdb分配的资源数量。

一般情况下,在处理大量记录时,我会选择#table这样的每个连接临时表,它允许对表变量进行统计和丰富的索引。

有时候有一个永久的临时表是有意义的,但是你必须要特别注意这种解决方案的并发性。

这里唯一可以获得明确答案的方法是在您的环境中进行测量(请注意,生产的配置与开发人员的配置不同,请注意)