REVISIÓN: El uso del proveedor de Jet para consultar un archivo de texto servidor vinculado de SQL Server puede ser muy lento

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): 290415
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Nº DE ERROR: 236329 (SHILOH_BUGS)
Nº DE ERROR: 236615 (SHILOH_BUGS)
Nº DE ERROR: 352865 (SHILOH_BUGS)
Síntomas
Cuando utiliza el proveedor OLEDB de Jet (proveedor OLE DB para Jet [IISAM de texto]) para obtener acceso a un archivo de texto desde un servidor vinculado de SQL Server, la consulta puede tardar mucho tiempo. El rendimiento lento de la consulta sólo se produce cuando hay un gran número de columnas en el archivo de texto.
Causa
El proveedor OLEDB de Jet está consultando el Administrador de propiedades de Jet según la propiedad por propiedad para cada columna. A partir de Jet 4.0 Service Pack 5 (SP5), la consulta se realiza en un modo masiva, lo que acelera considerablemente la consulta.
Solución
Para resolver este problema, consiga el Service Pack más reciente para Microsoft SQL Server 2000. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
290211INF: Cómo obtener el Service Pack más reciente de SQL Server 2000
Este problema se ha corregido en la edición más reciente de Service Pack de Jet. Para obtener información adicional acerca de cómo obtener la última versión de motor de base de datos Jet 4.0, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
239114Cómo: Obtener el Service Pack más reciente para el motor de base de datos Microsoft Jet 4.0
Solución
Para solucionar el problema, utilice un proveedor diferente para consultar el archivo de texto de SQL Server.
Estado
Microsoft ha confirmado que se trata de un problema de Microsoft SQL Server 2000. Este problema se corrigió por primera vez en SQL Server 2000 Service Pack 1.
Más información
El equipo deja de responder (se bloquea) cuando SQL Server llama a IDBSchemaRowset::GetRowset(DBSCHEMA_COLUMNS).

Pasos para reproducir este comportamiento

Para reproducir el comportamiento, ejecute el ejemplo de código que sigue.

Nota : este ejemplo se supone que el archivo C:\MyDir\TextFile.txt tiene 255 columnas.
exec sp_addlinkedserver @server = 'My Documents', @provider = 'Microsoft.Jet.OLEDB.4.0', @srvproduct = 'OLE DB Provider for Jet (Text IISAM)', @datasrc = 'c:\MyDir\', @provstr = 'Text'goexec sp_addlinkedsrvlogin 'My Documents', false, NULL, 'admin'goSELECT * FROM [My Documents]...[TextFile#txt] goexec sp_droplinkedsrvlogin 'My Documents', nullexec sp_dropserver 'My Documents'go				
Acceso de rendimiento de IDBSchemaRowset::GetRowset(DBSCHEMA_COLUMNS) se bloquea

Propiedades

Id. de artículo: 290415 - Última revisión: 01/16/2015 21:47:09 - Revisión: 4.2

Microsoft SQL Server 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbbug kbfix kbsqlserv2000sp1fix KB290415 KbMtes
Comentarios