+5 votos
72 visitas

Estou utilizando as propriedades MaximumRows e StartRowIndex da class Benner.Tecnologia.Common.Criteria para delimitar respectivamente o número máximo de registros e o registro inicial da consultas realizadas.

Essas propriedades alteram o SQL gerado para o banco de dados ou são tratadas em memória pelo próprio BEF?

por (230 pontos) | 72 visitas

1 Resposta

+2 votos
Melhor resposta

São tratadas em memória.

Nós não fazemos nenhuma alteração no comando SQL ao configurar estas proprieades. Apenas limitamos o número de registros retornados. No caso da MaximumRows, são feitos Reads no DataReader até atingir o numero de registros especificado. Não são carregados em memória os registros excedentes.

por (865 pontos)
selecionada por
Como alternativa, é possível utilizar o comando SQL OFFSET-FETCH no SQL Server 2012 (http://technet.microsoft.com/pt-br/library/gg699618(v=sql.110).aspx)
Anotei esta sugestão no nosso backlog. Obrigado.
O OFFSET e FETCH também são suportados em Oracle. Nas versões anteriores do SQL não são suportados, mas existe a opção de fazer com sub-select:

SELECT *
  FROM (SELECT ROW_NUMBER() OVER (ORDER BY E.HANDLE) POSICAO,
               E. *
          FROM ESTADOS E) AS TABELA
  WHERE POSICAO > 10 AND POSICAO <= 20

Obs.: Esta opção aumenta o custo de processamento no banco de dados. Em tabelas com muitos registros pode ser lento caso não hajam filtros.

Perguntas relacionadas

+5 votos
1 resposta
perguntado 20 Fev, 2015 por rodolfo.dias (22 pontos) | 147 visitas
+7 votos
1 resposta
perguntado 7 Mai, 2014 por Rafael Leonhardt (255 pontos) | 104 visitas
+9 votos
1 resposta
Melhores Aug 2025
  1. RheaIoi8215

    5 Pontos

  2. RositaLansel

    5 Pontos

  3. MilesWeston

    5 Pontos

  4. RoseannViera

    5 Pontos

  5. DianaNickel

    5 Pontos

  6. KandiGower0

    5 Pontos

200 pontos
Melhores 2025 Aug 18 - 24
  1. Larson

    156 Pontos

  2. danilo.pereira

    96 Pontos

  3. danilo.pereira

    96 Pontos

  4. danilo.pereira

    96 Pontos

  5. luciano.fronza

    61 Pontos

  6. luciano.fronza

    61 Pontos

  7. luciano.fronza

    61 Pontos

  8. diuari.molinari

    52 Pontos

  9. diuari.molinari

    51 Pontos

  10. diuari.molinari

    51 Pontos

517 perguntas
566 respostas
389 comentários
710 usuários