我怀疑是否可以在我的应用程序中使用外部表( Oracle ),而无需在数据库中实际创建一个真实的表。我打算做的是我有一个.txt
(大约 25 GB)文件,我想SQL
直接在我的文件上运行查询,.txt
而不是在实际的数据库表中创建和加载数据。所以,我的问题是这是否可能,如果是,那么这样做的缺点和好处是什么。非常感谢任何帮助。
问问题
964 次
2 回答
3
这是可能的,但外部表的主要缺点是您无法在此类表上创建任何索引,因此选择数据可能会相当慢。读这个。
于 2013-10-10T09:05:56.977 回答
2
您可以应用并行查询,但当然不能创建索引或修改数据,或收集完整的统计信息(您可以使用 DBMS_STATS.GATHER_TABLE_STATS 收集一些统计信息,这可能有助于 Oracle 确定最佳连接策略)。
如果该文件在逻辑上被拆分为多个文件,这样您就可以知道一月份的数据在一个特定的文件中,那么您当然可以有多个外部表,并且可能有一些花哨的东西来模拟分区视图,但这会很痛苦。
你真的应该加载数据。如果性能是一个问题,那么使用已经在表上定义的索引的直接路径无日志加载——在媒体故障的情况下,您仍然可以重新加载数据,因此日志记录是可选的。
于 2013-10-10T09:17:27.227 回答