批量操作的性能取决于该操作对数据库服务器来说是内部操作还是外部操作。
INPUT 和 OUTPUT 命令通过 Interactive SQL 客户端执行。如果 Interactive SQL 不在数据库服务器所在的计算机上运行,则正被读取或写入的文件的路径是相对于客户端,而不是相对于服务器的。INPUT 对每个读取的行都作为单独的 INSERT 语句被记录在事务日志中。其结果是,INPUT 比 LOAD TABLE 要慢得多。这还意味着在 INPUT 过程中将触发 ON INSERT 触发器。如果缺少某些列的值,在可为空的列上插入空值,在不可为空的数字列上插入 0(零),在不可为空的非数字列上插入空字符串。当需要考虑兼容性时,OUTPUT 语句十分有用,这是因为它能够以多种文件格式中的任何一种写出 SELECT 语句的结果集。
LOAD TABLE、UNLOAD TABLE 和 UNLOAD 语句对数据库服务器来说是内部语句。到正被写入或读取的文件的路径是相对于数据库服务器的。LOAD TABLE 语句作为单个命令记录在事务日志中。数据文件包含的列数必须和将被装载的表相同。如果 DEFAULTS 选项设置为 OFF(缺省设置),则具有缺省值的列上所插入的缺少值将为空值、零或空字符串,或者如果 DEFAULTS 选项设置为 ON,则将插入缺省值。内部导入和导出只提供对文本和 BCP 格式的访问,但它却是一种较快的方法。
有关详细信息,请参见导入数据的性能提示。
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。