除了find与pfind函数之外,switch函数也同样需要根据主键值在序表中查找记录,它也会自动利用主键的索引表来处理。如:
|
A |
1 |
=file("D:/files/txt/PersonnelInfo.btx ") |
2 |
=A1.import@b() |
3 |
=A1.import@b() |
4 |
=demo.query("select * from STATES") |
5 |
=now() |
6 |
>A2.(State=A4.select@1(ABBR:A2.State)) |
7 |
=interval@ms(A5,now()) |
8 |
=now() |
9 |
>A3.switch(State,A4:ABBR) |
10 |
=interval@ms(A8,now()) |
A2和A3中都是从集文件PersonnelInfo.btx中读取的人员资料,如下:
A4中是州信息表,如下:
在A6和A9中,将人员资料表中的State字段变换为对应的州信息,不同的是A6中用select@1函数,A9中则使用switch函数。在A7和A10中分别计算出两种方法的耗时如下:
网格中的程序执行完毕后,A2与A3中的值是相同的,如下:
其中State字段已经被转换为了州信息表中对应的记录。
在执行switch前,同样会为序表中对应的字段建立索引表,这里是为A4中州信息表ABBR字段建立索引表,从而提升匹配效率。因此,在生成外键引用的字段时,应该适当选用switch函数。