본문 바로가기

oracle2

[DB][Oracle][SQL] 분석함수 NTILE - 검색결과 분할, 분위수함수 오라클 분석함수중 NTILE 함수는 파티션별로 expr에 명시된 값만큼 분할한 결과를 반환한다. 좀 있어보이게 이야기하면 지정된 분위수를 계산하는 함수. 예를 들어 조건에 따른 검색 결과로 반환되는 로우 수가 5이고 NITLE(5)라고 명시하면 정렬된 순서에 따라 1에서 5까지 숫자를 반환한다. 즉 결과를 5개로 분리한다는 것인 데 여기서 분할하는 수를 버킷 수라고 한다. 여기서 말하는 버킷(bucket)은 우리가 흔히 바케스라고 하는 일본식 발음표현의 그것이나 버킷리스트의 그 버킷과 같다. 즉 지정된 수 만큼의 양동이에 검색 결과를 나눠 담는 함수라 생각하면 된다. 아래 쿼리를 보면 년월일 8자리로 된 reqseq라는 컬럼을 가진 30개의 로우가 있다. 이를 NTILE(5)를 사용하게 되면 reqseq.. 2019. 12. 26.
[DB][Oracle] SID? SERVICE NAME? 1. SID? Service Name? 쉽게 설명하자면... SID -> 독자적인 서비스가 가는한 DB 인스턴스 하나 Service Name -> 여러 인스턴스를 묶어 하나의 서비스 단위로 구성한 것 2. Why? 로컬의 개발이나 테스트 환경이야 DB 인스턴스 하나면 떡을 치지만 운영환경의 경우 통상적으로 Oracle RAC 구성을 통한 HA 구성을 하게 마련인데 SID를 이용한 접근은 인스턴스 별로 다른 SID를 가지기 때문에 접속편의와 연속성을 보장하기 위해 Service Name을 사용하는게 효과적임 3. 무슨 차이가 있을까? JDBC를 사용해서 Oracle에 접근할때 SID와 Service Name은 연결 url을 구성할때 약간의 차이가 있는데 SID jdbc:oracle:thin:@//hostn.. 2019. 9. 5.