我怀疑是否可以在我的应用程序中使用外部表( Oracle ),而无需在数据库中实际创建真实表。我打算做的是我有一个.txt
(大约25 GB)的文件,我想直接在我的SQL
文件上运行.txt
查询,而无需在实际中创建和加载数据数据库表。所以,我的问题是这是否可能,如果是,那么这样做的缺点和好处是什么。任何帮助都非常感谢。
答案 0 :(得分:3)
这是可能的,但外部表的主要缺点是您无法在此类表上创建任何索引,因此选择数据可能会相当慢。 阅读this。
答案 1 :(得分:2)
您可以应用并行查询,但当然不能创建索引或修改数据,或者在其上收集完整的统计信息(您可以使用DBMS_STATS.GATHER_TABLE_STATS收集一些统计信息,这可能有助于Oracle确定最佳连接策略)
如果文件在逻辑上被分成多个文件,以便你可以告诉1月的数据是在特定的文件中,那么你当然可以拥有多个外部表,可能还有一些想要模拟分区视图的东西,但这会很痛苦
你真的应该加载数据。如果需要考虑性能,那么使用已经在表上定义的索引的直接路径nologging加载 - 如果介质发生故障,您仍然可以重新加载数据,因此日志记录是可选的。