Mejoras de concurrencia para la base de datos tempdb

Seleccione idioma Seleccione idioma
Id. de artículo: 328551 - Ver los productos a los que se aplica este artículo
Nº DE ERROR: 362099 (SHILOH_BUGS)
Expandir todo | Contraer todo

En esta página

Síntomas

Cuando la base de datos tempdb se utiliza mucho, Server de SQL puede experimentar contención cuando intenta asignar páginas.

En el resultado tabla de sistema sysprocesses , el waitresource puede aparecer como "2: 1: 1" (PFS página) o "2: 1: 3" (página SGAM). Según el grado de contención, esto puede provocar también a SQL Server aparezcan no responde durante cortos periodos.


Estas operaciones muy utilizan tempdb :
  • Repite crear y colocar de temporal tablas (locales o globales).
  • Variables de tabla que utiliza tempdb para propósitos de almacenamiento.
  • Tablas asociadas al cursor de trabajo.
  • Tablas de trabajos asociadas con una cláusula ORDER BY.
  • Tablas de trabajos asociadas con una cláusula GROUP BY.
  • Archivos asociados con los planes de HASH de trabajo.
Uso grueso y significativo de estas actividades puede provocar problemas de contención.

Causa

Durante la creación de objeto, las páginas de dos (2) deben tener asignadas desde una extensión mixta y asignadas al nuevo objeto. Una página es para el índice de mapa de asignación (IAM) y el segundo es la primera página del objeto. SQL Server realiza el seguimiento de extensiones mixtas mediante el compartido global asignación mapa (SGAM) página. Cada página SGAM realiza un seguimiento de 4 gigabytes de datos.

Como parte de la asignación de una página desde la extensión mixta, SQL Server debe digitalizar la página espacio libre de página (PFS) para averiguar qué página mixta es libre de asignarse. La PFS página realiza un seguimiento de espacio libre disponible en cada página y cada página PFS realiza un seguimiento páginas unos 8000. Se mantiene la sincronización apropiada para realizar cambios en las páginas PFS y SGAM; y otros modificadores que puede detenerse durante cortos periodos.

Cuando SQL Server busca una página mixta asignar, siempre inicia la digitalización en el mismo archivo y la página SGAM. El resultado intensa contención en la página SGAM cuando varios mixto página las asignaciones están en curso, lo que puede causar los problemas documentados en la sección "Síntomas" de este artículo.

Nota Actividades de desasignación también deben modificar las páginas, que pueden contribuir a la contención aumento.

Para obtener más información acerca de los mecanismos de asignación distintos utilizados por SQL Server (SGAM, GAM, PFS, IAM), vea la sección "Referencias" de este artículo.

Solución

Para reducir la contención de recursos de asignación para tempdb que está experimentando uso intenso, siga todos estos pasos:
  1. Para los servidores que ejecutan SQL Server 2000 Service Pack 3 (SP3), aplicar el hotfix 8.00.0765 o la seguridad más reciente corregir 8.00.0818. Para los servidores que ejecutan SQL Server SP2, aplique la revisión 8.00.0702.

    Estas revisiones están disponibles desde las siguientes ubicaciones:

    8.00.0765
    814916REVISIÓN: El agente de mezcla para una publicación filtrada podría fallar
    8.00.0818
    http://www.microsoft.com/technet/security/bulletin/MS03-031.mspx
    8.00.0702
    328551REVISIÓN: Mejoras de concurrencia para la base de datos tempdb
  2. Implementar el indicador de traza -T1118 .

    Nota Indicador de traza -T1118 también está disponible y se admite en Microsoft SQL Server 2005 y SQL Server 2008. Sin embargo, si está ejecutando SQL Server 2005 o SQL Server 2008, no es necesario aplicar cualquier revisión.
  3. Aumente el número de archivos de datos de tempdb sea como mínimo igual al número de procesadores. Además, cree los archivos con igual tamaño. Para obtener más información, consulte la sección "Más información".
Nota Estos pasos se aplican también a Microsoft SQL Server 7.0. La única excepción es que no hay ninguna revisión para SQL Server 7.0; por tanto, no es aplicable el paso 1.

Con respecto al paso 2, el uso del indicador de traza T1118 para Microsoft SQL Server 7.0 antes de utilizar el indicador de traza, consulte el artículo siguiente en Microsoft Knowledge Base:
813492REVISIÓN: Crear el índice se produce un error en SQL Server 7.0 cuando está habilitado el indicador de traza 1118

Información de Service Pack

Para resolver este problema, consiga el Service Pack más reciente para Microsoft SQL Server 2000. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
290211Cómo obtener el Service Pack más reciente de SQL Server 2000

Información de revisiones

Revisión 8.00.0702

La versión en inglés de este hotfix tiene los atributos de archivo (o atributos de último archivo) mostrados en la siguiente tabla. Las fechas y las horas de estos archivos se muestran en hora universal coordinada (UTC). La información de los archivos se convertirá a la hora local cuando la vea. Para averiguar la diferencia entre hora UTC y la hora local, utilice la ficha zona horaria el elemento fecha y hora en el panel de control.
   Date         Time   Version         Size       File name
   ----------------------------------------------------------------
   30-Aug-2002  21:08                    786,432  Distmdl.ldf
   30-Aug-2002  21:08                  2,359,296  Distmdl.mdf
   09-Oct-2002  00:54                        544  Drop_repl_hotfix.sql
   02-Jul-2002  15:35  2000.80.650.0     107,088  Impprov.dll      
   19-Jul-2002  16:56                    774,516  Instdist.sql
   08-Oct-2002  23:56                     12,615  Inst_repl_hotfix.sql
   20-Aug-2002  16:24  2000.80.679.0     111,172  Logread.exe      
   07-Apr-2002  02:08  2000.80.606.0      62,024  Odsole70.dll     
   03-Jan-2002  01:59                     18,185  Qfe356326.sql
   20-Aug-2002  16:47  2000.80.679.0     135,748  Qrdrsvc.exe      
   26-Aug-2002  22:49  2000.80.679.0     406,088  Rdistcom.dll     
   04-Oct-2001  01:36                    437,302  Replcom.sql
   20-Aug-2002  16:33  2000.80.679.0     152,136  Replmerg.exe     
   19-Nov-2001  20:36                    993,945  Replmerg.sql
   05-Nov-2002  23:48  2000.80.700.0     221,768  Replprov.dll     
   04-Oct-2001  01:36                    986,906  Replsys.sql
   04-Oct-2001  01:36                    881,228  Repltran.sql
   26-Aug-2002  22:49  2000.80.679.0     283,208  Rinitcom.dll     
   16-Sep-2002  22:31                    390,045  Securityhotfix.sql
   26-Aug-2002  22:49  2000.80.679.0      28,672  Sqlagent.dll     
   26-Aug-2002  18:39  2000.80.679.0     311,872  Sqlagent.exe     
   28-Aug-2002  16:32  2000.80.679.0      49,152  Sqlagent.rll
   26-Aug-2002  22:49  2000.80.679.0      53,824  Sqlcmdss.dll     
   28-Aug-2002  16:40  2000.80.679.0      12,288  Sqlcmdss.rll
   24-Oct-2002  17:37  2000.80.695.0     176,696  Sqlmap70.dll     
   11-Nov-2002  09:52  2000.80.702.0   7,471,185  Sqlservr.exe     
   11-Nov-2002  09:51                 12,633,088  Sqlservr.pdb
   01-Nov-2002  18:56  2000.80.698.0      45,644  Sqlvdi.dll       
   01-Nov-2002  18:00  2000.80.697.0      82,492  Ssnetlib.dll     
   07-Apr-2002  02:08  2000.80.606.0      70,208  Xplog70.dll      
   07-Apr-2002  02:08  2000.80.606.0      53,828  Xpqueue.dll      
   07-Apr-2002  02:08  2000.80.606.0     156,228  Xprepl.dll       
   12-Jul-2002  01:00  2000.80.658.0     279,104  Xpstar.dll       
   16-Sep-2002  23:12  2000.80.686.0      98,872  Xpweb70.dll   
				
notas
  • debido a las dependencias de archivos, la revisión o característica más reciente que contiene estos archivos quizás contenga también archivos adicionales.
  • La revisión 8.00.0702 es para equipos donde se ha aplicado SQL Server 2000 SP2. Si instaló SQL Server 2000 SP3, instalar SQL Server 2000 SP3 8.00.0765 de versión de paquete.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:". Este problema se corrigió por primera vez en Pack 4 de Microsoft SQL Server 2000.

Más información

Cómo reduce la contención revisión 8.00.0702

Revisión 8.00.0702 presenta un algoritmo por turnos para asignaciones de página mixta. Con la solución, el archivo de inicio ahora será diferente para cada asignación de página mixta consecutivos (si existe más de un archivo). Esto evita el problema contención dividiendo el tren pasó SGAMs en el mismo orden cada vez con el mismo punto inicial. El nuevo algoritmo de asignación para SGAM es turnos puro y no respeta el relleno proporcional para mantener la velocidad. Microsoft le recomienda que cree el tempdb archivos de datos con el mismo tamaño.

Cómo implementar traza indicador - T1118 reduce la contención

Ésta es la lista de cómo utilizar de -T1118 reduce la contención:
  • -T1118 es una configuración de todo el servidor.
  • Incluir el -T1118 indicador en los parámetros de inicio de traza de SQL Server para que el indicador de traza permanezca en vigor incluso después de SQL Server se recicla.
  • -T1118 quita casi todas las asignaciones de página único en el servidor.
  • Al deshabilitar la mayoría de las asignaciones de página único, se reduce la contención en la página SGAM.
  • Con -T1118 activada, casi todas las asignaciones nuevas se realizan desde un GAM página (por ejemplo, 2: 1: 2) que asigna las páginas de ocho (8) (1 extensión) a la vez a un objeto oposición a una sola página de una extensión para las páginas primero ocho (8) de un objeto, sin el indicador de traza.
  • Las páginas IAM seguir utilizan las asignaciones de página único desde la página SGAM, incluso con -T1118 activada. Sin embargo, cuando se combina con revisión 8.00.0702 y archivos de datos tempdb de mayor, el efecto neto es una reducción de contención en la página SGAM. Para cuestiones de espacio, consulte la sección "Inconvenientes" de este artículo.
Nota Cuando está activado el indicador de traza 1118 para la instancia de SQL Server 2000, no podrá restaurar correctamente una base de datos de SQL Server 7.0. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
837938Puede recibir un mensaje de error cuando intenta restaurar una copia de seguridad de base de datos de SQL Server 7.0 en una instancia de SQL Server 2000

Aumentar el número de archivos de datos tempdb con igual tamaño

Si el tamaño de archivo de datos de tempdb es de 5 GB y el tamaño de archivo de registro es de 5 GB, la recomendación es aumentar el único archivo de datos a 10 (cada uno de 500 MB para mantener un tamaño igual) y dejar el archivo de registro como. Tener los archivos de datos diferentes en discos independientes sería buena. Sin embargo, esto no es necesario y pueden coexistir en el mismo disco.

El número óptimo de los archivos de datos tempdb depende del grado de contención visto en tempdb . Como punto de partida, puede configurar tempdb para que sea al menos igual al número de procesadores asignados para SQL Server. Para los sistemas final superiores (por ejemplo, proc 16 o 32), el número inicial podría ser 10. Si no se reduce la contención, quizás tenga que aumentar el número de archivos de datos más.

Nota Se considera que un procesador dual es dos procesadores.

El igual tamaño de los archivos de datos es esencial porque el algoritmo de relleno proporcional se basa en el tamaño de los archivos. Si se crean archivos de datos con tamaños desiguales, el algoritmo de relleno proporcional intenta utilizar el archivo más grande más para asignaciones de GAM en lugar de propagación de las asignaciones entre todos los archivos, defeating, por lo tanto, la finalidad de crear varios archivos de datos.

Auto-grow de archivos de datos tempdb también pueden interferir con el algoritmo de relleno proporcional. Por lo tanto, puede ser una buena idea desactivar la característica auto-grow para los archivos de datos tempdb . Si está desactivada la opción auto-grow, debe asegurarse de crear los archivos de datos para que sean lo suficientemente grandes para evitar que el servidor experimentando falta de espacio en disco con tempdb .

Cómo aumentar el número de datos tempdb archivos con igual tamaño reduce la contención

Aquí es una lista de cómo aumentar el número de archivos de datos tempdb con igual tamaño reduce la contención:
  • Con datos de un archivo para tempdb , sólo tiene una página GAM y una página SGAM cada 4 GB de espacio.
  • Aumentar el número de archivos de datos con los mismos tamaños de tempdb eficazmente, crea uno o más páginas GAM y SGAM para cada archivo de datos.
  • El algoritmo de asignación para GAM proporciona fuera una extensión a la vez (ocho páginas contiguas) del número de archivos en un modo de operación por turnos mientras teniendo en cuenta el relleno proporcional. Por lo tanto, si tiene 10 archivos de tamaño iguales, la primera asignación es de archivo1, el segundo de archivo2, la tercera de archivo3 y así sucesivamente.
  • Se reduce la contención de recursos de la página PFS debido a que ocho páginas están marcadas como FULL en un momento porque GAM está asignando las páginas.

Desventajas

La única desventaja de las recomendaciones que se ha mencionado anteriormente es que puede ver el tamaño de las bases de datos aumentar cuando se cumplen las condiciones siguientes:
  • Se crean nuevos objetos en una base de datos de usuario.
  • Cada uno de los nuevos objetos ocupan menos de 64 KB de almacenamiento.
Si se cumplen estas condiciones, puede asignar 64 KB (8 páginas * 8 KB = 64 KB) para un objeto que sólo necesita 8 KB de espacio, por lo tanto perder 56 KB de espacio de almacenamiento. Sin embargo, si el nuevo objeto utiliza más de 64 KB (8 páginas) en es duración, no hay ningún inconveniente con el indicador de traza. Por lo tanto, en una situación peor caso, SQL Server puede acabar asignar páginas adicionales de siete (7) durante la primera asignación sólo para objetos nuevos que nunca crecer más allá de la página uno (1).

Referencias

Para obtener más información acerca de GAM, SGAM, PFS y IAM, vea los siguientes temas de libros en pantalla de SQL Server 2000:
  • "Administración de espacio utilizado por objetos"
  • "Administración de las asignaciones y espacio libre"
  • "Tabla y arquitectura de índices"
  • "Estructuras de montón"

Propiedades

Id. de artículo: 328551 - Última revisión: viernes, 13 de marzo de 2009 - Versión: 12.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
Palabras clave: 
kbmt kbhotfixserver kbqfe kbsqlserv2000presp4fix kbfix kbbug KB328551 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): 328551

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