将 VARCHAR 或 VARRAY 的最大整数大小设置为明显大于实际需要的值(或将其设置为允许的最大大小)是否有任何缺点(除了允许值或数组变得太大)?
问问题
257 次
2 回答
2
如果您正在谈论数据库表中的列,建议将 VARCHAR2 的最大长度设置为要求允许的最小长度 - 与任何其他约束一样,它有助于使用数据库的这些内置功能来确保仅保存有效数据(例如,如果输入了 1000 个字符的姓氏,我很确定那将是错误的,并且可能会在某处突出显示程序中的错误)。
在 PL/SQL 方面,您可能会感兴趣的是,根据您在 PL/SQL 程序中声明字符串的大小,可能存在内存 (PGA) 使用差异。在内部,有一个 2000 字节的阈值,PL/SQL 引擎在此切换两种不同的内存分配方案。例如以下声明:
DECLARE v VARCHAR2(2000); BEGIN...
将在用户的内存区域中分配 2000 字节,而:
DECLARE v VARCHAR2(2001); BEGIN...
只会在分配值时分配内存,并且只会分配保存分配给它的值所需的内存。
于 2009-07-02T12:53:55.160 回答
0
只是不要使用 varray,使用嵌套表。嵌套表可以包含任意数量的元素。
在表定义中使用 varchar2(4000) 而不是 varchar2(20) 并没有真正的伤害,因为 Oracle 在不需要时不会声明该空间。
于 2009-07-01T18:31:29.007 回答