Error: El rastreo de texto completo tarda mucho tiempo para terminar el al crear un índice de texto completo en una columna que tiene los datos varchar tipo en SQL Server 2005

Seleccione idioma Seleccione idioma
Id. de artículo: 937086 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Síntomas

Considere el siguiente escenario. En Microsoft SQL Server 2005, una tabla tiene una restricción primary key. La restricción primary key contiene una columna que tiene unoCharovarchartipo de datos. Crear un índice de texto completo en la columna. En este escenario, el rastreo de texto completo tarda mucho tiempo en Finalizar. Además, el uso de CPU es alto durante el rastreo de texto completo.

Causa

Este problema se produce porque elsp_fulltext_getdataalmacena el procedimiento convierte valores deCharovarcharlos valores de tipo de datosncharonvarchartipo de datos. La operación de conversión hace que un recorrido de tabla.

Solución

Para evitar este problema, utilice uno de los métodos siguientes.

Método 1

Cambiar el tipo de datos de la columna en la restricción primary key para lanvarchartipo de datos.

Después de utilizar este método, el optimizador de consultas no agrega la operación de conversión para el plan de ejecución. Además, no se produce el recorrido de la tabla.

Método 2

Siga estos pasos:
  1. Agregar una nueva columna que tiene elbiginttipo de datos.
  2. Establecer elIdentidadpropiedad de esta columna para elIdentity(1,1)valor.
  3. Eliminar la restricción primary key en la columna que tiene elvarchartipo de datos.
  4. Definir una restricción primary key en la columna que tiene elbiginttipo de datos.
  5. En la columna que tiene elvarchartipo de datos, crear los índices no agrupados que se basan en la necesidad de mejorar el rendimiento de la consulta.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Se refiere a:".

Más información

Elsp_fulltext_getdataprocedimiento almacenado es un procedimiento almacenado interno que copia los valores de la columna en la restricción primary key en la memoria compartida. A continuación, se inicia el proceso de demonio de filtro de motor de texto completo de Microsoft (Msftefd.exe) para crear el índice de texto completo.

Cuando elsp_fulltext_getdatael procedimiento almacenado copia un valor, elsp_fulltext_getdataprocedimiento almacenado convierte un valor de lavarchartipo de datos a un valor de lanvarchartipo de datos. La operación de conversión tarda y la operación de conversión hace que el uso de CPU elevado.

Cuando se produce este problema, puede utilizar el analizador de SQL Server para capturar elRPC: completadoclase de evento y elSP: StmtCompletedlee la clase de evento para obtener la página. Elsp_fulltext_getdataprocedimiento almacenado realiza muchos lecturas de páginas. El número de lecturas de página está cerca el número de páginas de la tabla en la que se crea el índice de texto completo. Puede ejecutar elDBCC CHECKTABLEinstrucción que se va a obtener el número de páginas de la tabla.

Referencias

Para obtener más información acerca de laRPC: completadoevento de clases, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):
http://msdn2.Microsoft.com/en-us/library/ms175543.aspx
Para obtener más información acerca de laSP: StmtCompletedevento de clases, visite el siguiente sitio Web de MSDN:
http://msdn2.Microsoft.com/en-us/library/ms189570.aspx

Propiedades

Id. de artículo: 937086 - Última revisión: jueves, 27 de enero de 2011 - Versión: 1.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
Palabras clave: 
kbexpertiseadvanced kbtshoot kbprb kbmt KB937086 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): 937086

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