Tenho que fazer uma pesquisa no banco de dados usando o like para buscar o nome de determinada pessoa.
Como a tabela em questão tem 190 mil registros e cerca de 40 colunas, todas povoadas, criei uma view com os dados que preciso (codigo e nome) e estou fazendo a consulta usando o like por esta view...
O problema é:
Fiz um sisteminha que le um arquivo txt, pega as informações do arquivo, cria um word e disponibiliza para o usuario, caso a caso.
Este txt tem cerca de 200 linhas, ou seja, 200 nomes para o SQL fazer a consulta.
O like sobrecarrega muito o banco, acaba caindo a excução depois de cerca de 1 minuto.
Tem alguma otimização no sql que posso fazer? Alguma outra forma de fazer esta consulta?
Meu codigo:
Procedure
ALTER PROCEDURE [dbo].[Proc_TbConsulta]
@nome varchar(350)
AS
BEGIN
SET NOCOUNT ON;
SELECT codigo, nome from Vw_TbConsulta
where nome like ''+@nome +'%'
END
View
ALTER VIEW [dbo].[Vw_TbConsulta]
AS
SELECT codigo, nome
FROM dbo.TbConsulta (nolock)
Pergunta
Diego Ronan
Pessoas
Estou com o problema:
Tenho que fazer uma pesquisa no banco de dados usando o like para buscar o nome de determinada pessoa.
Como a tabela em questão tem 190 mil registros e cerca de 40 colunas, todas povoadas, criei uma view com os dados que preciso (codigo e nome) e estou fazendo a consulta usando o like por esta view...
O problema é:
Fiz um sisteminha que le um arquivo txt, pega as informações do arquivo, cria um word e disponibiliza para o usuario, caso a caso.
Este txt tem cerca de 200 linhas, ou seja, 200 nomes para o SQL fazer a consulta.
O like sobrecarrega muito o banco, acaba caindo a excução depois de cerca de 1 minuto.
Tem alguma otimização no sql que posso fazer? Alguma outra forma de fazer esta consulta?
Meu codigo:
Procedure
ViewLink para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
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.