i ertintotablename与Select*intotablename比较

文章作者 100test 发表时间 2008:03:31 11:36:24
来源 100Test.Com百考试题网


insert into tablename 时表tablename必须存在
0select * into tablename 时表不能存在

在数据库的故障还原模型为“简单”的时候,0select * into tablename要快,因为在数据库的故障还原模型为“简单”的时候0select * into tablename是不会产生大量日志的


--测试:
--前提条件是数据库的故障还原模型为“简单”

--1、用0select into 生成大数据量的表 你可以在语句运行之前查看你的ldf文件(log)
--然后在运行之后再查看,log增长很小,而建表的速度比较快
if exists (0select * from dbo.sysobjects where id = object_id(N@#[tb_pwd3]@#) and OBJECTPROPERTY(id, N@#IsUserTable@#) = 1)
0drop table [tb_pwd3]
GO
--生成临时表
0select top 256 seq_no=identity(int,0,1) into #t from syscolumns
--生成密码3位字典表内容
0select pwd=char(a.seq_no) char(b.seq_no) char(c.seq_no) into tb_pwd3 from #t a,#t b,#t c
go

0drop table #t

--这两种情况你要分开测试,测试第2种情况的时候你要保证你的磁盘有足够的空间,磁盘的格式要ntfs格式才行


--2、用insert into 生成大数据量的表 你可以在语句运行之前查看你的ldf文件(log)
--然后在运行之后再查看,log增长很快,而建表的速度也慢,要写log呀
if exists (0select * from dbo.sysobjects where id = object_id(N@#[tb_pwd3]@#) and OBJECTPROPERTY(id, N@#IsUserTable@#) = 1)
0drop table [tb_pwd3]
GO
create table tb_pwd3(
pwd char(3)
)
go
--生成临时表
0select top 256 seq_no=identity(int,0,1) into #t from syscolumns
--生成密码3位字典表内容
insert into tb_pwd3 0select pwd=char(a.seq_no) char(b.seq_no) char(c.seq_no) from #t a,#t b,#t c
go

0drop table #t


相关文章


C 中文件的读写实现方法
2007年报关员考试辅导资料出口贸易的基本业务程序
C 数值类型转换方法
统计不固定栏目的工资年报的存储过程
i ertintotablename与Select*intotablename比较
如何有条件的分步删除数据表中的记录
高级复制中如何应对主体站点故障
如何让你的SQL运行得更快
在ORCAL中实现数据库的复制
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛