El almacenamiento en caché de consultas

Los lugares de almacenamiento en caché de consultas de los resultados de una consulta de base de datos en la memoria del servidor de ColdFusion es donde se puede recuperar al instante sin consultar la base de datos. El almacenamiento en caché de consultas es una de las herramientas más útiles para mejorar el rendimiento en sus aplicaciones de ColdFusion, lamentablemente, es también uno de los menos utilizados. Algunas advertencias están involucradas en el cacheo de consultas, pero en conjunto, es una técnica muy sencilla de utilizar. Usted debe considerar almacenamiento en caché de consultas que sólo corresponden a los criterios siguientes:

  

La consulta tiene una latencia permitida significativa. En otras palabras, los datos en el conjunto de resultados no cambian a menudo y es, por tanto, estable durante un período de tiempo significativo.

La consulta es de alcance universal, de manera que todos los usuarios de la aplicación puede utilizar exactamente el mismo resultado de la consulta.

La consulta requiere de importantes recursos para el proceso. Otra forma de verlo es como sigue:

La latencia le da permiso para utilizar el almacenamiento en caché.

La universalidad del ámbito de aplicación hace posible el almacenamiento en caché.

Las condiciones de transformación hacen necesario el almacenamiento en caché. Cada vez que la caché de una consulta, se coloca una copia del mismo en la memoria y dar instrucciones a ColdFusion MX para recuperar la memoria-la versión basada de que la consulta de un período de tiempo especificado. Por ejemplo, el código hows un CFQUERY que almacena el resultado a las 12 horas, después de que otra llamada a CFQUERY recupera datos directamente de la base de datos y cachés que el nuevo resultado fijado en la memoria.

 SELECT LastName + ',' + apellido AS nombre de usuario AppUser ORDEN por nombre de usuario ASC  # # Nombre de Usuario 

El código muestra una CFQUERY que almacena su conjunto de resultados después de la 1 am del 4 de julio 2002, antes de este tiempo, una llamada a CFQUERY obtiene sus datos directamente de la base de datos.

 SELECT LastName + ',' + apellido AS nombre de usuario AppUser ORDEN por nombre de usuario ASC  # # Nombre de Usuario 

CachedWithin es el más comúnmente utilizado de los dos atributos disponibles de almacenamiento en caché. CachedAfter tiene muy pocas aplicaciones prácticas, sino que se utiliza principalmente para esperar hasta una hora determinada cuando se disponga de nuevos datos a la base de datos de algún proceso externo y para almacenar en caché los datos nuevos. Buenos candidatos para la caché de consultas son las siguientes:

Las páginas del catálogo en línea-tienda que muestra las imágenes y descripciones de las categorías de los artículos vendidos.

Las páginas del catálogo en línea-tienda que mostrar los elementos de cada categoría específica.

La lista de artículos a la venta en una tienda en línea.

Seleccionar menús que son dinámicamente con datos de frecuencia cambiado, como los nombres de los directores de departamento.

 (CALL sp_GetCompanies ( "GA"))  CompanyName # #, # # Código postal 

 INSERT INTO OrderItem (SalesOrderID, ItemNumber, Descripción, Precio por unidad Cantidad) VALUES (1, 'CAS30-BLK', '30-Minute Cassette, Negro asunto ', 1,05, 10)  UPDATE InventoryItem SET AvailableToSell = AvailableToSell - 10 DONDE ItemNumber = 'CAS30-BLK' 

Todo entre las etiquetas de apertura y cierre de CFTRANSACTION se considera una sola transacción. Para esta operación tenga éxito, tanto la inserción en la tabla OrderItem y la actualización de la tabla InventoryItem debe tener éxito. Esa es la idea de una transacción: todo o nada. Si ambas consultas tienen éxito, se confirma la transacción, y los efectos de las consultas, se escriben en la base de datos. Si bien la consulta falla, toda la transacción se deshace como si nada hubiera pasado. En el ejemplo en la parte anterior, ColdFusion proporciona los comandos para controlar el comienzo y el final de la transacción, pero en muchos casos, este control se maneja en el servidor de base de datos de la propia base de datos utilizando los comandos nativos. Entonces, ¿dónde debe controlar una transacción? La respuesta simple a esta pregunta siempre es "En el servidor de base de datos, si sea posible." La razón de esta respuesta es la capacidad de la base de datos para controlar sus operaciones mediante el uso de comandos nativos y la capacidad en lugar de confiar en la capacidad del controlador de base de datos para comunicar el control de las transacciones a la base de datos. Algunos controladores de base de datos no tienen la capacidad para pasar los comandos de control de transacciones de la base de datos, por lo que en estos casos, es necesario encapsular todos los controles de las transacciones dentro de un procedimiento almacenado en la base de datos y lo llamamos simplemente de ColdFusion. Algunos otros conductores pueden comunicarse sólo un subconjunto de la base de datos dispone de comandos de control de transacciones y, por tanto, no como una solución capaz. Flèche ahora en una operación que no esté controlado en el procedimiento almacenado. Este código es el equivalente de la otra, salvo que la operación es controlada dentro del procedimiento almacenado en lugar de en ColdFusion.

BEGIN TRANSACTION INSERT INTO OrderItem (SalesOrderID, ItemNumber, Descripción, Precio por unidad Cantidad) VALUES (1, 'CAS30-BLK', '30-Minute Cassette, Negro asunto ', 1,05, 10) IF @ @ ERROR! = 0 BEGIN
RAISERROR 50001 'El OrderItem no podían ser incluidas. ROLLBACK TRANSACTION RETURN END UPDATE InventoryItem SET AvailableToSell = AvailableToSell - 10 DONDE ItemNumber =' CAS30-BLK 'IF @ @ ERROR! = 0 BEGIN RAISERROR 50002' El InventoryItem no ha podido ser actualizada. ROLLBACK TRANSACTION RETURN END COMMIT TRANSACTION

La sintaxis es un poco diferente, pero los principios son muy similares, ¿no? Es sólo una cuestión de aprendizaje, tanto los métodos de aplicación de las transacciones y el control de ellas lo más cerca al servidor de base de datos como su aplicación le permite hacerlo.

un artículo presentado por Richard Brighton


Descargo de responsabilidad:Nuestro sitio web no es responsable por el contenido de este artículo. Webarticles es un recurso de información gratuito.
Importante: Este artículo "El almacenamiento en caché de consultas", fue traducida por un software automático. Sentimos pena por los errores de ortografía que pueda haber ocurrido. Gracias por su comprensión.


Online: 315 users browsing the articles directory