实体框架更新模型来自带有Oracle错误的数据库ORA-01652:无法扩展临时段

时间:2015-02-05 21:09:11

标签: asp.net-mvc oracle entity-framework

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

我最近在尝试使用edmx文件中的“从数据库更新模型”选项时遇到了问题。我研究并意识到该过程正在利用(吞噬)服务器上所有可用的临时空间。 然后我得到以下错误:“ORA-01652:无法在表空间'Space_Name'中将临时段扩展128”。

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

似乎我的项目中的某些内容可能已更改,导致此进程进入循环。服务器有大约800000个块,每个块是8192,看起来空间很大。

我希望有人可以为事业提供一些方向。

感谢。 YY

2 个答案:

答案 0 :(得分:0)

简单地解释一下,尽管我有大约6GB的处理空间,但我的数据库处理空间已经用尽了。这似乎已经足够了。

在深入研究这个问题之后,我逐渐意识到由于数据库的大小及其复杂性,我正在处理EF性能问题。 我连接的数据库有超过2000个表。虽然我只要求将其中的一小部分添加到我的模型中,但有些因素会对我产生影响并占用所有可用空间。

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

解决方案的建议:

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

  2. 如果在数据库服务器上增加模式的临时空间是一个选项,那么请尝试重新生成。

  3. (适用于我)使用多个EDMX文件生成模型,同时为实体提供相同的命名空间并使用相同的连接。

  4. 一切顺利 - YY。

答案 1 :(得分:0)

这个解决方案对我有用:

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后,一切正常。