Ir para conteúdo
Fórum Script Brasil
  • 0

SQL Server 2000


sunpb

Pergunta

Olá

Utilizo o SQL Server 2000 e preciso fazer a paginação de resultados? Qual é o melhor jeito?

Com tabelas temporárias, usando cursor e FETCH ABSOLUTE para trazer somente os dados necessários, ou fazer com que o aplicativo, no caso o PHP faça o filtro?

O certo não é deixar que o banco de dados faça o serviço?

Obrigada.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Boa tarde,

Prefira sempre que o aplicativo trate os dados. Igual você falou, não deixe que o Banco de Dados faça este serviço. rs.

O problema de temporárias e cursores no Banco é a utilização de processamento e principalmente memória. O MySQL possui a funcionalidade LIMIT para fazer paginação. Mas no SQL Server não há.

Recupere os dados que deseja, passe para o aplicativo e trate os dados nele. :.)

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde Sunpb,

Não entedi... você quer enviar pro aplicativo 50 mil linhas para ele tratar? Se fizer isto, você estará carregando não somente o Banco, mas a banda e a máquina cliente... rs.

Pegue no Banco apenas o que precisar. Se você quiser 15 linhas, faça o script para retornar apenas isto. :.)

Link para o comentário
Compartilhar em outros sites

  • 0

Então.. quero listar as 50 mil linhas, mas paginadas, ou seja, com 15 linhas em cada página.

Para o aplicativo fazer isso, teria que pegar as 50 mil linhas e depois tratar não?

Enquanto usando o código sql, pegaria somente as 15 linhas, mas usando cursor, tabelas temporárias...

Link para o comentário
Compartilhar em outros sites

  • 0

Exatamente. Para o aplicativo fazer isto, teria que pegar todas as linhas...

É... neste caso teria que fazer um teste para ver a melhor alternativa. Falo isto pois deve-se levar em consideração a máquina do cliente, banda, servidor, etc.

Achei muito foi a quantidade de dados a serem paginadas (50 mil linhas). Creio que a melhor alternativa mesmo seria via Banco.

De preferência, não utilize cursor. Crie uma temporária com uma coluna de controle, auto incremental e indexada.

Aí você realiza a paginação utilizando esta coluna.

Lembrando que o peso não estará no processamento, mas no I/O de banco. Depois de ler todas as 50 mil linhas, paginando de 15 em 15, você terá feito 3.333 acessos à Base. :.)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...