0

我目前正在查看使用 Oracle 11g 数据库的 .net 解决方案上的数据访问代码。我发现了一些代码,其功能是使用从数据库中获取的数据填充 .net 集合。为实现此目的,代码在数据访问层使用以下步骤:

  1. 在全局临时表中插入输入数据。这些数据来自前端。前端接收一个字符串并在全局临时表上创建一个 DML 插入语句,然后使用OracleCommand.ExecuteNonQuery().
  2. 执行预期的程序。此过程使用上一步填充的全局临时表来生成输出。
  3. 从步骤 2 中的全局临时表中读取数据。

这是我第一次看到类似的东西。虽然我还没有看到这段代码运行,但我认为这段代码可能存在一些性能和可维护性问题。通常我看到这些步骤是通过编写一个实现该功能的过程而不求助于全局临时表来完成的。

  1. 第一种方法会产生性能问题?
  2. 您能否引用任何反对第一种方法的权威来源?
4

1 回答 1

1

全局临时表的执行速度与普通表相同。它们被写入磁盘、包含块、加载到缓冲区缓存等。

他们只有一些交易功能,请参阅文档

您如何实现应用程序,是您的选择。如果数据很大并且您不能完全保存在内存中,则在处理之前将数据加载到表中可能是一种策略。而且...您可以测试这些场景。

于 2012-09-13T06:24:02.617 回答