2 de abril de 2007

Los dos motores

Artículo original: The Two Engines
http://www.foxpert.com/knowlbits_200702_6.htm
Autor: Christof Wollenhaupt
Traducido por: Ana María Bisbé York


Muchas bases de datos tienen optimizadores; pero Visual FoxPro tiene dos. Usualmente trabajan de forma similar pretendiendo ser un motor poderoso. Sin embargo, a veces, necesita saber las diferencias entre los dos motores para escribir un código eficiente. Los motores de los que hablo son los motores de optimización xBase y SQL Rushmore.

Una de las diferencias es que econstituye una expresión que puede ser optimizada. El archivo ayuda dice que las expresiones tienen una de las formas siguientes:
eIndex relOp eExp
o
eExpr relOp eIndex
En otras palabras, las dos expresiones siguientes son optimizables:
Name = "Smith"
"Smith" = Name
Si usted analiza qué ocurre cuando ejecuta una consulta con esta condición verá que existen diferencias entre utilizar la cláusla FOR en un comando tradicional y en la cláusula WHERE en una sentencia SQL. Un comando con una cláusula FOR ejecuta mucho más rápido. Está totalmente optimizada.

La sentencia SQL, por otra parte, muestra una barra de progreso de la misma consulta. SYS(3054), la función utilizada para determinar el nivel de optimización, indica que la consulta no está optimizada del todo.

En otras palabras: En XBase no importa dónde escriba el nombre del campo. En SQL, sin embargo, no tiene gran problema. Para evitar una confusión, es una buena idea que utilice siempre la notación primero con el nombre del campo.

No hay comentarios. :

Publicar un comentario