Sql 从另一个表插入数百万行

Sql 从另一个表插入数百万行,sql,bigdata,Sql,Bigdata,从select语句向表中插入行并插入到中的更快方法 Insert into PartyMain Select [PermID] ,[IsOptOut] ,[UpdatedOn] ,[FK_DataSource] From PartyMain 对于6百万行,通过select插入数据需要超过4分钟这是我能想到的插入数据的最快方式。不过,您可能可以改进应用程序的工作流程 我想象在一个应用程序中有某种按钮可以启动这个过程。当用户告诉应用程序进行插入时(我做了这样的

从select语句向表中插入行并插入到中的更快方法

Insert into PartyMain
Select [PermID]
      ,[IsOptOut]
      ,[UpdatedOn]
      ,[FK_DataSource]
 From PartyMain

对于6百万行,通过select插入数据需要超过4分钟

这是我能想到的插入数据的最快方式。不过,您可能可以改进应用程序的工作流程

我想象在一个应用程序中有某种按钮可以启动这个过程。当用户告诉应用程序进行插入时(我做了这样的假设),你能有一个每X秒运行一次的进程来进行传输吗?或者每X秒检查一次,如果要传输的行数大于Y,则运行传输…因此,换句话说,不要等到有600万行时再进行传输


编辑-另一个选项可能是。

你有PartyMain的索引吗?如果是,您可能想

  • 删除索引
  • 插入行
  • 重新创建索引
  • 这可能会提高性能


    还有-你确定你在阅读PartyMain并插入PartyMain吗?

    大约4分钟,600万行,这还不错。。。大约每秒20000次。你预计要花多长时间?您的I/O子系统的最大理论吞吐量是多少?即每秒25000次插入,您确定它太慢了吗?这里可能重要的是DB的调优参数,比如它分配数据块、构建索引、负载因子等的方式。我同意Mitch的观点,它听起来并不太糟糕。最好看看这是否真的有必要。你想达到什么目的?谢谢,还不错,但我想知道是否有一些“神奇”的技巧可以提高插入性能。我正在考虑以1B=11+小时的速度插入数十亿条记录的需要,并想看看我能做些什么来缩短加载时间。好主意!我会试试看是否有任何改进。@Marty-太好了!我期待着看看这是否适合你。