한 줄에 하나씩 긴 SQL 쿼리로 가득 찬 파일이 있습니다. 고유한 쿼리 목록을 만들어야 하는데 대부분의 쿼리에 매개변수 값이 포함되어 있어 정확한 일치 도구를 사용할 uniq
수 없습니다. 예를 들어, 고유한 줄을 "퍼지"하는 방법이 있습니까 agrep
?
답변1
쿼리가 충분히 예측 가능한 경우 간단히 sed
매개변수 값을 출력할 수도 있습니다. 예를 들어 많은 쿼리에 숫자와의 동일성 비교가 포함된 경우 sed 's/=[[:digit:]]+//g'
실제 숫자는 모두 제거되고 열 이름만 남습니다.
그렇지 않으면 제가 생각할 수 있는 유일한 일반적인 솔루션은 패턴 인식 기술입니다.케이- 가장 가까운 이웃, 유사성을 기반으로 모든 문자열 목록을 클러스터로 분류할 수 있습니다.
답변2
EXPLAIN ANALYZE를 통해 각 쿼리를 실행하고 쿼리 계획에서 고유한 결과를 찾을 수도 있습니다.