Usuário com melhor resposta
Performance em consulta com filtro utilizando function que remove caracteres de texto

Pergunta
-
Olá pessoal,
Foi criada uma function no SQL Server para remover as tags HTML de um campo de texto. Há pesquisas com LIKE %% sob esse campo e estava trazendo conteúdo das tags HTML, por isso precisamos criar a function.
Porém, após inclur a function e utiliza-la na pesquisa, a consulta ficou muito demorada, inviável utilizar.
Não temos conhecimento sobre pesquisa em texto, índices de texto completo, etc.Alguma sugestão, ou caminho que possamos tomar?
Segue abaixo a function
CREATE FUNCTION [dbo].[udf_StripHTML] (@HTMLText varchar(max)) RETURNS varchar(max) AS BEGIN DECLARE @Start int DECLARE @End int DECLARE @Length int SET @Start = CHARINDEX('<', @HTMLText) SET @End = CHARINDEX('>', @HTMLText, CHARINDEX('<', @HTMLText)) SET @Length = (@End - @Start) + 1 WHILE @Start > 0 AND @End > 0 AND @Length > 0 BEGIN SET @HTMLText = STUFF(@HTMLText, @Start, @Length, '') SET @Start = CHARINDEX('<', @HTMLText) SET @End = CHARINDEX('>', @HTMLText, CHARINDEX('<', @HTMLText)) SET @Length = (@End - @Start) + 1 END RETURN LTRIM(RTRIM(@HTMLText)) END
Julio C.
Respostas
-
Deleted
- Marcado como Resposta Julio Costi terça-feira, 3 de março de 2020 12:47
-
Deleted
- Marcado como Resposta Julio Costi terça-feira, 3 de março de 2020 12:48
Todas as Respostas
-
-
Vamos dar uma olhada.
Quanto ao BD estar conforme as regras do documento XML, isso é um problema. Não temos como garantir isso, mas talvez seja uma boa opção, podemos analisar a possibilidade de trabalhar os textos para que fique correto.
Qualquer tag HTML pode ser utilizada, ou ao menos, não é controlado atualmente (também pode ser pensado em limitar se for o caso, para resolver isso). Como ficou inviável a consulta, a abordagem talvez não fuja de pensar em algo mais abrangente.
Vamos tentar essa inline table-valued.
Obrigado!
Julio C.
- Editado Julio Costi sexta-feira, 7 de fevereiro de 2020 13:43
-
-
-
Sim, foi pensada nessa hipótese de ter outro campo de texto sem as tags, caso não tenha outro jeito que fique viável.
Porém, manter no BD uma segunda coluna de texto (que é um texto grande), não seria o ideal, pensando também que não é apenas este caso, haverão outros (por isso o interesse de tentarmos todas formas possíveis).
Desde já, muito obrigado pela ajuda.
Julio C.
-
Deleted
- Marcado como Resposta Julio Costi terça-feira, 3 de março de 2020 12:47
-
Deleted
- Marcado como Resposta Julio Costi terça-feira, 3 de março de 2020 12:48
-