2009-07-01 57 views
0

是否有任何缺点(除了允许值或数组变得太大)以将VARCHAR或VARRAY的最大整数大小设置为远大于实际需要的值(或设置它到允许的最大尺寸)?VAR类型的大LIMIT的缺点

回答

2

如果您正在讨论数据库表中的列,建议将VARCHAR2的最大长度设置为要求允许的最小长度,就像任何其他约束一样,它有助于使用这些内置功能数据库,以确保只有有效的数据得到保存(例如,如果输入1000个字符的姓氏,我敢肯定,这将是错误的,并可能突出某个程序中的错误)。

在PL/SQL方面,您可能会感兴趣的是,您可能会发现内存(PGA)使用差异取决于您在PL/SQL程序中声明字符串的大小。在内部,在2000字节处有一个阈值,其中PL/SQL引擎在两种不同的存储器分配方案之间切换。例如以下声明:

DECLARE v VARCHAR2(2000); BEGIN... 

将在用户的存储区分配2000个字节,而:

DECLARE v VARCHAR2(2001); BEGIN... 

当值被分配,并且因为需要将仅分配尽可能多的内存将只分配存储器保存分配给它的值。

Oracle forum: "VARCHAR2 space allocation"

0

只是不要使用varray,使用嵌套表。嵌套表格可以包含多少个元素。

在表定义中使用varchar2(4000)而不是varchar2(20)并不会真正伤害,因为Oracle在不需要时不会声明此空间。

+0

我使用BINARY_FLOAT的的VARRAY存储与数据点的数以万计原始波形考虑。如果我们决定购买可以更快读取数据的新型数据采集设备,这个数字很可能会超过十万。 我只是想提前计划。我只是不知道如果我的VARRAY的最大尺寸比我现在需要的大得多,我是否会失去效率。 – Steven 2009-07-01 18:36:01