2010-08-16 12 views
5

hola intenté una consulta de selección que contiene una combinación externa izquierda en SQL Server CE y su toma de 30 segundos en ejecutarse.
y luego cambié la misma consulta para ser una combinación interna y tarda menos de 1 segundo.
la misma consulta externa es muy rápida en SQL Server 2008.
¿Alguien sabe por qué es eso?
¿Cuál es la solución para este problema de rendimiento?
estoy pensando en 2 consultas que me unen pero no me gusta esta solución realmente causa de la repetición del código.
gracias¿Por qué el rendimiento LEFT OUTER JOIN es malo en SQL Server CE 3.5?

Editar:
otra consulta que tienen mal rendimiento es select * from table where item not in (select item from table2)
muy extraño, pero realmente necesita ser cambiado para exterior izquierdo esta consulta se unen a lo que el rendimiento es fija

+0

¿Cuántas filas hay en la mesa del lado izquierdo de la IZQUIERDA ¿UNIRSE? –

+0

¿Cuál es la consulta, el esquema, etc., por favor? – gbn

+0

hay 3600 filas en 1 tabla y 6400 en el otro – Karim

Respuesta

4

me encontré con el problema
Parece que el servidor SQL CE tiene problemas para optimizar las uniones externas.
Entonces, el problema ocurre donde hay un índice en una tabla y ningún índice en otra.
Ver http://msdn.microsoft.com/en-us/library/ms172984(SQL.100).aspx el "Límite Usando combinaciones externas" parte
La solución fue añadir un índice en la clave externa y el rendimiento se fijó

+0

Aprobar ahora su propia respuesta como correcta – abatishchev

+0

no puedo aprobar mi propia respuesta hasta que hayan transcurrido 2 días :("Puede aceptar su propia respuesta en 2 días (haga clic en esta casilla para cerrar) " – Karim

Cuestiones relacionadas