使用时间系列 API 的客户机版本 (tsfeapi) 与时间系列 API 的服务器版本 (tsbeapi) 之间存在很大区别。
更新时间系列时,客户机和服务器接口以不完全相同的方式运行。这是因为 tsbeapi 直接在时间系列上运行,而 tsfeapi 在时间系列的专用副本上运行。这表示数据库中始终反映通过 tsbeapi 进行的更新,而不会反映通过 tsfeapi 进行的更新。要让 tsfeapi 进行的更改变为永久,客户机必须将更新的时间系列写回到数据库。
两个接口之间的另一个区别是时间系列作为参数传递给 mi_exec_prepare_statement() 函数的方式。在服务器上,不需要任何特殊步骤:时间系列可直接传递给此函数。然而,在客户机上,您必须使用 ts_copy 复制时间系列,并将副本作为参数传递给 mi_exec_prepare_statement() 函数。
客户机与服务器 API 之间的效率存在区别。构建为在服务器上运行的函数利用底层页面调度机制。例如,如果函数必须扫描 20 年的数据,那么 tsbeapi 接口任意一次仅在内存中保留一些页面。要让客户机程序进行此操作,整个时间系列必须转到客户机并保留在内存中。根据可用时间系列和内存的大小,这可能导致客户机出现交换问题。但性能取决于许多因素,包括硬件使用和分布的模式。如果数百个用户同时在服务器中执行复杂的分析,那么可能会使服务器超负荷,而如果每个客户机进行其自己的工作,那么可以更好地平衡负载。