아래와 같은 UserData 라는 테이블이 있습니다
User Type Value Rank
1 101 1
2 101 2
2 102 1
3 101 3
4 101 4
현재 Rank 값이 저장이 안되어있는데
SELECT User, Type, Value, RANK() OVER (Partition By Type Order By Value desc) From UserData
위와 같은 쿼리문으로 Rank 값을 Type 별로 산정하여 랭킹을 매겨
User Type Value Rank
1 101 1 1
2 101 2 2
2 102 1 1
3 101 3 3
4 101 4 4
위와 같은 Rank를 저장하고 싶은데
Update문을 어떻게 써야할지 모르겠습니다
그리고 Rank 를 저장하는 Table을 분리하는게 성능에 나을지 좋은 방법 있으면 부탁드립니다
고수님들의 도움 부탁드립니다
update 구문으로 변경을 하게 되면 문제가 발생할 수 있습니다,,,
일정량 이상 update를 하면 lock escalation이 발생되어 서비스에 문제가 발생할 수 있기 때문입니다,,,
dbo.tRankInfo_01, dbo.tRankInfo_02 테이블로 돌아가면서 사용하는 것을 추천합니다,,,
view 로 제어할 수도 있고, sp에서 현재 어떤 테이블에 랭킹이 적용되었는지 확인해서 분기로 사용할 수도 있습니다,,
그러나 view로 하는 방법은 2012 이하 버전에서는 가급적이면 하지 않는것이 좋을 수 있습니다.
schema modification lock이 발생할 수 있습니다,,,