-
[MSSQL] 특정 테이블의 전체 행수 가져오기(Row count)개발(프로그래밍)/SQL(RDBMS) 2020. 4. 5. 15:591234select si.id, si.rows, si.*from sysindexes siwhere and si.indid < 2 -- indexid = 0 : 힙, indexid = 1 : 클러스터and si.id = OBJECT_ID('dbo.tbl_sample');
cs 개발 중 내가 모르는 테이블의 데이터를 파악해야 할 때가 있다.
데이터 파악을 위해 조회를 해야 하는데, 전체 레코드 수가 억 단위로 넘어가는 테이블이라면
대충날린 내 쿼리 하나에 서버 부하가 일어날 수도 있는 법이다.
... 애초에 이정도 규모라면 모니터링 되고 있겠지만
아무튼 나는 처음 보는 테이블이 있다면 항상 테이블의 행수(Row)부터 확인한다.
sysindexes에 대해 정확하게 아는 게 아니라는 점이 가장 큰 맹점인데...
sysindexes는 DB 데이터 변화에 따라 시스템에서 실시간 업데이트 하는 Index일 것이며,
sysindexes 관련 데이터가 변경되는 과정에서 위 쿼리를 실행했을 때는
정확한 행의 수를 못받을 수도 있을 것 같다는 예상을 조심스럽게 해본다.
어차피 정확한 건수가 필요한 게 아니라, 테이블의 데이터가 많냐 적냐를 확인하기 위한 쿼리기 때문에
원래 목적에는 부합하는 쿼리이다.
sysindexes에 대한 MS 공식 레퍼런스 문서
'개발(프로그래밍) > SQL(RDBMS)' 카테고리의 다른 글
[MSSQL] 특정 테이블을 포함하는 SP, 함수 찾기, SP, 함수의 내용 검색 (7) 2020.04.07 [MSSQL] SQL Server DB서버 구축 및 SSMS 18 설치 (0) 2020.04.05