login register Sysop! about ME  

2022년 06월 01일 00시 52분 00초,     조회수 : 291
  제목 : mssql 페이징 + count 관련 성능비교?
SEQ : 164388 글쓴이 : y99happy

작성 포맷 : TEXT 모드, 자동 줄바꿈 사용

아래 ㄱ, ㄴ, ㄷ 중에서 뭐가 효율이 높을까요?
처음에 구글링 해서 ㄷ이 가장 높을 거라고 생각 했고 효율이 가장 낮은건 ㄱ이라고 생각을 했는데
쿼리분석기에서 성능비교 ( 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

  hskim618
  2022-06-02(01:29)
캐릭 이미지
페이징을 위해 count를 해야 해서 count 성능을 향상시키려고 하시는 것 같아요.
그런데 count가 꼭 필요한 지 먼저 생각해 보시는 것이 좋을 것 같아요.

count를 하지 않으면 페이징 성능을 극적으로 좋아지게 만들 수 있어요.
사용자 입장에서도 많은 경우 count 정보가 필요없기도 하구요

  y99happy
  2022-06-02(19:08)
매번 귀한 답변 감사드립니다.


제목 작성자 날짜 조회
mssql 페이징 + count 관련 성능비교? (2) y99happy 2022-06-01 291

 
 
.NET과 Java 동영상 기반의 교육사이트

로딩 중입니다...

서버 프레임워크 지원 : NeoDEEX
based on ASP.NET 3.5
Creative Commons License
{5}
{2} 읽음   :{3} ({4})