Sql server 使用T-SQL sp执行SQL任务,还是从SSMS执行sp,哪一个性能更好?
我有一个T-sql存储过程,它将数百万条记录插入到sql Server表中。我有两个选项来执行这个存储过程 使用SP执行SSIS执行SQL任务 在SSMS中执行Sp 哪一个执行速度更快,性能更好 通过评论Sql server 使用T-SQL sp执行SQL任务,还是从SSMS执行sp,哪一个性能更好?,sql-server,ssis,Sql Server,Ssis,我有一个T-sql存储过程,它将数百万条记录插入到sql Server表中。我有两个选项来执行这个存储过程 使用SP执行SSIS执行SQL任务 在SSMS中执行Sp 哪一个执行速度更快,性能更好 通过评论 SP将CSV文件加载到SQl 2000数据库中。计划使用SSIS 2005将csv迁移到sql 2000表,因此哪种方法更好?您也可以使用.NET库调用存储过程,从命令行OSQL、SQLCMD等调用它,在sql代理作业中启动它,但调用程序一点也不重要 最终,SQL Server数据库引擎将收到
SP将CSV文件加载到SQl 2000数据库中。计划使用SSIS 2005将csv迁移到sql 2000表,因此哪种方法更好?您也可以使用.NET库调用存储过程,从命令行OSQL、SQLCMD等调用它,在sql代理作业中启动它,但调用程序一点也不重要 最终,SQL Server数据库引擎将收到您希望运行存储过程的请求,对于相同的参数,无论调用方是谁,它都将使用相同的查询计划 如果您正在观察差异,请查看Erland的文章: 所以,您真正的问题似乎是关于加载CSV。无论存储过程是如何启动的,您的存储过程方法仍应提供相同的性能。只要您有一个固定的CSV文件,您就不会试图编写通用的导入文件,通过使用实际的数据流任务,您可能会获得更好的性能。排除故障肯定会更容易
对于一些未经询问的建议,如果您刚刚开始脱离SQLServer2000,请跳过2005,前往SQLServer2008R2。已经发生了2000年。2005年将于2016年到期。从2000年迁移到2008年,许可成本的变化应该不会太大,R2应该不会太大。不过2012年,这将花费一大笔钱。遗憾的是,这是一种美。如果服务器上安装的投标是32位的,而服务器本身是64位的,那么可能会有区别 然后从SSIS包运行将使用32位,这也设置了它可以使用的最大RAM的限制
同时,当您运行与服务器作业相同的包时,它将使用64位可用的所有内存。这对于数据流基本上是正确的,但对于SQL任务可能也会有所不同。因此,对于1,您将在脚本中包含SP代码,还是使用EXEC SP?您想实现什么?SP将CSV文件加载到SQl 2000数据库中。计划使用ssis 2005将CSV迁移到SQl 2000表,那么哪种方法更好?我会使用服务器作业。您可以轻松地检查进度,但无需保持BIDS/SSM的开放性2012只会在处理器超过4核的情况下增加成本。或者,如果您使用的是不再是选项的Enterprise+CAL。