안녕하세요 현재 MSSQL SQL Server를 사용하고 있는 사람입니다.
다름이 아니라 현재 추출해야될 리스트가 있는데 특정 단어를 포함하고 있는 텍스트입니다.
하지만 특정 단어 건수는 20000개가 넘으며 그 단어를 담고 있는 테이블로부터 LIKE 조건절을 걸어 추출하고자합니다.
조회하고자 하는 텍스트 건수도 만건이넘으니 이 둘을 조인해서 하니 성능상 큰 문제가 있는거 같아 이곳에 질문드립니다.
쿼리는 이렇게 짜봤는데 LIKE 절을 통해 혹시 개선 가능한 방법을 알고 계신분 있을까요?
SELECT [텍스트 테이블] .[텍스트 입력 시간] --# 시간일자
, [텍스트 테이블].[키값] --# 키값
, [텍스트 테이블] .[텍스트내용]
FROM [단어테이블 ] --# 데이터 2만건
JOIN [텍스트 테이블]
ON [텍스트 테이블] .Message LIKE '%' + [단어테이블].[단어명] + '%'
WHERE [텍스트 테이블] .[텍스트 입력 시간] >= '2020-10-20 10:00:00'
AND [텍스트 테이블] .[텍스트 입력 시간] < '2020-10-22 11:00:00'
위와 같이 시간조건을 걸어 그 시간내에 해당 단어를 포함하고 있는 텍스트를 추출하고자 합니다.
비교하는데 있어 시간이 많이 걸리고 성능이 너무 좋지 않더라고요ㅜㅜ
감사합니다.