Sql server 2005 在sql2005中插入一百万行需要多长时间?
我想知道理论时间。我知道每台服务器都会有所不同 我正在将1000000个99字节的行从SQL2K数据库拉入同一服务器实例上的SQL2005数据库 源表上有索引。执行计划显示Sql server 2005 在sql2005中插入一百万行需要多长时间?,sql-server-2005,tsql,Sql Server 2005,Tsql,我想知道理论时间。我知道每台服务器都会有所不同 我正在将1000000个99字节的行从SQL2K数据库拉入同一服务器实例上的SQL2005数据库 源表上有索引。执行计划显示 目标表上没有索引 查询大约需要1分钟。这看起来真的很长……考虑到这是一个简单的插入 插入EDW.STAGE.DESTINATION 选择AccountNumber、CardNumber、FiscalYear、SeqNumber、Category、DateSaved、FullLandValue、FullBuildingValu
目标表上没有索引
查询大约需要1分钟。这看起来真的很长……考虑到这是一个简单的插入
插入EDW.STAGE.DESTINATION
选择AccountNumber、CardNumber、FiscalYear、SeqNumber、Category、DateSaved、FullLandValue、FullBuildingValue、TotalValue、ValueException、TaxableTotal、DataPreAssessGeneralId、getdate()、2010,来源为FiscalYear=2010
我打赌有一种方法可以加快速度…但是如何呢?
更新
这实际上是一个动态SQL语句。为了简洁起见,我只显示生成的字符串。我将该语句作为动态vs t-SQL进行测试,执行时间相同。这完全取决于服务器中的硬件, 磁盘、cpu和ram速度都很重要
组件越快,查询越快。这完全取决于服务器中的硬件, 磁盘、cpu和ram速度都很重要
组件越快,查询就越快。这可能需要时间,具体取决于很多事情(索引、使用表的索引视图、外键、硬件等) 您可以尝试使用批量插入,这是针对这类事情而优化的,但是您必须为文件加载数据,但这非常简单,您甚至可以从图形客户端执行
按钮)
此外,还可以在索引中包含正在选择的其他列,以消除执行计划中的键查找。(如果SELECT
语句中的列表示表中的所有列,那么在FiscalYear列上使用聚集索引可能会更好,但这可能会干扰现有主键(如果有主键的话)
或者,您也可以随时增强机箱上的硬件,但这对于优化INSERT
语句来说可能有些过分
编辑:
您还可以使用来移动数据。您可以保存SSIS包,然后从应用程序调用它或在SQL Server上调度它。您提到的是目标表上的索引,而不是源表上的索引。如果源表在FiscalYear列上没有非聚集索引,请添加一个。这将加快内部查询的速度(选择按钮)
此外,还可以在索引中包含正在选择的其他列,以消除执行计划中的键查找。(如果SELECT
语句中的列表示表中的所有列,那么在FiscalYear列上使用聚集索引可能会更好,但这可能会干扰现有主键(如果有主键的话)
或者,您也可以随时增强机箱上的硬件,但这对于优化INSERT
语句来说可能有些过分
编辑:
您还可以使用来移动数据。您可以保存SSIS包,然后从应用程序调用它,或者在SQL Server上调度它。在源表的FiscalYear上是否有聚集索引?
还是非聚集覆盖指数
单选需要多长时间
目标表上有触发器吗
假设正在使用链接服务器,则使用什么安全性
或者是同一实例上的数据库对数据库?如果是,在源数据库添加到实例后,是否更新了源数据库的统计数据源表上的FiscalYear上是否有聚集索引?
还是非聚集覆盖指数
单选需要多长时间
目标表上有触发器吗
假设正在使用链接服务器,则使用什么安全性
或者是同一实例上的数据库对数据库?如果是这样,那么在源数据库添加到实例后,是否更新了该数据库的统计信息?请尝试使用批量插入 尝试使用批量插入 该语句是动态SQL。不确定这是一个选项这里有一个用于批量插入的api,所以它肯定是一个选项。即使没有,也可以为批量插入动态生成命令行参数。该语句是动态SQL。不确定这是一个选项这里有一个用于批量插入的api,所以它肯定是一个选项。即使没有,您也可以为批量插入动态生成命令行参数。我必须测试您的所有问题。Thanks这是一个非聚集索引,涵盖财政年度、类别和日期。select语句为18秒。不是链接的服务器。相同的服务器实例。我不确定最新的统计数据。我必须测试你所有的问题。Thanks这是一个非聚集索引,涵盖财政年度、类别和日期。select语句为18秒。不是链接的服务器。相同的服务器实例。我不确定更新的统计数据,我在IPhone上看到了,但我想你的数据是反向的。我的源代码有索引。目标没有索引。我的理解是,目标上的索引实际上会减慢插入速度。因为在每一行插入过程中修改了索引。@道格·张伯伦-你说的没错,但我错了