안녕하세요.
이번에 외주랑 같이 일을 하게 되어서 테이블 스팩을 봤는데 varchar 과 char이 있더라고요
이것은 sap상에서 어떻게 받아 들여야 하나요?
댓글 3
-
kan145
2009.12.02 17:45
-
Risky
2009.12.02 20:47
http://www.wilsonmar.com/sap_perf.htm
Freespace Not Needed In blocks
In its table creation data defintion language (DDL), SAP uses fixed-length CHAR datatypes rather than VARCHAR (variable length character) datatype. This is perhaps not all database vendors do not support it.
Oracle provides VARCHAR so that it can store data using the actual size of the field
rather than taking up blank space defined to make sure that users don't run out of room on a field.
However, because SAP tables are NOT created with VARCHAR datatypes
SAP produces large archived redo logs. So it is not uncommon for large SAP databases to archive many gigabytes of information every hour.
Also for efficiency, Oracle performs I/O to/from disk in fixed-sized (e.g., 4KB) blocks containing several rows.
Oracle accomodates varying actual VARCHAR lengths by reserving a percent of blocks free for expansion
as users add more bytes to VARCHAR fields
-
MadMax
2009.12.03 18:52
varchar 사용은 특정 DB 에 국한된 것이라 SAP 에서는 수용하지 않습니다. 굿이 sap 내 data type 으로 지정한다면 string 이나 lcha 로 선언이 가능하나 이 type 은 table 내 1개 밖에 사용이 안됩니다. 문제는 255 byte 가 넘는 varchar 가 1개 이상인경우 이를 어떻게 사용하느냐 인데..
경험상 자료 저장시 key 값과 255 이내의 값을 먼저 insert 한후 255 자리가 넘는 field 1 개씩 update 했습니다.(255 넘는 field 다중 사용시 오라클에러발생) 가급적 255 넘지 않도록 설계해 달라 하시기 바랍니다. 참고 하세요...
varchar는 오라클에서 쓰는데 저희는 char로 자릿수만 맞춰주시면 됩니다.
db커넥트로 오라클데이터 뽑아올때, 이렇게 한 경험이 있습니다.