根据日期范围查询的SQL性能让你失望? 我有一个比较特别的技巧,可能会帮助你解决这个问题! (SQL开发人员讨厌这个!)*
如果你有一个类,在添加数据时记录时间戳,那么这些数据将与你的IDKEY值保持顺序--也就是说,当且仅当ID1<ID2时,表内所有ID和时间戳值的TimeStamp1<TimeStamp2--那么你可以利用这一知识来提高对时间戳范围的查询性能。 考虑一下下面这个表:
Class User.TSOrder extends %Persistent
{
Property TS as %TimeStamp;
Property Data as %String (MAXLEN=100, MINLEN=200);
Index TSIdx on TS;
Index Extent [type=bitmap, extent];
}
用过去30天内的30,000,000条随机行来填充,每天将得到1,000,000条行。 现在,如果我们想查询某一天的信息,你可以这样写: