2

作为数据导入过程的一部分,我们需要“按摩”文本以使其符合某些标准。该过程涉及从远程服务器下载 XML 文件,将数据插入“工作”表进行处理,然后将数据从“工作”表移动到活动表。

举个例子,我们想用直引号字符(')替换斜引号字符(')的实例。

我们也想让这个相当容易扩展。如果我们需要添加新的替换/删除,则不需要重建导入过程项目。

我们团队有两种思想流派:

  1. 在代码中执行按摩。在项目中有一个 XML 文件,其中包含我们要替换/删除的各种字符。每当我们需要添加新的替换/删除时,我们都可以更新文件。

  2. 在 SQL 中执行按摩。当我们将数据从“工作”表传输到“活动”表时,通过一个 SQL 函数运行每个字段,该函数执行我们可以随时编辑的替换/删除。

一种方法比另一种方法“更好”吗?SQL方法会更快吗?在 SQL 中很难/不可能的代码中,我们是否可以更轻松地或完全可以做某些事情?

提前致谢。

4

3 回答 3

1

如果有很多数据,我会考虑使用 SQL,因为一旦您了解了输入数据和更常见的替换或清理功能,这种方法可以被优化以更有效地扩展。如果您在代码中执行按摩,那么您几乎肯定需要对替换采取迭代方法,其中运行时间将随着数据量的增加而增加。

如果要处理的数据量足够小以至于性能不是问题,那么在代码中进行清理可能会给您更大的灵活性。

于 2012-12-07T22:44:43.703 回答
1

这是一个经典的 ETL 要求,我建议您查看 SSIS(如果您使用的是 MS SQL)。您可以使用 SQL 中的函数/存储过程来实现大多数事情,并且您仍然可以为一些您做不到的事情调用 CLR 代码。

于 2012-12-07T22:40:24.977 回答
0

我将在 SQL 中执行按摩,因为这可以通过存储过程来完成。如果您需要进行任何更改,存储过程更新将只需要执行一个脚本。

如果您在代码中处理数据,则需要执行构建和部署才能进行任何更改 - 比仅运行脚本成本高得多!

就更容易或更高效而言 - 这一切都取决于数据和代码质量。

要考虑的另一种选择是使用 XSLT,它是代码和文件转换文件的组合。

于 2012-12-07T22:32:18.633 回答