데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안녕하세요 현재 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'
위와 같이 시간조건을 걸어 그 시간내에 해당 단어를 포함하고 있는 텍스트를 추출하고자 합니다.
비교하는데 있어 시간이 많이 걸리고 성능이 너무 좋지 않더라고요ㅜㅜ
감사합니다.