Partilhar via


Trabalhar com declarações e conjuntos de resultados

Baixar driver JDBC

Quando trabalha com o Microsoft JDBC Driver para SQL Server e os objetos Statement e ResultSet que ele fornece, existem várias técnicas que pode usar para melhorar o desempenho e a fiabilidade das suas aplicações.

Utilize o objeto de comando apropriado

Quando usar um dos objetos Statement do driver JDBC, como o SQLServerStatement, SQLServerPreparedStatement ou o objeto SQLServerCallableStatement , certifique-se de que está a usar o objeto apropriado para o trabalho.

  • Se não tiver parâmetros OUT, não precisa de usar o objeto SQLServerCallableStatement. Em vez disso, use o SQLServerStatement ou o objeto SQLServerPreparedStatement.
  • Se não pretende executar a instrução mais do que uma vez, ou não tiver parâmetros IN ou OUT, não precisa de usar o SQLServerCallableStatement nem o objeto SQLServerPreparedStatement. Em vez disso, use o objeto SQLServerStatement.

Usar a concorrência apropriada para objetos ResultSet

Não peça concorrência atualizável quando cria instruções que produzem conjuntos de resultados, a menos que pretenda realmente atualizar os resultados. O modelo padrão de cursor de avanço único, de leitura única, é o mais rápido para ler pequenos conjuntos de resultados.

Limite o tamanho dos seus conjuntos de resultados

Considere usar o método setMaxRows (ou SET ROWCOUNT ou SELECT TOP N SQL) para limitar o número de linhas devolvidas de conjuntos de resultados potencialmente grandes. Se tiver de lidar com grandes conjuntos de resultados, considere usar um buffer de resposta adaptativo com a cadeia de ligação definida como responseBuffering=adaptive, que é o modo predefinido. Esta abordagem permite à aplicação processar grandes conjuntos de resultados sem necessitar dos cursores do lado do servidor e minimiza o uso de memória da aplicação. Para mais informações, consulte Utilização do buffering adaptativo.

Use o tamanho adequado de busca

Para os cursores de servidor apenas de leitura, a troca é viagens de ida e volta ao servidor versus a quantidade de memória usada no driver. Para cursores de servidor atualizáveis, o tamanho da recolha também influencia a sensibilidade do conjunto de resultados a alterações e simultaneidade no servidor. As atualizações das linhas dentro do buffer de busca atual não são visíveis até que seja emitido um método explícito de refreshRow ou até que o cursor saia do buffer de busca. Buffers de busca grandes terão melhor desempenho (menos viagens de ida e volta ao servidor), mas são menos sensíveis a alterações e reduzem a concorrência no servidor se for usado CONCUR_SS_SCROLL_LOCKS (1009). Para máxima sensibilidade às alterações, use um tamanho de busca de 1. No entanto, esta definição implica uma ida e volta ao servidor por cada linha obtida.

Usar fluxos para grandes parâmetros IN

Use fluxos ou BLOBs e CLOBs que sejam materializados incrementalmente para lidar com a atualização de grandes valores de colunas ou o envio de grandes parâmetros IN. O driver JDBC "fragmenta" estes tipos para o servidor em múltiplas viagens de ida e volta, permitindo-te definir e atualizar valores maiores do que os que cabem na memória.

Consulte também

Melhorar o desempenho e a confiabilidade com o driver JDBC