Ver Mensaje Individual
  #97 (permalink)  
Antiguo 23/10/2004, 16:32
Avatar de trasgukabi
trasgukabi
 
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 2 meses
Puntos: 18
Agilizando la carga de tus páginas ASP II

10 tips para optimizar ADO

1.- Evitar Actualizaciones a traves de RecordSets. Debido a que el propósito del RecordSet es brindar consultas más rápidas a través de la opción de RecordSet Desconectados, minimizando las conexiones.

2.- Utilizar Stored Procedures. Es mejor debido a que ya se encuentra compilado en el Server y además de tener mayor prioridad, tiene más fácil mantenimiento y seguridad

3.- Crear el Minimo RecordSet. En otras palabras, seleccionar segun el tipo de operacion que se va realizar el tipo de recordset (Cursor Type o Cursor Location)a abrir

4.- Usar RecordSets Desconectados. Logicamente para economizar conexiones y para presentar consultas mas rapidas.

5.- Define Comandos Parametrizados. Segun lo que entendi es que al definirlos de esta forma lo que se envia al servidor es una colecciones de Parametros que optimiza la ejecución de Stored Procedure.

6.- Encapsula El Aceso a la Data. Obviamente se refiere a trabajar con componentes.

7.- Use el Data Shaping para retornar datos de Cabecera y detalle.
Debido a que significa menos trafico de red y menor consumo de recursos para el cliente.

8.- Use el MTS

9.- Use Parametros de Salida. Cuando un stored devuelve un valor o un RecordSet se recomienda devolverlo como parametro de salida debido a que se evita el crear un nuevo objeto.

10.- Obtenga solo la data que se requiere. Solo debemos extraer las columnas o filas, osea no debemos tomar toda la tabla sino los valores necesarios.
(***hasta aquí sacado de http://www.telecable.es/personales/j...n/res00456.htm sacado a su vez de Visual Basic Programmer Journal)

Unas cuantas cosas más:
-Liberar recordsets y conexiones en cuanto se pueda, no al final del script, como se dice por ahí.

-Evidentemente, y si es posible, usar SQLServer o Mysql u otra base de datos "de verdad". evitar access, que no está preparado para muchas conexiones concurrentes.

-No usar el mismo nombre de objeto para distintos queries en el mismo script. SQLServer crea un procedimiento almacenado temporal por cada petición y puede ser que el usar el mismo nombre de objeto se provoque una caída del sistema. Sobre todo trabajando con procedimientos almacenados parametrizados.

-Usar recordsets forward-only,read-only siempre que sea posible.

-Huye como del diablo de las sentencias tipo "SELECT * FROM TABLA", especifica siempre los nombres de los campos.

-Usa providers OLEDB nativos siempre que sea posible.No uses providers OLEDB para fuentes ODBC.

-Procura que las cadenas de conexión a la base de datos (si es que tienes más de una) sean EXACTAMENTE iguales, ya que ADO hace una comparación carácter a carácter de las conexiones para colocarlas o recharzarlas en la pila de peticiones. La mejor manera de evitar ésto es poner la conexión en un include o en una variable Application en Global.asa

-No guardes objetos connection o recordset en variables Session o Application. Hacer ésto machaca mucho la escalabilidad de la aplicación, porque las peticiones a la conexión o al recordset son ejecutadas en serie y, así, una página ASP debería esperar hasta que ninguna otra esté usando el recurso para poderlo utilizar. Es infinitamente mejor crear la conexion y el recordset en cada página y destruirlos antes de que el script termine.

-Usa conexiones sin DSN.

-Cuando uses providers nativos OLEDB, No uses ficheros de conexión UDL.

-Poner los tags <%%> en la misma línea reduce la sobrecarga de la página, ya que el motor ASP no tiene que interpretar los saltos de línea (las líneas las lee carácter a carácter)

-todos conocemos las bondades de los comentarios, pero mejor no abusar de ellos por la misma razón que la anterior.

BUENO, YA VALE POR HOY.
UN SALUDO A TODOS


(**fuente:Visual Basic Programmer Journal)