아래 ㄱ, ㄴ, ㄷ 중에서 뭐가 효율이 높을까요?
처음에 구글링 해서 ㄷ이 가장 높을 거라고 생각 했고 효율이 가장 낮은건 ㄱ이라고 생각을 했는데
쿼리분석기에서 성능비교 ( ctrl + l ) 해보니
(ㄱ:25%) (ㄴ:41%) (ㄷ:34%) 로 효율이 ㄱ이 가장좋더라고요
ㄱ으로 선택하는 것이 맞을까요? (성능 분석기를 통해서 비용이 가장 적은 놈을 선택해서 하는것이 맞는건가요?)
ㄱ) Count(*) Over() As TotalCount 로 카운트를 가져옴
With As TB_TMP (
Select ROW_NUMBER() Over (Order By insertdate) As RowNum,
, Count(*) Over() As TotalCount
* From TB_TABLE
) Select * From TB_TMP WHERE RowNum Between x And y
ㄴ) Max(RowNum)로 카운트를 가져옴
With As TB_TMP (
Select ROW_NUMBER() Over (Order By insertdate) As RowNum, * From TB_TABLE
) Select *, (Select Max(RowNum) From TB_TMP) As TotalCount From TB_TMP WHERE RowNum Between x And
y
ㄷ) Select Count(*)로 카운트를 가져옴
With As TB_TMP (
Select ROW_NUMBER() Over (Order By insertdate) As RowNum, * From TB_TABLE
) Select *, (Select Count(*) From TB_TMP) As TotalCount From TB_TMP WHERE RowNum Between x And y
[참고URL] https://m.blog.naver.com/monkeychoi/220629982940