SELECT A.*
FROM [dbo].[BOARD_MAIN] A WITH(NOLOCK)
, [dbo].[BOARD_TITLE] B WITH(NOLOCK)
WHERE A.board_no = @i_board_no
AND A.board_sn = B.board_sn
AND A.write_no = B.write_no
AND A.open_tag = 'Y'
AND B.title = @i_title
B테이블은 A테이블의 타이틀만 저장하고있습니다 1:N 테이블입니다.
다음과 같은 쿼리인데 대용량 커뮤니티에 사용할거라 성능이 중요합니다.
B테이블을 먼저 검색하고 임시테이블을 조인하는게 좋은가요?
아니면 더좋은 방법이있을지요?
Comment 4
-
항해자™
2016.10.17 13:48
-
독고탁11
2016.10.17 14:01
ansi join으로 하는게 성능에도 영향이있을까요?
-
항해자™
2016.10.17 15:09
성능과는 무관하며, 가독성과 호환성, 확장성에 유리하겠네요~
조인의 종류에 따라서 위의 형태는 지원되지 않기도 합니다,,,
-
항해자™
2016.10.17 15:11
select a.* from dbo.board_main as a with(nolock) inner join dbo.board_title as b with(nolock) on a.board_sn = b.board_sn and a.write_no = b.write_no where a.board_no = @i_board_no and a.open_tag = 'Y' and b.title = @i_title
추가로 조인은 ansi 형태로 변경하심이 어떠실지,,,
차후에 마이그레이션이라도 하면 일이 커질 수 있습니다,,,