作为.NET开发人员,出于什么原因我应该更喜欢SSIS包而不是编写代码?我们有a ton个我目前工作的软件包在生产中,它们都是"写"的噩梦(也许是画?)并保持.每个包看起来就像一碗五颜六色的意大利面,在抽象崩溃的地方混合了C#和VB.NET脚本.要弄清楚每个"Execute SQL Task"或"Foreach Loop"都做些什么,我必须双击这个该死的东西,然后浏览散布在多个选项卡上的文字值和表达式树.

我是开放的,所以我想知道是否有其他good developers人发现SSIS比仅仅编写一些代码更有效率.如果您确实发现SSIS效率更高,请告诉我原因.

推荐答案

我每天都使用SSIS来维护和管理大型数据仓库和多维数据集.我已经100%从事商业智能和数据仓库工作两年了.在此之前,我做过10年的.NET应用程序开发人员.

SSIS的价值在于作为一个工作流引擎,通过有限的转换和条件分支,将数据从一个地点移动到另一个地点.如果您的软件包包含大量脚本,那么您的团队将SSI用于错误的任务,或者对SQL不满意,或者已经接受了宣传.SSIS包很难调试.脚本组件绝对是一场噩梦,只能用于格式化、循环或作为最后手段.

  1. 让你的包保持简单,sql任务和数据流任务.
  2. 尽可能多地在SSIS之外做工作,最好是在SQL中
  3. 将变量保持在一个全局范围内
  4. 将SQL保存在变量或存储过程中,永远不要在线
  5. 将变量值保存在配置存储中,最好是SQL数据库

.net相关问答推荐

.NET restore/build在使用组织包的Github Action工作流中调用时获得401

无法对.NET MAUI类库进行单元测试

EGC / 文本元素上的 .NET String.Split

防止在 .NET 上构建路径中的反斜杠以进行跨平台部署

在 C# 中将字符串转换为 colored颜色

ICommand MVVM 实现

LINQ:确定两个序列是否包含完全相同的元素

如何防止和/或处理 StackOverflowException?

具有透明背景且包含不透明控件的 WPF 窗口

如何在 C# 中创建 Word 文档?

OpenCV的.Net(dotNet)包装器?

.net:System.Web.Mail 与 System.Net.Mail

读取方法的属性值

在 C# 中将匿名类型转换为键/值数组?

在同一解决方案中引用 2 个不同版本的 log4net

您可以使用 Xamarin 开发 Linux 应用程序吗?

CI服务器的比较?

DLL 中有什么以及它是如何工作的?

/langversion 的错误选项6无效;必须是 ISO-1、ISO-2、3、4、5 或默认值

在构建事件命令行中放置注释的正确方法?