Uma combinação de uniq e agrep?

2

Eu tenho um arquivo cheio de consultas SQL longas, uma por linha. Eu preciso criar uma lista de consultas exclusivas, mas a maioria das consultas inclui valores de parâmetros que tornam a utilização de uma ferramenta de correspondência exata como uniq impossível. Existe uma maneira de encontrar linhas exclusivas "confusas", como agrep ?

    
por Matt Alexander 29.04.2014 / 13:52

2 respostas

1

Se as consultas forem previsíveis o suficiente, talvez você possa simplesmente sed dos valores dos parâmetros, por exemplo, se muitas consultas contiverem comparação de igualdade com números, sed 's/=[[:digit:]]+//g' removeria todos os números reais, deixando apenas os nomes das colunas.

Caso contrário, as únicas soluções realmente genéricas que consigo pensar são técnicas de reconhecimento de padrões, como k - vizinhos mais próximos , que podem classificar listas arbitrárias de cadeias de caracteres em clusters com base na similaridade.

    
por 29.04.2014 / 17:49
1

Você pode ter sorte em executar todas as consultas através do EXPLAIN ANALYZE e encontrar resultados exclusivos nos planos de consulta.

    
por 30.04.2014 / 14:33