我是SSIS的新手并且有一对问题
我想在同一个数据库中将1,25,000行从一个表传输到另一个表.但是当我使用时Data Flow Task,它需要花费太多时间.我试过使用ADO NET Destination和一个OLE DB Destination但是性能是不可接受的.当我在其中编写等效查询时,Execute SQL Task它提供了可接受的性能.为什么性能会有这么大差异.
INSERT INTO table1 select*from table2
根据第一次观察,我改变了我的包裹.它完全由Execute SQL Tasks直接查询或存储过程组成.如果我只用the来解决我的问题Execute SQL Task,那么为什么人们会像许多文件和文章所说的那样使用SSIS.我看到它可靠,易于维护且速度相对较快.
bil*_*nkc 22
有许多事情可能导致"直接"数据流任务和等效的执行SQL任务的性能.
Execute SQL TaskINSERT INTO 的基于集合的方法形成对比.更新版本的SSIS默认访问目标的"快速"版本的方法.这将更像基于集合的等价物,并产生更好的性能.SSIS包没有任何内在错误,只是Execute SQL Tasks.如果通过运行查询很容易解决问题,那么我将完全放弃SSIS并编写适当的存储过程并使用SQL Agent进行调度并完成.
也许.即使对于像这样的"简单"案例,我仍然喜欢使用SSIS,它可以确保一致的可交付成果.这可能听起来不是很多,但从维护的角度来看,知道所有与数据混淆的内容都包含在这些源控制的SSIS包中可能会很好.我不必记住或训练任务AC"简单"的新人,因此他们是从SQL Agent作业调用的存储过程.任务DJ,或者它是K,甚至比这更简单,所以它只是代理作业中的"在线"查询来加载数据,然后我们有其他东西的包.除Service Broker事物和一些Web服务外,它们也会更新数据库.我得到的越老,我接触的地方越多,我就越能找到一致的,即使是过度杀戮的解决方案交付方法.
性能并非一切,但SSIS团队确实使用SSIS设置了ETL基准,因此它绝对有能力匆忙推送一些数据.
由于这个答案长得很长,我只是将它留作SSIS的优势,直接TSQL上的数据流是原生的,开箱即用
我的钱很难打败那些人.
| 归档时间: |
|
| 查看次数: |
22599 次 |
| 最近记录: |