外部表可以用作普通数据库表(Oracle)

时间:2013-10-10 08:50:33

标签: sql database oracle11g

我怀疑是否可以在我的应用程序中使用外部表( Oracle ),而无需在数据库中实际创建真实表。我打算做的是我有一个.txt(大约25 GB)的文件,我想直接在我的SQL文件上运行.txt查询,而无需在实际中创建和加载数据数据库表。所以,我的问题是这是否可能,如果是,那么这样做的缺点和好处是什么。任何帮助都非常感谢。

2 个答案:

答案 0 :(得分:3)

这是可能的,但外部表的主要缺点是您无法在此类表上创建任何索引,因此选择数据可能会相当慢。 阅读this

答案 1 :(得分:2)

您可以应用并行查询,但当然不能创建索引或修改数据,或者在其上收集完整的统计信息(您可以使用DBMS_STATS.GATHER_TABLE_STATS收集一些统计信息,这可能有助于Oracle确定最佳连接策略)

如果文件在逻辑上被分成多个文件,以便你可以告诉1月的数据是在特定的文件中,那么你当然可以拥有多个外部表,可能还有一些想要模拟分区视图的东西,但这会很痛苦

你真的应该加载数据。如果需要考虑性能,那么使用已经在表上定义的索引的直接路径nologging加载 - 如果介质发生故障,您仍然可以重新加载数据,因此日志记录是可选的。