REVISIÓN: Algunas consultas que tienen una combinación externa izquierda y un filtro IS NULL que se ejecuta más lentamente después de instalar hotfix de posteriores de SQL Server 2000

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): 830887
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Nº de error: SHILOH_BUGS (470434)
Síntomas
Una consulta puede ejecutarse más lentamente contra la revisión de 2000 posterior-SP3 de Microsoft SQL Server generación 8.00.0776 o posterior cuando se compara con consultas que ejecución frente a SQL Server 2000 antes de la revisión generación 8.00.0776, si se cumplen las condiciones siguientes:
  • La consulta implica una combinación externa izquierda de dos tablas. En el ejemplo siguiente, tabla 1 es la tabla izquierda y tabla 2 es la tabla derecha.
  • Existe una condición de filtro IS NULL en una columna para la tabla derecha (tabla 2).
  • Las columnas de combinación tienen distintos tipos de datos. Una columna es de tipo char o varchar y la otra columna es de tipo nchar o nvarchar .
  • Muy pocos de las filas del resultado de consulta cumplen la condición ON de la combinación externa.
Por ejemplo, puede ejecutar una consulta que contiene la condición de combinación y el filtro siguiente más lenta:
t1 left outer join t2 on t1.c1 = t2.c1 where t2.c1 is null --t1.c1 is of type nvarchar and t2.c1 is of type varchar
Causa
Este problema se produce porque el optimizador de SQL Server subestima el número de filas que satisface la condición de filtro IS NULL tras la combinación.
Solución
Para evitar este problema, asegúrese de que las columnas de combinación son del mismo tipo de datos.
Solución

Información de Service Pack

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:
290211Cómo obtener el Service Pack más reciente de SQL Server 2000

Información de revisiones

La versión en inglés de este hotfix tiene los atributos de archivo enumerados en la siguiente tabla u otros posteriores. Las fechas y horas de estos archivos aparecen en la 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 de la herramienta fecha y hora en el panel de control.
   Date         Time   Version            Size    File name   --------------------------------------------------------------------   31-May-2003  16:45  2000.80.818.0      78,400  Console.exe         28-Oct-2003  02:21  2000.80.873.0     315,968  Custtask.dll        02-Oct-2003  18:59  2000.80.867.0      33,340  Dbmslpcn.dll        25-Apr-2003  00:12                    786,432  Distmdl.ldf   25-Apr-2003  00:12                  2,359,296  Distmdl.mdf   29-Jan-2003  23:55                        180  Drop_repl_hotfix.sql   12-Sep-2003  01:26  2000.80.859.0   1,905,216  Dtspkg.dll          26-Aug-2003  18:16  2000.80.854.0     528,960  Dtspump.dll         23-Jun-2003  20:40  2000.80.837.0   1,557,052  Dtsui.dll           23-Jun-2003  20:40  2000.80.837.0     639,552  Dtswiz.dll          24-Apr-2003  00:51                    747,927  Instdist.sql   02-May-2003  23:56                      1,581  Inst_repl_hotfix.sql   08-Feb-2003  04:40  2000.80.765.0      90,692  Msgprox.dll         01-Apr-2003  00:07                      1,873  Odsole.sql   04-Apr-2003  23:46  2000.80.800.0      62,024  Odsole70.dll        07-May-2003  18:41  2000.80.819.0      25,144  Opends60.dll        02-Apr-2003  19:48  2000.80.796.0      57,904  Osql.exe            02-Apr-2003  21:15  2000.80.797.0     279,104  Pfutil80.dll        04-Aug-2003  16:17                    550,780  Procsyst.sql   11-Sep-2003  22:37                     12,305  Qfe469315.sql   22-May-2003  20:57                     19,195  Qfe469571.sql   05-Sep-2003  23:36                  1,090,932  Replmerg.sql   06-Sep-2003  05:18  2000.80.858.0     221,768  Replprov.dll        06-Sep-2003  05:18  2000.80.858.0     307,784  Replrec.dll         05-Sep-2003  22:00                  1,087,150  Replsys.sql   13-Aug-2003  14:28                    986,603  Repltran.sql   21-Oct-2003  22:08  2000.80.871.0      57,916  Semnt.dll           29-Jul-2003  18:13  2000.80.819.0     492,096  Semobj.dll          31-May-2003  16:27  2000.80.818.0     172,032  Semobj.rll   05-Aug-2003  19:06                    127,884  Sp3_serv_uni.sql   31-May-2003  23:01  2000.80.818.0   4,215,360  Sqldmo.dll          07-Apr-2003  15:44                     25,172  Sqldumper.exe       19-Mar-2003  16:20  2000.80.789.0      28,672  Sqlevn70.rll   27-Sep-2003  02:42  2000.80.865.0     180,792  Sqlmap70.dll        03-Sep-2003  00:56  2000.80.857.0     188,992  Sqlmmc.dll          02-Sep-2003  21:03  2000.80.857.0     479,232  Sqlmmc.rll   21-Oct-2003  22:08  2000.80.871.0     401,984  Sqlqry.dll          08-Feb-2003  04:40  2000.80.765.0      57,920  Sqlrepss.dll        28-Oct-2003  02:21  2000.80.873.0   7,606,353  Sqlservr.exe        25-Jul-2003  19:44  2000.80.845.0     590,396  Sqlsort.dll         08-Feb-2003  04:40  2000.80.765.0      45,644  Sqlvdi.dll          02-Oct-2003  18:59  2000.80.867.0      33,340  Ssmslpcn.dll        31-May-2003  23:01  2000.80.818.0      82,492  Ssnetlib.dll        31-May-2003  23:01  2000.80.818.0      25,148  Ssnmpn70.dll        28-Oct-2003  02:21  2000.80.873.0     123,456  Stardds.dll         31-May-2003  23:01  2000.80.818.0     158,240  Svrnetcn.dll        31-May-2003  16:59  2000.80.818.0      76,416  Svrnetcn.exe        30-Apr-2003  21:52  2000.80.816.0      45,132  Ums.dll             01-Jul-2003  22:19  2000.80.834.0      98,816  Xpweb70.dll      
Nota Debido a la interdependencia entre archivos, el más reciente revisión o característica que contiene estos archivos quizás contenga también archivos adicionales.
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
Después de instalar la revisión que se describe en este artículo, debe asegurarse de que indicador de traza 9209 está activado cuando se inicia SQL Server. Para que esta corrección para surta efecto, debe tener el indicador de traza 9209 activado cuando inicie SQL Server. Para ello, siga estos pasos:
  1. Inicie el Administrador corporativo SQL Server.
  2. Haga clic con el botón secundario en la instancia de SQL Server y, a continuación, haga clic en Propiedades .
  3. Haga clic en la ficha General y, a continuación, haga clic en Parámetros de inicio .
  4. En el cuadro de diálogo Parámetros de inicio , escriba -T9209 en el cuadro parámetro , haga clic en Agregar y, a continuación, haga clic en Aceptar .
  5. En el cuadro de diálogo Propiedades de , haga clic en Aceptar .
  6. Reinicie SQL Server.

Tipo de datos conversiones (en este caso, cuando una columna nchar o nvarchar se compara a una columna char o varchar ) en una columna en una consulta puede tener un efecto adverso sobre el rendimiento de la consulta, y es una buena idea evitar hacerlo si puede. Si utiliza conversiones de tipos de datos, SQL Server no podrá generar con precisión las estimaciones de cardinalidad. SQL Server también pueden estar restringidos del uso de los índices adecuados. Para obtener información adicional acerca de conversiones de tipos de datos, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
271566PRB: Las comparaciones SQL Server entre columnas y constantes con distintos tipos de datos

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 830887 - Última revisión: 01/17/2015 05:26:54 - Revisión: 5.3

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

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB830887 KbMtes
Comentarios