RE: DWH varchar2(4000)

  • From: "Kenneth Naim" <kennethnaim@xxxxxxxxx>
  • To: <ricard.martinez@xxxxxxxxx>, <oracle-l@xxxxxxxxxxxxx>
  • Date: Mon, 22 Dec 2014 10:50:10 -0500

I agree with you, it is a waste and it leads to many issues. It is standard 
warehouse practice to increase the size of the column to allow for future grow 
from the source system but it should be reasonable (50-100% larger). A 200 byte 
column from the source system should be created as 300 or 400 bytes not 4000 
bytes, and a 10 byte column no more than 20 bytes.

 

Ken

 

From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On 
Behalf Of Ricard Martinez
Sent: Monday, December 22, 2014 10:02 AM
To: oracle-l@xxxxxxxxxxxxx
Subject: DWH varchar2(4000)

 

Hi list,

 

We have a DWH database on 11.2.0.4. 

The developers/data modelers are creating all the tables with varchar2(4000) as 
standard by default. They don't care if they just insert 10 bytes, 200  or 
nothing. 

When asked about why this standard is in place, the answer is just: "Just in 
case we need it".

 

For my point of view this is not a good practice, as can cause memory waste on 
client applications, as well as data garbage or errors like ORA-01450: maximum 
key length (3218) exceeded.

 

But as i'm not a DWH expert, maybe im missing information that proves that this 
is really a good practice, and not just a laziness way of working.

 

I will be glad to know your opinion, or point me to any doc/test that proves me 
wrong, in order to learn about this.

 

Thanks

Other related posts: