Pregunta

Microsoft Access es una forma sencilla de acceder a los datos en una base de datos back-end de MS SQL Server, pero siempre he tenido problemas para acceder (por decirlo así) a grandes tablas de datos, especialmente cuando se intenta alternar entre los resultados y el modo de diseño en Access. .

El acceso me da una serie de cosas ingeniosas, entre las cuales se encuentran las tablas cruzadas, ¡pero esta conexión suspendida al servidor me vuelve un poco loco!

¿Alguno de los gurús de MS Access sabe cómo optimizar la conexión ODBC para que no haga lo que parecen ser exploraciones de tablas completas cuando solo quiero modificar y construir mis consultas?

¿Fue útil?

Solución

El controlador ODBC pasará todo el trabajo posible a SQL Server, pero tan pronto como use una función vba como Nz o una sintaxis que no sea de SQL Server como PIVOT, el controlador ODBC debe extraer más datos e índices para obtener el trabajo. hecho en el lado del cliente.

Según otra respuesta, cree sus vistas en SQL Server y haga un enlace a las vistas o utilice un Proyecto de datos de acceso.

NB: las consultas de PIVOT con un número desconocido de columnas no se pueden manejar en SQL Server de la misma manera que Access lo hará de forma nativa, por lo que si ejecuta un pivote en Access contra los datos de SQL Server es probable que recupere toda la tabla. Las consultas de pivote deben estar integradas en SQL Server usando técnicas de SQL dinámico o, si no, vistas pre-guardadas que tienen todas las columnas codificadas. Echa un vistazo a este enlace para ver una forma de hacer esto:

http://www.sqlservercentral.com/articles/Advanced+ Consultando / pivottableformicrosoftsqlserver / 2434 /

Otros consejos

Como han dicho otros, la única forma de mejorar el rendimiento en tablas grandes es hacer que el motor de base de datos de SQL Server haga el trabajo por usted. Un método para hacer esto que no se ha mencionado es usar una consulta de paso, que le permitirá mantener todo su código en MS Access, sin tener que crear objetos en el servidor SQL:

http://support.microsoft.com/kb/303968

Tendrá que escribir SQL Server T-SQL en lugar del dialecto de acceso; sin embargo, SQL 2005 (cuando se ejecuta en modo de compatibilidad 90) admite un comando PIVOT.

Mi problema similar fue que la conexión ORACLE ODBC se colgó después de seleccionar la conexión de la tabla de enlaces / ODBC. El gerente de tareas dijo que no respondía después de 10 minutos. La conexión hace ping a ORACLE para todas las tablas disponibles. Había activado el registro en el Administrador de ODBC de ORACLE, por lo que tenía que escribir todas estas cosas en el registro, ralentizando los resultados en horas. El registro tenía 60 MB una hora más tarde, cuando lo apagué, ¡entonces todo estaba bien!

Para desactivarlo, vaya a la pestaña Instalación de Oracle / Administración de red / Administrador de ODBC de MS / Seguimiento y desactívelo.

Un buen recurso sobre ODBC está aquí: http: //eis.bris. ac.uk/~ccmjs/odbc_section.html

Desafortunadamente, Access no puede enviar gran parte de ese trabajo al servidor, y sí, hará grandes escaneos de tablas cuando diseñe consultas en múltiples tablas o vistas en SQL Server.

Puede crear y modificar consultas (vistas) en SQL Server usando SSMS y almacenar las vistas en SQL Server para un aumento masivo del rendimiento y seguir utilizando Access para su interfaz.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top