Composer 中的 ThingWorx 模型定义 > 数据存储 > 值流 > 使用 QueryDataTableEntries 和 QueryStreamEntriesWithData 服务
使用 QueryDataTableEntries 和 QueryStreamEntriesWithData 服务
QueryDataTableEntries 服务用于查询数据表并返回与请求参数相匹配的记录信息表。在 ThingWorx 中使用非优化数据查询可能会导致性能问题,甚至造成系统中断。
要了解此服务的工作原理,请参阅以下示例场景。
示例场景
场景 1:在 ThingWorx Platform 中,查询筛选器始终于内存中使用,SQL 语句从不使用此筛选器。
var query = {
"filters": {
"type": "EQ",
"fieldName": "firstname",
"value": "Doe"
}
};
var result = Things["myDataTable"].QueryDataTableEntries({query: query})
以上代码将从数据库中获取整个数据表,然后在内存中使用 ThingWorx Platform 的筛选器。
此场景适用于:QueryDataTableEntriesQueryStreamDataQueryStreamEntriesQueryStreamEntriesWithData
其他场景:使用 QueryDataTableEntriesFindDataTableEntries 值参数的数据表
场景 2:在 ThingWorx Platform 中,QueryDataTableEntries 服务的 maxItems 参数于内存中使用,SQL 语句不使用此参数。
var result = Things["myDataTable"].QueryDataTableEntries({maxItems: 1 });
以上代码将从数据库中获取整个数据表,然后在内存中使用 ThingWorx Platform 的这一限制。
流查询 API 的行为与之不同。详细信息,请参阅下面的场景 3。
场景 3:在 ThingWorx Platform 中,当与查询筛选器结合使用时,流查询服务的 maxItems 参数于内存中使用 (对于数据表而言,该参数始终于内存中使用,详情请参阅场景 2)。
var query = {...};
var result = Things["myStream"].QueryStreamEntriesWithData({maxItems: 1, query: query});)
以上代码将从数据库中获取整个流。
var result = Things["myStream"].QueryStreamEntriesWithData({maxItems: 1, source: "myThing"});
由于未使用查询参数,上述代码仅从数据库中获取了一条记录。
这对您有帮助吗?