사이베이스 DBA가 rowcount, top 에 성능차이가 있따고
rowcount 를 top 으로 바꾸라고 했습니다.
저는 이말을 듣고 이해가 안가는데...
한국사이베이스 홈피에 가보면은 페이징 처리를 rowcount 했는데
정말 성능상에 차이가 있나요?
글쎄요...
차이가 있다고 하면....
아마 set rowcount는 전체를 수행하고...몇개만 가지고 오고
top은 전체를 수행하지 않고 몇개만 수행을 할까요?
실제 그런것 같지는 않은데요.....
rowcount로 한경우
Parse and Compile Time 0. SQL Server cpu time: 0 ms.Table: scan count 1, logical reads: (regular=91 apf=0 total=91), physical reads: (regular=0 apf=0 total=0), apf IOs used=0 Total writes for this command: 0 Execution Time 0. SQL Server cpu time: 0 ms. SQL Server elapsed time: 3 ms.
top으로 한경우
Parse and Compile Time 0. SQL Server cpu time: 0 ms.Table: scan count 1, logical reads: (regular=91 apf=0 total=91), physical reads: (regular=0 apf=0 total=0), apf IOs used=0 Total writes for this command: 0 Execution Time 0. SQL Server cpu time: 0 ms. SQL Server elapsed time: 76 ms.
실제 IO는 똑같이 발생하지만
elapsed time은 3ms와 76ms로
미묘하긴 하지만 rowount로 한것이 더 빠르네요......