Entity Framework 使用 Oracle 错误 ORA-01652 从数据库更新模型:无法扩展临时段

Entity Framework Update model From Database with Oracle Error ORA-01652: unable to extend temp segment

我在 Oracle 中使用 EF 5.0。我已经建立了成功的连接,直到现在从数据库更新模型都没有问题。

我最近在尝试使用 edmx 文件中的 "Update Model From Database" 选项时遇到了一个问题。我进行了研究,我意识到该过程正在利用(吃掉)服务器上所有可用的温度 space。 然后我收到以下错误:"ORA-01652: unable to extend temp segment by 128 in tablespace 'Space_Name'"。

不幸的是,当我只是试图从数据库刷新模型时也会发生这种情况。

我的项目中似乎发生了某些变化,导致此过程进入循环。服务器有大约 800000 个块,每个块是 8192,这看起来很多 space.

希望有人能指点一下原因。

谢谢。 YY

简单解释一下,我 运行 无法在数据库上处理 space,即使我有 ~6GB 的工作空间似乎绰绰有余。

在深入研究该问题后,我开始意识到由于数据库的大小及其复杂性,我正在处理 EF 性能问题。 我连接的数据库有 2000 多个表。虽然我只要求将其中的一小部分添加到我的模型中,但仍有一些因素对我不利,并吸收了所有可用的 space.

最大的是数据库大小 - 表和关系。增加模式大小的性能成本几乎是指数级的。因此问题。

解决建议:

  1. 仔细阅读并理解挑战(第 2.1 节):Performance Considerations for Entity Framework

  2. 如果增加数据库服务器上的模式的临时 space 是一个选项,那么这样做并尝试重新生成。

  3. (对我有用)使用多个 EDMX 文件生成您的模型,同时为实体赋予相同的名称space 并使用相同的连接。

祝一切顺利-YY。

这个解决方案对我有用:

https://community.oracle.com/thread/3610894?start=15&tstart=0

这只是说要升级到 ODT+ODAC 12.1.0.2.1

我在 12.1.0.1.2 上遇到了具有大量表(11k+ !!!)的数据库模式的这个问题。 EF5 和 EF6 存在同样的问题。升级ODT+ODAC后一切正常