Diferenças de performance entre SSCE 2.0 e 3.1 para a mesma instrução

Published Mon, Jun 18 2007 13:29 | Alberto Silva

Ao converter uma aplicação de .NET CF 1.0 com base de dados em SQL CE 2.0 para .NET CF 2.0 com SQL CE 3.1, constatei que uma instrução SQL que demorava poucos segundos, passou a demorar quase 30 segundos a ser executada!

A instrução em causa relacionava 3 tabelas, e estava 'optimizada' para SSCE 2.0, ou seja, em vez de JOINs explícitos, relacionava as tabelas na cláusula WHERE, algo como...

SELECT t1.c1, t1.c2
FROM t1, t2, t3
WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1

Bastou mudá-la para...

SELECT t1.c1, t1.c2
FROM t1 LEFT JOIN t2 ON t1.c1 = t2.c1 LEFT JOIN  t3 ON t2.c1 = t3.c1

...para que de quase 30 segundos passasse a ser executada em menos de 5 segundos!

Quem não utilizou SSCE 2.0, logo à partida escolheria esta segunda instrução, mas para os restantes, ao converterem aplicações em .NET CF 1.0 para .NET CF 2.0 vale a pena reverem as V/ instruções SELECT no sentido de procederem a esta modificação!

Comments

# Simao said on June 20, 2007 8:51 AM:

olá Alberto,

por acaso acontece-me o mesmo nalgumas queries mas em WinForms com o SQL Express. Existe alguma ferramenta que nos facilita a optimização das queries ou só mesmo testando as mais criticas e comparamos o tempo que demora cada uma.

# Bruno Cunha e Silva said on June 22, 2007 2:02 PM:

Grande dica...

# Bruno Cunha e Silva said on June 25, 2007 3:41 AM:

O meu comentário saíu com a pontuação errada. :) É mesmo uma grande dica! Daquelas que se anda a questionar durante horas\dias, para depois se aperceber que que era algo simples...

Leave a Comment

Name:  
Website:
If you can't read this number refresh your screen
Enter the numbers above:  

Search

This Blog

Tags

Community

Archives

News

  • Você escolheu um software de gestão que se adapta ao seu negócio... Porque há-de deixar que lhe imponham uma solução de mobilidade para as suas forças de venda? Contacte a moving2u e teremos todo o prazer em lhe apresentar as nossas soluções!


    Grab this badge here!

Eventos

Desenvolvimento .net CF

Mobilidade em Português...

Sobre mim...

Syndication

Email Notifications