我使用SELECT INTO
语句创建我的SQL语句结果。
SELECT fields
INTO [newtable]
FROM table1, table2, table3, table4
[where clause to filter records from four tables]
我想知道如果有数百万条记录要插入到新表中,这句话将如何影响性能。在这种情况下是否会出现OutOfMemory
错误?
我的环境是SQL Server 2008 R2。
答案 0 :(得分:0)
在传输数据时,它不会将数据存储在内存中,因此不会出现内存问题。 当您创建数百万行时,日志记录和IO性能将受到影响。如果您的选择语句中的连接很复杂,那么性能会降级(如果单独选择需要很长时间,那么插入将更长)
答案 1 :(得分:0)
SELECT INTO通常用于生成临时表或复制另一个表(数据和/或结构)。
SELECT INTO通常是更好的表现,因为它是minimally logged
。
答案 2 :(得分:0)
使用下表中的必要字段创建temp table
例如:
create table #temp_data
(
empid int,
emp_name varchar(50),
strt_date datetime,
emp_addrss varchar(50),
emp_sal numeric
)
接下来,将四个表中的日期插入到以下列中,并满足必要的条件。
insert #temp_data values
(
001,'raj','2013-04-03','hyderabad',25000
)
Update
update #temp_data
(
empid,emp_name,strt_date,emp_address,emp_sal
)
现在根据您的要求使用where clause
和所有
select
empid,emp_name,strt_date,emp_addrss,emp_sal
from #temp_data
where empid = 001
empid emp_name strt_date emp_addrss emp_sal
1 raj 2013-04-03 00:00:00.000 hyderabad 25000
答案 3 :(得分:0)
在这种情况下会出现OutOfMemory错误吗?