我有一个关于字符串字段定义的问题。
我最好完全限定我的字符串字段,还是允许它们变长?
例如,我正在处理一个数据文件,该文件包含多个字符串数据元素,长度可达1000个字符。
当我将ECL字段定义为STRING1000时,字符串是填充的,很难在ECL中查看。
如果我简单地将ECL字段定义为STRING,则字符串字段将根据字段值的长度进行调整,并且在ECL中更易于读取。
关于我的问题,这两个选项都会影响内存或磁盘中数据集的大小吗?
我应该遵循的最佳做法是什么?
发布于 2022-06-21 14:48:31
这个问题的标准答案是:
如果您知道字符串总是包含n个字符(如美国国家代码或邮政编码字段),或者字符串总是包含1到n个字符,其中n是一个小数字,而实际数据的平均长度接近最大值(就像大多数街道地址字段),那么应该将该字段定义为STRINGn。否则,如果n是一个大数,且数据的平均长度比最大值小,那么可变长度字符串将是最好的。
这两个选项都会影响存储和内存大小:
固定长度的字段总是按其定义的长度存储.变量长度字符串字段存储有一个前导的4字节整数,指示实例后面的实际字符数(就像Pascal字符串),因此,如果定义一个字符串字段总是包含2个字符作为STRING2,则它占用两个字节的存储空间,但将其定义为一个字符串,它将占用6个字符。
https://stackoverflow.com/questions/72702725
复制相似问题