2009-07-01 56 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