sql – 使用显式create table语句和select into创建一个表
发布时间:2020-12-12 16:52:05 所属栏目:MsSql教程 来源:网络整理
导读:使用显式创建表语句和加载数据与选择之间是否存在任何性能差异.此示例仅显示2列,但问题是面向使用非常大的表.下面的示例也使用临时表,虽然我想知道使用常规表的效果.我认为他们将是一样的,不管表类型. 临时表情景: --- Explicitly creating temp table first
使用显式创建表语句和加载数据与选择之间是否存在任何性能差异.此示例仅显示2列,但问题是面向使用非常大的表.下面的示例也使用临时表,虽然我想知道使用常规表的效果.我认为他们将是一样的,不管表类型.
临时表情景: --- Explicitly creating temp table first and then loading. create table #test1 (id int,name varchar(100)) insert into #test1 (id,name) select id,name from #bigTable --- Creating temp table by selecting into. select id,name into #test2 from #bigTable 或普通表: --- Explicitly creating table first and then loading. create table test1 (id int,name varchar(100)) insert into test1 (id,name from #bigTable --- Creating table by selecting into. select id,name into test2 from bigTable 大家对此有何想法?我认为明确创建表和加载必须具有比选择为select的更好的性能,以便在语句中评估表达式才能创建一个表. 我们的组织通常将临时表格明确地作为标准做法,我们想知道一切都认为是最佳实践. http://msdn.microsoft.com/en-us/library/ms188029.aspx 解决方法在插入数据之前,CREATE TABLE可以更好地控制表的定义,例如NOT NULL,约束等,您不能使用SELECT INTO执行的操作.SELECT INTO是一种最低限度的记录操作,但在某些情况下,INSERT..SELECT也可以进行最低限度的记录. 简而言之,如果你不在乎约束等(例如你想快速创建表的副本),SELECT..INTO的优势IMHO是一个较短的代码.否则,您应该使用另一种方式,您仍然可以将其最小化记录. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |