Definición del modelo de ThingWorx en Composer > Almacenamiento de datos > Flujos de valor > Uso del servicio QueryDataTableEntries y QueryStreamEntriesWithData
Uso del servicio QueryDataTableEntries y QueryStreamEntriesWithData
El servicio QueryDataTableEntries permite consultar las tablas de datos y devolver una infotable de registros que coinciden con los parámetros de la solicitud. El uso de consultas de datos no optimizadas en ThingWorx puede provocar problemas de rendimiento e incluso interrupciones en el sistema.
Para comprender cómo funciona este servicio, consulte los siguientes escenarios de ejemplo.
Escenarios de ejemplo
Escenario 1: el filtro de consulta siempre se aplica en memoria en ThingWorx Platform, nunca lo utiliza la sentencia SQL.
var query = {
"filters": {
"type": "EQ",
"fieldName": "firstname",
"value": "Doe"
}
};
var result = Things["myDataTable"].QueryDataTableEntries({query: query})
El código anterior extrae toda la tabla de datos de la base de datos, el filtro se aplica en memoria en ThingWorx Platform.
Este escenario se aplica a: QueryDataTableEntries, QueryStreamData, QueryStreamEntries, QueryStreamEntriesWithData
Escenarios alternativos: tabla de datos con los parámetros de valores en FindDataTableEntries y QueryDataTableEntries
Escenario 2: el parámetro maxItems del servicio QueryDataTableEntries se aplica en memoria en ThingWorx Platform, no lo utiliza la instrucción SQL
var result = Things["myDataTable"].QueryDataTableEntries({maxItems: 1 });
El código anterior extrae toda la tabla de datos de la base de datos, el límite se aplica en memoria en ThingWorx Platform.
El comportamiento de la API de consulta de flujo es diferente. Para obtener más información, consulte Escenario 3 a continuación.
Escenario 3: el elemento maxItems de los servicios de consulta Stream se aplica en memoria en ThingWorx Platform cuando se utiliza junto con el filtro de consulta (siempre en memoria para tablas de datos, consulte el escenario 2).
var query = {...};
var result = Things["myStream"].QueryStreamEntriesWithData({maxItems: 1, query: query});)
El código anterior extrae todo el flujo de la base de datos.
var result = Things["myStream"].QueryStreamEntriesWithData({maxItems: 1, source: "myThing"});
El código anterior solo permite obtener un registro de la base de datos, ya que no se utiliza el parámetro de consulta.
¿Fue esto útil?