我正在尝试优化我正在维护的存储过程,并且想知道是否有人可以让我了解以下选项的性能优势/劣势。对于我的解决方案,我基本上需要对存储在表中的 IMAGE 列中的图像运行转换程序。转换过程位于外部 .EXE 文件中。这是我的选择:
将目标表的结果拉到一个临时表中,然后使用游标遍历表中的每一行并在 IMAGE 列上运行存储过程。存储过程调用.EXE。
创建一个调用 .EXE 文件的 UDF,并运行类似于“从 TargetTable 中选择 UDFNAME(Image_Col)”的 SQL 查询。
我想我正在寻找的是创建光标会增加多少开销的想法,而不是作为一个集合来做?
一些附加信息:
- 在这种情况下,集合的大小是最大值。1000
- 正如下面提到的答案,如果使用 UDF 作为一组完成,这是否意味着外部程序一次打开 1000 次?或者是否有针对此的优化?显然,在多处理器系统上,运行多个进程实例可能不是一件坏事,但 1000 个可能有点多。