【发布时间】:2013-01-26 15:29:16
【问题描述】:
谁能解释以下两个关于使用ORACLE_LOADER 访问驱动程序提高Oracle 外部表性能的语句:
- 固定长度记录的处理速度快于终止的记录 一个字符串。
- 固定长度字段的处理速度比分隔字段快。
用代码解释可能有助于我深入理解这个概念。这是两种语法:
固定字段长度
create table ext_table_fixed (
field_1 char(4),
field_2 char(30)
)
organization external (
type oracle_loader
default directory ext_dir
access parameters (
records delimited by newline
fields (
field_1 position(1: 4) char( 4),
field_2 position(5:30) char(30)
)
)
location ('file')
)
reject limit unlimited;
逗号分隔
create table ext_table_csv (
i Number,
n Varchar2(20),
m Varchar2(20)
)
organization external (
type oracle_loader
default directory ext_dir
access parameters (
records delimited by newline
fields terminated by ','
missing field values are null
)
location ('file.csv')
)
reject limit unlimited;
【问题讨论】:
-
如果您将阅读本文的位置包括在内,将会有所帮助。
-
您想用哪种语言阅读解释您问题的代码?
-
@TildalWave 显然是预言机术语
-
我怀疑您指的是 external tables 的(特定于 Oracle)功能,但问题并不清楚。
-
@CodeLover - 真的不知道,但你不应该对这里或其他任何地方的否决票过于敏感。你问了你的问题,你得到了回应,这才是最重要的。 @Matt Ball 也为您的问题添加了内容。
create table函数本身在这两种情况下都不会变慢,但是访问comma delimitedvariable length表中的记录会,而不是使用fixed field length时。这一切都是关于在检索数据时识别记录位置及其数据长度。再次,请参阅@Matt Ball 答案以获得解释。
标签: oracle oracle11g external-tables