使用全局临时表可能会妨碍性能?

时间:2012-09-13 02:01:38

标签: .net performance oracle architecture

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

  1. 将输入数据插入全局临时表中。这些数据来自前端。前端接收一个字符串,并在全局临时表上创建一个DML插入语句,然后使用OracleCommand.ExecuteNonQuery()执行该语句。
  2. 执行预期的程序。此过程使用上一步中填充的全局临时表来生成输出。
  3. 在步骤2中读取全局临时表中的数据。
  4. 这是我第一次看到这样的东西。虽然我还没有看到此代码运行,但我认为此代码可能存在一些性能和可维护性问题。通常我通过编写实现该功能的过程而不依赖于全局临时表来看到这些步骤。

    1. 第一种方法会产生性能问题吗?
    2. 您能参考任何反对第一种方法的自发性来源吗?

1 个答案:

答案 0 :(得分:1)

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

他们只有一些交易功能,consult docs

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