我有一个ETL流程,其中涉及到一个存储过程,该存储过程大量使用SELECT INTO
语句(最小化记录,因此比生成更少的日志流量更快)。在一个特定的存储过程中进行的一批工作中,几个最昂贵的操作是急切的占位符,它们似乎只是缓冲查询结果,然后将它们复制到所制作的表中。
有关急切的占位符的MSDN文档非常简单。是否有人更深入地了解这些东西是否真的有必要(以及在什么情况下)?我有一些可能有或没有意义的理论,但没有成功地将它们从查询中剔除。
因此,以下是一些可能可分解为具体答案的理论:
- 查询使用一些UDF进行数据转换,例如解析格式化日期。这种数据转换是否需要使用急切的占位符来分配合理的类型(例如varchar长度)到表中,在它构建表之前?
- 作为上述问题的延伸,是否有人对驱动查询中的此操作具有更深入的了解?