soporaeternus 发表于 2014-1-10 11:18
毕竟tagsort多一次id与obs的匹配过程
类似于把char用format做成num,排序后再format一下
说的不错。有一次同事问过我排序因为内存不足(1百万的记录50个变量)而失败的解决方法。我想用TAGSORT来解决。结果是,好像可以。但是我粗略的估计了以下,时间消耗大概是正常排序(如果可行) 的5到10倍,所以最后放弃了。因为该数据的字符变量比较多,最后尝试挤压(但不是COMPRESS)多余的字符长度,从而降低数据的尺寸。问题得以解决。其实针对字符变量较多的宽大数据而言,这种方法往往有效。比如以下某次分析时的积压的结果报告:数据尺寸降低74%。
但是并非没有例外,有一次挤压之后尺寸增长了0.05%。无法猜测原因。京剧
---(chg_length)-------------------------------------------------------------------
- Data Set : data.Physmedsall_c -> work.Physmedsall_c
- File Size (byte) : 000,088,507,392 -> 000,022,970,368 (decreased by 74.05%)
- Summary of Changes of Character Variables:
Variable Name Length Chg
--------------- ---------------
ATC_CODE 00255 -> 00007
ATC_LEV1 00255 -> 00050
ATC_LEV2 00255 -> 00050
ATC_LEV3 00255 -> 00050
ATC_LEV4 00255 -> 00050
CDOSE 00050 -> 00010
CDSTART NO
CDSTOP NO
CMEDNAME 00200 -> 00040
DDSTART NO
DDSTOP NO
DMSTART 00003 -> 00002
DMSTOP 00003 -> 00002
DOSE 00050 -> 00010
DRUGc NO
DYSTART NO
DYSTOP NO
MEDNAME 00200 -> 00040
NDSUNIT 00010 -> 00002
NFREQ NO
NFREQPER NO
NREASON NO
NROUTE NO
PATIENT 00010 -> 00006
PHYS_BASE 00003 -> 00001
PREFERRED_NAME 00255 -> 00052
PT_ELIG 00003 -> 00001
condition NO
ra_active 00003 -> 00001
route1 NO
---(chg_length)-------------------------------------------------------------------