데이터베이스에서 영화관 정보를 가져 오기 위해 SQL (Sybase) 쿼리를 작성하려고합니다. 아래 쿼리를 실행하면 쿼리가 계속 실행됩니다. 결국 5 분 정도 지나면 그냥 중단합니다. 나쁜/불법 SQL은 없다. 단지 이 느리다.! 이 SQL 문이 병목 현상을 일으키는 위치는 어디입니까?
SELECT
TM.type_prefix +
right('00000000' + convert(varchar, TM.showing_id), 8) +
right('0000' + convert(varchar, TM.theatre_id), 4) as data_id
FROM
theatre_times..theatre_mappings TM,
theatres..region_codes RC,
title_summaries..movie_summary MS
WHERE
TM.scheme_id = 512 AND
RC.region_code_id = MS.region_code_id
내가 틀리거나 비효율적으로하고있어 분명 아무것도
이 있다면 난 그냥 궁금 해서요, 쿼리에 사용 된 테이블 이름 또는 로직에 대해 걱정하지 마십시오. 여기에 수는 세 테이블에 있습니다 : 사전에
theatre_mappings
= 2094163region_codes
= 11140348movie_summary
= 6437782 개
감사합니다!
당신은 (INNER가 RC.region_code_id = MS.region_code_id ON 밀리 가입 RC)이 ...'TM 크로스가 가입이를'정말인가요 옳은? 아니면'tm'을'rc'에,'tm'을'ms'에 조인하는데 사용해야하는 필드가 있습니까? 또한, 명시 적'JOIN' 구문을 사용하면 이러한 실수를하기가 훨씬 더 어려워진다. * (실제로, ** ** 실수입니다.) * – MatBailie