Performance does matter…

Estava a persistir numa base de dados em SQL Compact 3.5 num equipamento Windows Mobile 2003SE cerca de 250 registos (40 colunas) numa tabela e 5700 registos noutra tabela (4 colunas), obtidos de um webservice. A operação estava a tomar cerca de 70 segundos para a 1ª tabela e 60 segundos para a 2ª, o que me pareceu tempo a mais, ainda que estivesse a utilizar comandos preparados, com os tipos de dados e respectivos comprimentos definidos para cada parâmetro.

Fui fazendo umas alterações, removendo índices, ‘foreign keys’, mas as poucas melhorias não me convenciam, até que me lembrei de utilizar o SqlCeResultSet, sobre um comando do tipo TableDirect, e passei a inserir a mesma informação em… 10 SEGUNDOS, repartidos por um segundo e meio para os 250 registos e 8 segundos e meio para os 5700!!!

Fica a dica!!!

4 thoughts on “Performance does matter…”

  1. É bem provável, o objecto SqlCeResultSet existe desde o SQL Server Compact 3.0… de todo o modo o que surpreende neste caso é a grandeza da diferença quando comparado com comandos preparados! O facto de utilizar TableDirect em vez de CommandText também deve ajudar à performance.

  2. Viva,

    Já que estamos a falar de performance, acho ser importante dizer que se estivermos a comunicar com o servidor para ir buscar dados à base de dados via web services, se usarmos o objecto SharpZipLib também reduzimos o tempo da operação.

  3. Olá Joaquim,
    Obrigado pela dica, em ligações remotas o tempo necessário à compressão/descompressão é mais do que compensado pela redução no tempo de comunicação e eventual poupança no custo da comunicação.
    A partir da .NET CF 3.5, o HTTP Compression passa a ser suportado de forma transparente, não sendo necessário ‘explicitamente’ proceder à descompressão da resposta.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>