Ali*_*Ali 1 performance oracle oracle-11g-r2 oracle-sql-developer
我使用 Oracle 11.2 作为我的应用程序的数据库。为此,我应该将我的数据(大约 100m 记录)导入到这个数据库中。为此,我使用了 SQL Developer。
不幸的是,在导入过程中,我的系统崩溃并迫使我重新启动系统。系统启动后,与 Oracle 相关的一切都很奇怪:
你能告诉我发生了什么,我该如何解决?
PS:从崩溃时间过去 24 小时后,性能变得更好,但仍远低于崩溃前。
这里可能会发生几件事情并且可能难以确定,但这里有几件事情。
Oracle 崩溃后,它必须执行某种类型的恢复(如在媒体或崩溃恢复中)以使数据库恢复到一致状态。根据您在做什么(以及崩溃时实例中发生的任何其他事情),可能需要保留或回滚事务,这是在实例打开之前完成的,因此您需要等到它完成.
但是,这应该只发生在崩溃后第一次启动数据库时。如果之后每次都发生这种情况,则可能会发生其他事情。如果您的作业需要回滚数据,取决于数据量,这也可能是一个漫长的过程,在您重试操作时可能正在运行,并可能减慢其他操作的速度。
此外,由于数据库已崩溃,您丢失了缓存在 db 块缓冲区中的所有数据以及共享池中的任何内容,因此任何需要访问数据的操作现在可能必须转到磁盘和共享中的任何共享 SQL池可能需要重新解析,依此类推。
在重新尝试操作之前,请检查所有对象(如表、索引等)。如果可以,请进行一些测试 - 在尝试重新加载之前截断要加载的表(并删除任何索引、约束等),因为您不想等待行被删除无论如何,您只是要重新插入或重新插入可能已损坏并减慢插入操作速度的索引。
最后,您可能想尝试使用 SQL Loader 或以较小的增量加载,而不是 SQL Developer,以防某些类型的数据导致崩溃(SQL Loader 会留下无法加载的“坏”数据文件)。
另外,你的硬件设置是什么?您是否在同一台机器上运行 Oracle 和 SQL Developer?如果是这样,由于您正在尝试加载 1 亿行,请尝试拆分负载。如果您正在 PC 上运行 SQL Developer,请确保您的 PC 资源没有耗尽 - 1 亿行对于 Oracle 来说不是什么大问题,但对于您的 PC 来说可能是大问题。