To bind or not to bind: that is the question
Tenemos un programa que hace en GeneXus: for each where ATT1=&Var1 .or. &Var1='TODOS' //Los puntos en el or son para darle olor a viejo where ATT2=&Var2 .or. &Var2='TODOS' Msg('Cuantos registros tiene esta tabla!!!' + Clave) endfor Esto va a generar una sentencia mas o menos asi: SELECT CLAVE, ATT1, ATT2 FROM TABLAGRANDE WHERE (ATT1= @AV6969VAR1 OR @Av6969Var1 ='TODOS') AND (ATT2= @AV6968VAR2 OR @AV6968VAR2 ='TODOS') ORDER BY CLAVE En la base de datos, las sentencia tiene una parte fija, y las variables, cambian en cada corrida, de form que el DBMS puede reutilizar la navegación y no necesita recompilar la sentencia, cuando cambian los valores de la variable. Esto deja a los DBA contentos. Que inconvenientes trae esto? Generalmente estas sentencias, aparecen en la lista de sentencias que consumen mucho, pues los OR hacen que se consuman mas recursos que los necesarios. Que opción tenemos para mejo...