본문 바로가기

Database

(26)
[Oracle] SQL Performance - View 사용 주의 View를 사용하면 코드 유지보수성은 좋아질 수 있으나 성능관점에서는 결과가 안좋을 수 있다. 아래 예시를 살펴보자. Employees 테이블 NOEMPLOYEE_IDFIRST_NAMELAST_NAMEEMAILDEPARTMENT_ID1198DonaldOConnellDOCONNEL502199DouglasGrantDGRANT503200JenniferWhalenJWHALEN10 Departments 테이블NODEPARTMENT_IDDEPARTMENT_NAMEMANAGER_IDLOCATION_ID110Administration2001700220Marketing2011800330Purchasing1141700 Locations 테이블NOLOCATION_IDSTREET_ADDRESSPOSTAL_CODECITY110..
[Oracle] Oracle Join 종류 정리 #2 테이블 3개에 대해서 Join결과를 확인해 본다. 아래와 같이 테스트 테이블 3개가 존재한다. Employees 테이블 전체 행 (PK: EMPLOYEE_ID, FK: DEPARTMENT_ID) - 88번 row는 department_id가 nullNOEMPLOYEE_IDFIRST_NAMELAST_NAMEEMAILDEPARTMENT_ID1198DonaldOConnellDOCONNEL502199DouglasGrantDGRANT503200JenniferWhalenJWHALEN104201MichaelHartsteinMHARTSTE205202PatFayPFAY206203SusanMavrisSMAVRIS407204HermannBaerHBAER708205ShelleyHigginsSHIGGINS1109206Willi..
[Oracle] and system_cd(+) = 'COM' 과 같이 상수값 비교 조건에도 (+)가 붙는 이유 Oracle의 옛날 조인 문법(= “오라클 전용 OUTER JOIN 문법”) 에서 (+)를 사용하는 경우,AND 절의 모든 조건이 "조인 대상 테이블" 기준으로 일관되게 처리되어야 하기 때문입니다.🔹배경 설명예를 들어 아래와 같은 쿼리가 있다고 합시다:SELECT a.user_id, b.system_cdFROM user_info a, system_info bWHERE a.user_id = b.user_id(+)AND b.system_cd(+) = 'COM'; 🔹 (+)의 의미(+)는 해당 테이블이 OUTER JOIN의 “부수적인 테이블” 이라는 뜻입니다.즉, b 테이블이 없어도 a의 데이터는 모두 나오게 하라는 의미죠.🔹 그런데 왜 상수 조건에도 (+)가 붙을까?Oracle의 구식 (+) 문법에서는..
[Oracle] Oracle Join 종류 정리 Oracle을 포함하여 DB마다 Join은 기본적인 연산 기능이다. ANSI로 표준화되어있지만 여전히 Oracle전용 문법을 많이 사용하고 있으므로 Oracle 문법도 같이 비교하면서 Join을 정리해 본다. Employees 테이블 전체 행 (PK: EMPLOYEE_ID, FK: DEPARTMENT_ID) - 88번 row는 department_id가 nullNOEMPLOYEE_IDFIRST_NAMELAST_NAMEEMAILDEPARTMENT_ID1198DonaldOConnellDOCONNEL502199DouglasGrantDGRANT503200JenniferWhalenJWHALEN104201MichaelHartsteinMHARTSTE205202PatFayPFAY206203SusanMavrisSMAVR..
[DB] Oracle Docker 이미지로 CDB, PDB 기반 설치하기 오라클 12c버전부터 Container Database, Pluggable Database 개념이 도입되어 하나의 Oracle Databse Instance에서 여러개의 스키마를 격리하여 설치할수 있게 되었다. Oracle 공식 Repository에서는 Docker Image를 제공하고 있으므로 이를 이용해서 Oracle을 설치해 보도록 한다. https://container-registry.oracle.com 위 주소가 공식 Repository 주소이다. 접속을 한 후에 Oracle 계정으로 Sign in을 한다. (계정이 없으면 생성 필요) 계정으로 로그인 한 후에 Database -> enterprise를 선택한 후 우측에 약관 동의에 동의를 수행한다. 이를 안하면 docker login시에 계속 ..
DBeaver에서 DB Table Data로딩시 "Load TableCache" 가 오래 걸릴때 DBeaver에서 Oracle등의 DB를 연결해서 테이블 스페이스에 저장된 테이블 정보를 가져올 때 "Load TableCache" 작업이 엄청 오래 걸릴때가 있다. 주로 데이터가 많거나 테이블 수 또는 구조가 복잡한 케이스의 경우가 많을 것이다. 이럴 경우에는 DBeaver의 Performance 옵션을 켜면 빠르게 Table 정보를 가져오는 것을 볼 수 있다. 접근 경로는,좌측 Connection 정보 클릭 -> Edit Connection -> 팝업 중간에 Oracle Properties 탭 선택 -> Performance 항목을 모두 선택 -> DB 재 접속 후 다시 조회 위와 같이 Performace 옵션 선택 후 DBeaver를 다시 실행 및 테이블 조회를 해보면 빠르게 정보를 가져오는 것을 ..
JMeter로 부하테스트 실행하기 Backend 개발 후 API 부하 테스트로 성능 측정을 해보고자 한다면 Apache JMeter Tool을 활용하여 간단히 수행해볼 수 있다. 다운로드 링크는 아래와 같다https://jmeter.apache.org/download_jmeter.cgi 링크로 들어가서 바이너리 압축파일을 받고 원하는 위치에 푼다.  압축 해제 후 아래 jar파일을 더블클릭해서 실행한다.D:\DOWNLOAD\Development\apache-jmeter-5.6.3\bin\ApacheJMeter.jar JMeter 실행 후 아래와 같이 동시 부하 주입을 위한 Threadd Group을 생성한다.테스트계획 -> 우클릭 -> Add -> Threads(User) -> setUp Thread Group 수행 Number of T..
DBeaver Heap memory 늘리기 Database client tool로 DBeaver를 많이 사용하고 있는데 용량큰 Script 실행을 하거나 여러 작업을 많이 할 경우 java heap space 부족 메세지를 종종 보게 된다. 이럴 경우에는 Tool 실행시 vmarg를 넘겨주면 실행시 heap memory를 정해준 size만큼 설정하게 할 수 있다. 실행시 인자는 아래와 같이 줄 수 있다. -vmargs -Xms4096m (구동시 확보되는 최소 메모리) -vmargs -Xmx8192m (최대 사용 메모리) 아래는 윈도우 바로가기 아이콘에서 실행 명령어에 최소 구동 메모리 4096m을 설정한 모습이다. 현재 할당된 Heap memory 를 확인하려면 DBeaver -> window -> Preferences -> Genaral 에서 ..