Usuário com melhor resposta
Query com WHILE demorando para ser executada

Pergunta
-
Estou com um problema na query abaixo, a mesma demora para executar, porém se ao invés de usar select eu usar o PRINT a mesma retornar o resultado em menos de 1 segundo
DECLARE @Counter Int,@TESTE INT,
@IDTEMPO int
SET @IDTEMPO = 1
SET @TESTE = 400
SET @Counter = 1
WHILE @Counter <= @TESTE
BEGIN
SELECT @IDTEMPO
SET @Counter = @Counter + 1
END
Respostas
-
Bom Dia,
Não creio que essa seja a melhor forma de providenciar etiquetas. A geração de 2000 resultsets será lenta para qualquer um processar (seja o SSMS, seja uma aplicação em .NET ou um serviço em Java). Aplicações profissionais de etiquetas não geram um resultset para cada etiqueta, mas fazem a consulta dos dados uma única vez e imprimem em tela segmentado por etiquetas.
O Reporting Services seria muito útil para fazer algo nesse sentido. Opcionalmente você pode usar o WORD para gerar as etiquetas com base em um cadastro no SQL Server (ou exportar do SQL Server para outro formato como Access ou Excel e consumir a partir do Word).
[ ]s,
Gustavo Maia Aguiar
Blog: http://gustavomaiaaguiar.wordpress.com
Vídeos:http://www.youtube.com/user/gmasqlClassifique as respostas. O seu feedback é imprescindível
- Marcado como Resposta linoba segunda-feira, 20 de agosto de 2012 17:00
Todas as Respostas
-
Bom Dia,
A exibição de cada valor em GRID certamente é mais lenta que a exibição em texto. Não porque a query é lenta, mas porque a ferramenta (possivelmente o SSMS) é lenta na exibição, afinal são 400 resultsets. Qual o propósito de exibir 400 resultsets ?
[ ]s,
Gustavo Maia Aguiar
Blog: http://gustavomaiaaguiar.wordpress.com
Vídeos:http://www.youtube.com/user/gmasqlClassifique as respostas. O seu feedback é imprescindível
- Sugerido como Resposta Gustavo Maia Aguiar segunda-feira, 20 de agosto de 2012 12:10
-
-
Esse select é apenas para exemplificar a situação, mas eu preciso usar algo semelhante para usar em impressão de etiquetas, no caso o usuario iria informar a quantidade.... por isso utilizei 400, sendo que na verdade eu precisaria de 2 mil pra cima
Att
-
Bom Dia,
Não creio que essa seja a melhor forma de providenciar etiquetas. A geração de 2000 resultsets será lenta para qualquer um processar (seja o SSMS, seja uma aplicação em .NET ou um serviço em Java). Aplicações profissionais de etiquetas não geram um resultset para cada etiqueta, mas fazem a consulta dos dados uma única vez e imprimem em tela segmentado por etiquetas.
O Reporting Services seria muito útil para fazer algo nesse sentido. Opcionalmente você pode usar o WORD para gerar as etiquetas com base em um cadastro no SQL Server (ou exportar do SQL Server para outro formato como Access ou Excel e consumir a partir do Word).
[ ]s,
Gustavo Maia Aguiar
Blog: http://gustavomaiaaguiar.wordpress.com
Vídeos:http://www.youtube.com/user/gmasqlClassifique as respostas. O seu feedback é imprescindível
- Marcado como Resposta linoba segunda-feira, 20 de agosto de 2012 17:00