A significância do local do cursor
Cada cursor usa recursos temporários para armazenar seus dados. Esses recursos podem ser memória, um arquivo de paginação de disco, arquivos de disco temporários ou até mesmo armazenamento temporário no banco de dados. O cursor é chamado de cursor do lado do cliente quando esses recursos estão localizados no computador do cliente. O cursor é chamado de cursor do lado do servidor quando os recursos estão localizados lá.
Client-Side Cursores
No ADO, chame um cursor do lado do cliente usando o adUseClient CursorLocationEnum. Com um cursor do lado do cliente não associado a um conjunto de chaves, o servidor envia todo o conjunto de resultados através da rede para o computador cliente. O computador cliente fornece e gerencia os recursos temporários necessários para o cursor e o conjunto de resultados. O aplicativo do lado do cliente pode navegar por todo o conjunto de resultados para determinar quais linhas ele requer.
Cursores estáticos e controlados por conjunto de chaves do lado do cliente podem colocar uma carga significativa em sua estação de trabalho se incluirem muitas linhas. Embora todas as bibliotecas de cursores sejam capazes de criar cursores com milhares de linhas, os aplicativos projetados para buscar esses conjuntos de linhas grandes podem ter um desempenho ruim. Há exceções, é claro. Para alguns aplicativos, um cursor grande do lado do cliente pode ser perfeitamente apropriado e o desempenho pode não ser um problema.
Um benefício óbvio do cursor do lado do cliente é a resposta rápida. Depois que o conjunto de resultados tiver sido baixado para o computador cliente, navegar pelas linhas é muito rápido. Seu aplicativo geralmente é mais escalonável com cursores do lado do cliente porque os requisitos de recursos do cursor são colocados em cada cliente separado e não no servidor.
Cursores Server-Side
No ADO, chame um cursor do lado do servidor usando o adUseServer CursorLocationEnum. Com um cursor do lado do servidor, o servidor gerencia o conjunto de resultados usando recursos fornecidos pelo computador do servidor. O cursor do lado do servidor retorna apenas os dados solicitados pela rede. Esse tipo de cursor às vezes pode fornecer melhor desempenho do que o cursor do lado do cliente, especialmente em situações em que o tráfego excessivo de rede é um problema.
No entanto, é importante apontar que um cursor do lado do servidor está , pelo menos temporariamente, consumindo recursos preciosos do servidor para cada cliente ativo. Você deve planejar adequadamente para garantir que o hardware do servidor seja capaz de gerenciar todos os cursores do lado do servidor solicitados por clientes ativos. Além disso, um cursor do lado do servidor pode ser lento porque fornece apenas acesso de linha única – não há nenhum cursor em lote disponível.
Os cursores do lado do servidor são úteis ao inserir, atualizar ou excluir registros. Com cursores do servidor, você pode ter várias instruções ativas na mesma conexão.