Revisa los planes
El 17/05/07, Daniel Aisenberg <[EMAIL PROTECTED]> escribió:
Este tema me quedó pendiente de solucionar. Zafé del mismo pero usando
IN en lugar del NOT IN. Pero la tardanza del NOT IN no me parece normal
y me gustaría saber a qué se debe.
Alguien podría reproducir el problema a ver si le ocurre o alguna vez le
ocurrió?.
Las tablas fueron restauradas desde otro servidor, pero los índices
fueron regenerados. Además, con el IN funciona relativamente bien, y de
todas maneras, estimo que por el tipo de consulta, no deberia usar el
índice.
Digo esto ultimo porque tengo que copiar una tabla entera de unos 6,5
millones de filas, menos un conjunto de claves, que son mucho menos del
20% de la tabla (aprox.10%). Es decir, por lógica debería recorrerse
toda la tabla.
Gracias
-----Mensaje original-----
De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de
[EMAIL PROTECTED]
Enviado el: Miércoles, 16 de Mayo de 2007 09:31 p.m.
Para: Daniel Aisenberg
Asunto: [dbms] consulta en sql2005 no anda bien
La tabla B tiene indice de Clave.
Puede que sea un poco más lentoque el óptimo. Pero te digo que se meva
mas allá de los 3 o 4 o 5 minutos, cuando la copia simple de la tabla
tarda 40 segundos.
Por eso,creo que debe haber alguna cosa rara.
Lo del servidor, si, cambié de servidor, pero los índices los creé de
nuevo en el nuevo servidor.
Además corrí por las dudas "update statistics A" para la tabla A, en
base a lo que me decís,pero no sé si es suficiente.
Sigue tardando muchísimo
-----Original Message-----
From: "Maxi Accotto" <[EMAIL PROTECTED]>
To: "Daniel Aisenberg" <[EMAIL PROTECTED]>
Date: Wed, 16 May 2007 21:19:31 -0300
Subject: [dbms] consulta en sql2005 no anda bien
Hola, con esa sola informacion no es suficiente, compara los distintos
planes de ejecucion, fijate el tema de indices, el tema de
estadistocas, has cambiado de servidor?
-----------------------------------------------------------
Microsoft MVP en SQL Server
Mentor asociado en SQLTotalConsulting
(excelencia en servicios y consultoria SQLServer)
Orador Culminis - Microsoft Influencier
www.sqltotalconsulting.com
-----------------------------------------------------------
El 16/05/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]>
escribió:
> en 2000 tenia:
>
> select a.* into dbo.Resultado from tabla1 a where clave not in (select
clave
> from tabla2 )
> y tardaba menos de un minuto y pico para 6 o 7 millones de filas.
>
> en 2005... es eterno...!!!**
>
> Alguien sabe qué es lo que puede estar pasando?, parece no funcionar
la
> cláusula "not in"
>
> Pero ya probé también:
> select a.*
> into dbo.Resultado
> from dbo.Tabla1 a
> left join dbo.Tabla2 b
> on a.clave = b.clave
> where b.clave is null
>
> Tampoco funciona..
>
> Como verán, trato de copiar los elementos contenidos en A y que no
estén en
> B. Tan simple como eso.
>
> Cuando hago la copia directa como sigue:
> select a.* into dbo.Resultado from dbo.Tabla1
> tarda 40 segundos para 7 millones de registros
>
> Por favor, alguna clave para solucionar este tema. Se agradece.
>
>
>
--
--
-----------------------------------------------------------
Microsoft MVP en SQL Server
Mentor asociado en SQLTotalConsulting
(excelencia en servicios y consultoria SQLServer)
Orador Culminis - Microsoft Influencier
www.sqltotalconsulting.com
-----------------------------------------------------------