知识库 > Tinysoft代码优化 > 2 优化技巧

2.6 数据提取    

  • Toverdata/ ToverDataEx
    提取数据也有一定技巧,这里我们先来看看以下高频数据的提取的例子:

    SetSysParam(PN_Stock(),"SZ000002");
    mtic;
    select ["date"],["close"] from TradeTable DateKey today() to today()+0.999 Of "SZ000002" end;
    t1 := mtoc;
    mtic;
    Toverdata(today())[:,array("time","price")];
    t2 := mtoc;
    return array(t1,t2);

    结果是:array(0.037,0.025),说明Toverdata得到交易明细比TradeTable是要更快的,该函数可以取得某一天的交易明细,数据没有进行处理,比tradetables的数据量少些,也就是说Toverdata得到的就是没有经过处理的导入数据。 toverDataEx是在Toverdata数据的基础上做了个查找。

    SetSysParam(PN_Stock(),"SZ000002");
    mtic;
    select ["close"] from TradeTable DateKey today() to today()+0.999 Of "SZ000002" end;
    t1 := mtoc;
    mtic;
    toverDataEx(tdf_price(),today());
    t2 := mtoc;
    return array(t1,t2);

    结果是:array(0.053,0.006),由此我们知道toverDataEx的效率是比较高的。
    Rd
    经常看到用户取最近实时数据(当前最近的数据,往往用于盘中分析)的方法是取高频数据的最后一条,或通过设置周期,使用close()等函数来得到。这些方法无疑是特别浪费时间的,这里推荐用户使用Rd函数。