ACC2000: Optimizar para rendimiento cliente/servidor

Seleccione idioma Seleccione idioma
Id. de artículo: 208858 - Ver los productos a los que se aplica este artículo
Avanzado: Requiere codificación experto, interoperabilidad, conocimientos y multiusuario.

Este artículo se aplica únicamente a las bases de datos de Microsoft Access (.mdb).

Expandir todo | Contraer todo

En esta página

Resumen

Este artículo enumeran sugerencias para optimizar el rendimiento de orígenes de datos (Open Database CONNECTIVITY) de Microsoft Access.

Nota : este artículo se supone que está familiarizado con las arquitecturas y entornos de cliente/servidor.

Más información

Métodos de acceso a datos

Para tener acceso a datos de servidor con una aplicación cliente/servidor, puede utilizar uno o varios de los métodos siguientes:

  • Las tablas vinculadas y vistas
  • Consultas de paso a través de SQL para enviar instrucciones SQL directamente al servidor
  • Un proyecto de Access

Tablas y vistas vinculadas

La forma más eficaz de controlar los datos de servidor consiste en Vincular tablas y vistas desde el servidor. Microsoft Access almacena información de campos e índices para tablas vinculadas. Esto mejora el rendimiento cuando abra las tablas.

Nota : si realiza cambios a los campos o índices en el servidor, debe volver a vincular las tablas remotas en Access.

Ejecutar consultas de paso a través SQL

En muchas aplicaciones, puede crear consultas de Microsoft Access basadas en tablas remotas y también crear consultas de paso a través SQL. Consultas de paso a través ofrecen las ventajas siguientes:
  • No se compila una consulta de paso a través de Microsoft Access. Envía la consulta directamente al servidor ODBC. Esto acelera la aplicación.
  • Acceso envía la consulta de paso a través al servidor exactamente como se entró. Por tanto, se produce más procesamiento en el servidor y se intercambian menos datos a través de la red.
  • Formularios, informes y consultas de Microsoft Access pueden basarse en consultas de paso a través mediante tablas ODBC vinculada.
  • Puede utilizar funcionalidad de específicas de SQL Server (como procedimientos almacenados y funciones intrínsecas basado en servidor) que no tiene ningún equivalente en código.
  • Actualizar, eliminar y anexar paso acción consultas son mucho más rápidas que las consultas de acción basadas en tablas remotas vinculadas, especialmente cuando afectan a muchos registros.
Las consultas de paso a través tienen las desventajas siguientes:
  • Una consulta de paso a través de SQL siempre devuelve una instantánea que no se puede actualizar. Normalmente, una consulta de Microsoft Access devuelve un objeto dynaset que refleja los cambios realizados por otros usuarios y puede actualizarse.
  • Es necesario escribir los comandos directamente en la ventana Consulta de paso a través de SQL con la sintaxis que requiere su servidor. No puede diseñar las consultas de paso a través de la cuadrícula de diseño de consulta.
  • Si necesita un parámetro con una consulta de paso a través, debe ejecutar la consulta en código y modifique la propiedad de la consulta SQL . Para obtener información adicional y un ejemplo de cómo modificar la propiedad SQL, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    232493ACC2000: Cómo simular parámetros en una consulta de paso a través SQL

Solicitar menos datos desde el servidor

Solicitar datos de los costos de servidor de tiempo de procesamiento. Para optimizar el rendimiento, solicitar sólo los registros y campos que necesite.

Reducir el número de controles enlazados, tales como cuadros de texto, cuadros combinados, cuadros de lista y subformularios. Cuando se abre un formulario, cada uno de estos controles envía una consulta independiente al servidor.

Si las tablas ODBC vinculadas tienen campos de objeto OLE o Memo, puede establecer la propiedad visible de los campos en no y agregar un botón de alternar para establecer la propiedad visible en para que los usuarios puedan elegir para verla.

Algunas tablas vinculadas no cambian con frecuencia. Por ejemplo, una tabla que contiene los nombres y abreviaturas de los 50 estados no cambiaría a menudo. Puede acelerar la carga del formulario y reducir la carga del servidor al almacenar una copia local de estas tablas. También puede proporcionar una forma de actualizar la copia local con datos más recientes desde el servidor.

Optimizar consultas

El método principal para optimizar consultas (después de agregar los índices adecuados en el servidor) es asegurarse de que el procesamiento tiene lugar en el servidor. Debe evitar la funcionalidad que no es compatible con el servidor, como las funciones específicas de Microsoft Access o las funciones definidas por el usuario. Para obtener información detallada sobre lo que se debe procesar localmente, consulte las notas de conectividad de Microsoft Jet ODBC con el motor de bases de datos (para obtener más información acerca de este documento, consulte la sección "Microsoft Jet Database Engine ODBC conectividad White Paper" más adelante en este artículo).

Para ver la instrucción SELECT que se envían al servidor, puede establecer la TraceSQLMode configuración. Para configurar esto, siga estos pasos:
  1. Haga clic en menú Inicio y, a continuación, haga clic en Ejecutar .
  2. En el cuadro de diálogo Abrir , escriba Regedit .
  3. Expanda el subárbol HKEY_LOCAL_MACHINE hasta que encuentre la subclave SOFTWARE\Microsoft\Jet\4.0\Engines.
  4. Haga clic en los motores .
  5. Si el valor TraceSQLMode no aparece en el panel derecho, haga clic en nuevo en el menú Edición y, a continuación, haga clic en Valor DWORD .
  6. En nombre en el panel derecho, escriba TraceSQLMode para el nuevo valor.
  7. Con el valor nuevo aún seleccionado, haga clic en Modificar en el menú Edición .
  8. En base , seleccione decimal . En el cuadro datos del valor , escriba 1 y, a continuación, haga clic en Aceptar .
Para obtener más información acerca de la configuración de TraceSQLMode, haga clic en Ayuda de Microsoft Access en el menú Ayuda, escriba "TraceSQLMode" en el Ayudante de Office o el Asistente para Ayuda y, a continuación, haga clic en Buscar para ver el tema.

Configuración de TryJetAuth

El TryJetAuth opción controla si Microsoft Access primero intenta iniciar sesión en el servidor mediante el identificador de inicio de sesión de Microsoft Access y la contraseña. (De forma predeterminada, el ID de inicio de sesión de Microsoft Access es "admin" y la contraseña está en blanco.) Si se produce un error, Microsoft Access le pide un identificador de inicio de sesión y una contraseña. A menos configure Microsoft Access para utilizar el mismo identificador de inicio de sesión y la contraseña como el servidor ODBC, agregue la línea "TryJetAuth = 0" a la clave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\ODBC\TryJetAuth del registro. Esto impide que Microsoft Access intente iniciar sesión con el identificador incorrecto. Para ello, siga estos pasos:
  1. Haga clic en Inicio y, a continuación, haga clic en Ejecutar .
  2. En el cuadro de diálogo Abrir , escriba Regedit .
  3. Busque el subárbol HKEY_LOCAL_MACHINE.
  4. Expanda el subárbol HKEY_LOCAL_MACHINE hasta que encuentre la siguiente subclave:
    SOFTWARE\Microsoft\Jet\4.0\ODBC\TryJetAuth
  5. Haga clic en los motores .
  6. Si el valor de TryJetAuth no está allí, haga clic en nuevo en el menú Edición y, a continuación, haga clic en Valor DWORD .
  7. En nombre en el panel derecho, escriba TryJetAuth para el nuevo valor.
  8. Con el valor nuevo aún seleccionado, haga clic en Modificar en el menú Edición .
  9. En base , seleccione decimal . En el cuadro datos del valor , escriba 1 y, a continuación, haga clic en Aceptar .

Marcas de tiempo

En servidores que ellos admiten, como Microsoft SQL Server, los campos de marca de hora hacer registros de actualización más eficaz. Campos de fecha son mantenidos por el servidor y se actualizan cada vez que se actualiza el registro.

Si tiene un campo de marca de hora, Microsoft Access necesita para comprobar sólo el índice único y el campo marca de hora para ver si el registro ha cambiado desde la última vez se recuperan del servidor. En caso contrario, Microsoft Access debe comprobar todos los campos en el registro. Si agrega un campo de marca de hora a una tabla vinculada, vuelva a vincular la tabla para informar a Microsoft Access del nuevo campo.

Transacciones

Usar transacciones en Visual Basic para aplicaciones (VBA) al actualizar o insertar registros en tablas vinculadas puede mejorar el rendimiento. Las transacciones de habilitar el motor de base de datos de Jet acumular varias actualizaciones y escribirlas como un único lote. Con Microsoft SQL Server, mantener transacciones cortas porque generan bloqueos que impiden que otros usuarios leer los datos afectados por la transacción actual. Aunque es posible anidar las transacciones con VBA, la mayoría de los servidores no admiten transacciones anidadas. Microsoft Access envía la transacción de primer nivel en el servidor.

Optimizar el código y conjuntos de registros

Puede almacenar todo o parte de los datos contenidos en objetos Recordset del tipo Dynaset en memoria local estableciendo las propiedades CacheSize y CacheStart .

El tamaño de la caché puede estar entre 5 y 1200 registros. Si el tamaño de la caché excede la memoria disponible, los registros sobrantes derrama en un archivo de disco temporal. Aplicar el método FillCache llena la caché de datos del servidor. Para recuperar la memoria caché, establezca la propiedad CacheSize en cero.

Con variables Recordset, implementar sólo la funcionalidad que necesita. Por ejemplo, agregar la opción dbAppendOnly con el método OpenRecordset si sólo necesita agregar nuevos registros a un conjunto de registros. Si no necesita modificar o actualizar la capacidad, base los conjuntos de registros en SQL consultas de paso a través. El método más rápido para insertar y actualizar registros es utilizar consultas de paso a través SQL en el código.

Tabla MSysConf

Puede crear una tabla denominada MSysConf en el servidor para el llenado de fondo del control (la velocidad a la que Microsoft Access lee registros desde el servidor durante el tiempo inactivo). Con esta tabla, puede establecer el número de filas de datos que se recuperan al mismo tiempo y el número de segundos de retardo entre cada recuperación. Si experimenta lectura-bloqueos excesivos en el servidor, puede ajustar la configuración de tabla para aumentar la velocidad de llenado de fondo. Si llenado en segundo plano genera demasiado tráfico de red, puede ajustar la configuración para reducir la velocidad.

Microsoft notas el motor de bases de datos Jet ODBC conectividad blanco

Un origen importante para obtener información adicional es el "Jet Database Engine documento conectividad de ODBC con" en blanco. Este documento se ha escrito para Jet 3.0; se sin embargo, esta información aún aplica a Jet 4.0. Este documento describe el motor de base de datos Microsoft Jet 3.0 y cómo utiliza ODBC. Las notas del producto se puede descargar desde el siguiente sitio Web:
http://download.microsoft.com/download/access95/whitep5/1/W98/EN-US/Rjwpv3.exe

Un proyecto de Access

Un proyecto de Access utiliza OLEDB para vincular a Microsoft SQL Server 6.5 o 7.0. Si todas las tablas en la base de datos de Access son tablas vinculadas a SQL Server, para mejorar el rendimiento en su lugar se puede crear un proyecto de Access. Sin embargo, si la base de datos contiene las tablas de Access, esta opción no es posible.

Propiedades

Id. de artículo: 208858 - Última revisión: jueves, 29 de marzo de 2007 - Versión: 3.3
La información de este artículo se refiere a:
  • Microsoft Access 2000 Standard Edition
Palabras clave: 
kbmt kbdownload kbhowto kbusage KB208858 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 208858

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com