Nuevas mejoras en el rendimiento de la función de cadena

Blog

¡Las consultas en Azure Cosmos DB son aún mejores! Ahora tiene una opción para consultas que no distinguen entre mayúsculas y minúsculas con las siguientes funciones del sistema de búsqueda de cadenas:



  • Contiene
  • Termina con
  • Comienza con
  • StringEquals

Además, tanto Contains como EndsWith también tienen importantes mejoras de rendimiento. Esta actualización se implementó en las cuentas de la API principal (SQL) de Azure Cosmos DB en nuestra actualización de servicio más reciente. Los clientes que utilizan la API de Azure Cosmos DB para cuentas de MongoDB pueden aprovechar el soporte que no distingue entre mayúsculas y minúsculas y las mejoras de rendimiento a través de $ regex operador de evaluación de consultas.






Prueba de rendimiento

Probemos las mejoras de rendimiento ejecutando algunas consultas en un conjunto de datos de muestra con 8,5 millones de documentos. Subí el conjunto de datos a un contenedor de Cosmos con 30.000 RU aprovisionadas.



El conjunto de datos se generó utilizando Falso y contiene un identificador de identificación único, un nombre, una dirección, una empresa y un trabajo:



|_+_|

Contiene

Primero hagamos una búsqueda de todas las personas que viven en una calle llamada Brooks Street. Ejecutaremos la siguiente consulta para verificar si la propiedad de la dirección contiene la palabra Brooks Street:






|_+_|

La consulta devuelve 17 resultados con los siguientes cargos de RU:

Cargo RU original: 221.566,68 RU

varianza de la lista de python

Nuevo cargo RU: 224,99 RU

La mejora del rendimiento para Contiene , le dio a esta consulta una disminución del 99% en el cargo por RU. Aparte de indexar la propiedad en el Contiene función del sistema, no es necesario realizar ningún otro cambio para ver estas mejoras.

Termina con

Veamos un ejemplo con Termina con . A continuación, se muestra una consulta que busca a todas las personas que tienen un nombre que termina en Lee:

árbol de jerarquía de reacción
|_+_|

Esta consulta devuelve 0 resultados con los siguientes cargos de RU:

Cargo RU original: 198.649,32 RU

Nuevo cargo RU: 122,76 RU

Comienza con

Además, puede aprovechar un nuevo parámetro en cada una de estas funciones del sistema para obtener soporte que no distinga entre mayúsculas y minúsculas. Este parámetro es opcional y por defecto es falso cuando no se especifica. El cargo de RU por Contiene y Termina con es el mismo independientemente de si no distinguen entre mayúsculas y minúsculas.

Aquí tienes un ejemplo con Comienza con para encontrar los títulos de trabajo TOP 100 que comienzan con desarrollador, ya sea que el caso coincida o no:

|_+_|

Cargo RU: 38,91 RU

error de api de javascript de Google Maps: apinotactivatedmaperror

StringEquals

Si desea comprobar si hay una coincidencia completa, puede utilizar StringEquals :

|_+_|

Cargo RU: 38,89 RU

El cargo de RU para StartsWith y StringEquals es ligeramente más alto con la opción que no distingue entre mayúsculas y minúsculas que sin ella. La opción que no distingue entre mayúsculas y minúsculas está disponible en la última versión de todos los SDK de Azure Cosmos DB. Para .NET SDK, esta es la versión 3.10 o posterior.

En general, Contiene y Termina con consumirá más RU que Comienza con o StringEquals . El cargo de RU de Contiene y Termina con aumentará a medida que aumenta la cardinalidad de la propiedad en la función del sistema. Aprender más acerca de Contiene y Termina con utilización del índice.

#announcements #core (sql) api #query #tips and tricks #function

devblogs.microsoft.com

Nuevas mejoras en el rendimiento de la función de cadena

Realice consultas con filtros que no distingan entre mayúsculas y minúsculas mediante Contains, StartsWith, EndsWith y StringEquals. Más información sobre Contiene y termina con las recientes mejoras de rendimiento.