PL/SQL ASCII变量的最佳数据类型

PL/SQL ASCII变量的最佳数据类型,sql,oracle,plsql,ascii,Sql,Oracle,Plsql,Ascii,用于存储从PL/SQLascii()函数调用返回的值的最佳数据类型是什么?例如 declare x number; /* number, pls_integer, binary_integer, int, etc...? */ begin x := ascii('a'); end; / 这将发生在许多非常低级的函数中,这些函数最终将在循环中调用,因此需要考虑速度和存储。对于PL/SQLnumber存储,我们有以下数据类型 BINARY_INTEGER BINARY_INTEGER Su

用于存储从
PL/SQL
ascii()
函数调用返回的值的最佳数据类型是什么?例如

declare
x number; /* number, pls_integer, binary_integer, int, etc...? */
begin
    x := ascii('a');
end;
/
这将发生在许多非常低级的函数中,这些函数最终将在循环中调用,因此需要考虑速度和存储。对于
PL/SQL
number存储,我们有以下数据类型

BINARY_INTEGER
BINARY_INTEGER Subtypes... NATURAL, NATURALN, POSITIVE, POSITIVEN, SIGNTYPE

NUMBER
NUMBER Subtypes... DEC, DECIMAL, DOUBLE, PRECISION, FLOAT, INTEGER, INT, NUMERIC, REAL, and SMALLINT

PLS_INTEGER
由于这种说法,我倾向于使用
PLS\u INTEGER

您可以使用PLS_INTEGER数据类型来存储有符号整数。它的 震级范围为-2**31。。2**31. PLS\u整数值需要更少的 存储空间大于数字值。此外,请使用机器进行整数运算 算术,所以它们比数字和二进制整数快 使用库算法的操作。为了提高效率,请使用 PLS_整数适用于其量级范围内的所有计算

您是否同意这是最好的数据类型,还是有什么我没有考虑的?谢谢

PLS\u INTEGER(现在与BINARY\u INTEGER相同)将产生最快的性能(购买新服务器也是如此:)

要真正看到性能的提升,你需要疯狂地循环


这说明了一切:

,除非你还在9i上;最近也出现了这种情况。既然两者都可以,那么就我所知,在这种情况下,
正的
也应该是一样的。为什么不试试呢?我想你做错了。优化的最佳时间是永远不要。第二个最佳优化时间是当您遇到性能问题时。最糟糕的优化时间是没有正在运行的代码时。使用数字。如果它不能工作(足够快),一旦它成为问题,就解决它。在多年的PL/SQL开发中,我从未遇到过因选择数据类型而导致的性能问题。YMMV。分享和享受。我认为你应该考虑状态:返回的值是数据类型号。如果您使用的是其他数据类型,那么将引入隐式数据类型转换。我也同意@BobJarvis关于优化的观点。另请参见例如(代码优化规则)[在实函数中,对同一个字符总共有4个ascii()调用。因此我想更好的问题是,做4个ascii()有什么更快的调用或执行1并将其分配给一个变量,然后该变量将被读取4次?可能是后者。但是,是的,不确定如何证明它,必须进行数百万次循环测试。我想我现在将使用
PLS\u INTEGER
。谢谢!