최고 50 Oracle 면접 질문 및 답변 (2025)
준비하기 Oracle 면접이요? 어떤 질문이 나올지 생각해 볼 때입니다. 이러한 질문은 단순히 지식을 평가하는 것이 아니라 문제 해결 방식을 드러내기 때문에 중요합니다.
이 분야의 기회는 기본 기술을 갖춘 신입부터 10년 이상의 기술 경력을 보유한 선임 전문가까지 다양합니다. 핵심 기술을 분석하든, 도메인 전문 지식을 적용하든, 또는 일반적인 질문과 답변을 준비하든, Oracle 모든 직무는 강력한 기술 전문성을 요구합니다. 팀 리더, 관리자, 그리고 상위 직급의 사람들은 적합한 기술을 갖춘 전문가를 중시하며, 조직의 성공을 지원하는 동시에 지원자들이 기술 및 고급 분야에서 실제적인 전문 경험을 입증할 수 있도록 지원합니다.
60명 이상의 기술 리더와 협의하고, 45명 이상의 관리자로부터 피드백을 수집했으며, 다양한 산업 분야의 전문가 100명 이상의 통찰력을 분석했습니다. 이러한 광범위한 스펙트럼을 통해 Oracle 여기에 다루는 면접 질문은 다양한 관점과 실질적인 채용 기대치를 나타냅니다.
인기 Oracle 면접 질문 및 답변
1) 다양한 유형을 설명하세요 Oracle 데이터베이스 객체와 그 특성.
Oracle 데이터베이스 객체는 데이터를 저장하고 관리하는 스키마 수준의 개체입니다. 일반적인 객체에는 테이블, 뷰, 동의어, 시퀀스, 인덱스, 클러스터가 있습니다. 각 객체는 고유한 목적을 갖습니다. 테이블은 실제 데이터를 저장하고, 뷰는 가상 표현으로 작동하며, 동의어는 대체 이름을 제공하고, 시퀀스는 고유한 값을 생성하며, 인덱스는 검색 속도를 향상시키고, 클러스터는 관련 테이블을 그룹화합니다. 생성부터 삭제까지 객체의 수명 주기를 이해하면 개발자가 종속성을 관리하고 데이터베이스 성능을 최적화하는 데 도움이 됩니다.
예: 뷰는 복잡한 조인을 단순화할 수 있는 반면, 인덱스는 쿼리 속도를 높일 수 있지만 삽입이나 업데이트 속도를 늦출 수 있습니다.
👉 무료 PDF 다운로드: Oracle 면접 질문 및 답변
2) VARCHAR와 VARCHAR2의 차이점은 무엇입니까? Oracle?
VARCHAR와 VARCHAR2는 가변 길이 문자 데이터를 저장하는 데 사용되지만 동작 방식이 다릅니다. VARCHAR는 향후 사용을 위해 예약되어 있으며 향후 버전에서는 다르게 동작할 수 있습니다. Oracle 버전에 따라 다르지만, 가변 길이 문자열에는 VARCHAR2가 권장되는 데이터 유형입니다. VARCHAR2는 후행 공백을 제거하는 반면, VARCHAR는 후행 공백을 보존하므로 대부분의 경우 효율성이 떨어집니다.
비교표 :
요인 | 바르차르 | VARCHAR2 |
---|---|---|
스토리지 | 고정된 미래 동작 | 깔끔한 공간으로 효율적인 보관 |
용법 | 예약 | 선호되고 널리 사용됨 |
성능 | 잠재적으로 일관성이 없음 | 안정적이고 최적화된 |
3) 제약조건은 어떻게 데이터 무결성을 강화합니까? Oracle 데이터베이스?
제약 조건은 정확성과 일관성을 유지하기 위해 테이블 열에 적용되는 규칙입니다. 여기에는 다음이 포함됩니다. NULL이 아님, 고유, 기본 키, 외래 키및 CHECK예를 들어, 기본 키는 레코드의 고유성을 보장하는 반면, 외래 키는 테이블 간 참조 무결성을 유지합니다. 제약 조건은 애플리케이션 수준이 아닌 스키마 수준에서 비즈니스 로직을 적용하는 것을 단순화합니다.
예: 에서 Employees
테이블, 세팅 Employee_ID
기본 키는 각 레코드가 고유하도록 보장하는 반면 외래 키는 다음을 연결합니다. Department_ID
에 Departments
테이블은 고아 레코드를 방지합니다.
4) 어디에 있나요? Oracle 어떤 테이블스페이스를 사용하며, 그 이점은 무엇인가요?
테이블스페이스는 관련 데이터 파일을 그룹화하는 논리적 저장 단위입니다. 영구 데이터, 임시 데이터, 실행 취소 데이터 등 다양한 유형의 데이터를 분리합니다. 이러한 구성은 관리 효율성, 보안 및 성능을 향상시킵니다.
장점은 다음과 같습니다 :
- 백업 및 복구 전략이 더 쉬워졌습니다.
- 임시 작업을 영구 데이터로부터 분리합니다.
- 자동 확장 기능을 사용하여 효율적으로 공간을 관리합니다.
예: 운영 데이터베이스에는 복구 프로세스를 최적화하기 위해 사용자 데이터, 인덱스 및 시스템 메타데이터에 대한 별도의 테이블스페이스가 있을 수 있습니다.
5) 인덱스를 사용하는 것의 장점과 단점은 무엇입니까? Oracle?
인덱스는 디스크 I/O 작업 수를 줄여 쿼리 성능을 향상시킵니다. 그러나 인덱스도 업데이트해야 하므로 DML(INSERT, UPDATE, DELETE) 작업 시 오버헤드가 발생합니다.
장점과 단점 표:
장점 | 단점 |
---|---|
더 빠른 데이터 검색 | 더 느린 DML 작업 |
고유한 제약 조건을 지원합니다 | 저장 공간이 필요합니다 |
조인 성능 향상 | 파편화가 발생할 수 있습니다 |
예: 인덱스에 대한 Customer_ID
고객 주문을 더 빨리 검색할 수 있지만 새로운 행을 삽입하는 비용이 증가합니다.
6) 뷰는 테이블과 어떻게 다릅니까? Oracle?
테이블은 실제 데이터를 저장하는 물리적 구조이고, 뷰는 SQL 쿼리를 기반으로 하는 논리적인 가상 테이블입니다. 뷰는 데이터를 직접 저장하지 않지만, 복잡한 쿼리를 단순화하고, 특정 열에 대한 액세스를 제한하여 보안을 강화하고, 기본 스키마 변경 사항을 추상화하는 동적인 방법을 제공합니다.
예: 고객 이름과 전화번호만 표시하는 뷰는 신용카드 정보와 같은 민감한 필드를 숨깁니다. 이렇게 하면 보고 요구 사항을 충족하는 동시에 민감한 데이터를 보호할 수 있습니다.
7) 지원되는 다양한 유형의 조인을 설명하세요. Oracle 예제가 있는 SQL.
조인은 관련 열을 기준으로 두 개 이상의 테이블에서 행을 결합합니다. 조인 유형은 다음과 같습니다.
- 내부 조인: 일치하는 행을 반환합니다.
- 왼쪽 외부 조인: 왼쪽 테이블의 모든 행과 일치 항목.
- 오른쪽 외부 조인: 오른쪽 테이블의 모든 행과 일치 항목.
- 전체 외부 조인: 두 테이블의 모든 행.
- 크로스 조인: 행의 데카르트 곱.
예:
SELECT e.name, d.department_name FROM employees e INNER JOIN departments d ON e.department_id = d.department_id;
8) SQL 대신 PL/SQL을 사용하는 특징과 이점은 무엇입니까?
PL/SQL은 OraclePL/SQL은 선언적 SQL과 루프, 조건문, 예외 처리와 같은 절차적 구조를 결합한 SQL의 절차적 확장입니다. 한 번에 하나의 명령문을 실행하는 SQL과 달리 PL/SQL은 코드 블록을 지원하여 성능과 재사용성을 향상시킵니다.
장점은 다음과 같습니다 :
- 프로시저와 패키지를 통한 모듈식 프로그래밍.
- 예외 처리 메커니즘.
- 대량 작업의 성능이 향상되었습니다.
예: PL/SQL 블록은 하나의 루프에서 여러 직원의 급여 조정을 처리할 수 있으므로 여러 SQL 문을 실행하는 것에 비해 컨텍스트 전환이 줄어듭니다.
9) 어떻게 Oracle NULL 값을 관리하는 방법은 무엇이며 NVL과 COALESCE의 차이점은 무엇입니까?
Oracle NULL은 값이 없음을 나타냅니다. 다음과 같은 함수 NVL 그리고 합체하다 NULL을 다르게 처리합니다. NVL은 두 개의 인수를 받고 NULL을 두 번째 값으로 바꿉니다. COALESCE는 여러 개의 인수를 받고 NULL이 아닌 첫 번째 값을 반환합니다.
예:
SELECT NVL(commission, 0), COALESCE(bonus, allowance, 0) FROM employees;
여기서 NVL은 commission이 NULL이 아닌지 확인하고, COALESCE는 여러 열에서 첫 번째로 사용 가능한 값을 확인합니다.
10) 트리거를 수행하세요 Oracle 데이터베이스 설계의 장단점은 무엇인가요?
트리거는 INSERT, UPDATE, DELETE와 같은 이벤트에 응답하여 자동으로 실행되는 저장된 PL/SQL 블록입니다. 감사, 복잡한 제약 조건 적용, 비즈니스 규칙 자동화에 유용합니다.
장점: 규칙 시행을 자동화하고 논리를 중앙화합니다.
단점 : 숨겨진 실행은 디버깅을 복잡하게 만들고 과도하게 사용하면 성능을 저하시킬 수 있습니다.
예: 변경 사항을 기록하는 트리거 Salaries
테이블은 애플리케이션 계층을 변경하지 않고도 감사 규정 준수를 보장합니다.
11) 어떻게 Oracle 패키지는 프로시저와 함수와 다른가요?
패키지는 관련 프로시저, 함수, 변수 및 커서를 단일 단위로 그룹화하는 스키마 객체입니다. 독립형 프로시저나 함수와 달리 패키지는 모듈성, 보안 및 더 나은 성능을 제공합니다. Oracle 패키지를 메모리에 한 번 로드하고 반복 사용을 위해 캐시에 저장합니다. 또한 패키지는 명세와 본문을 분리하여 개발자가 구현 세부 사항을 숨기고 필요한 구성 요소만 노출할 수 있도록 합니다.
예: 급여 패키지에는 세금 계산 기능과 급여 지급 절차가 포함될 수 있습니다. 개발자는 민감한 세금 규칙은 내부에 유지하면서 급여 계산 절차만 공개할 수 있습니다.
12) PL/SQL에서 예외를 처리하는 다양한 방법은 무엇입니까?
예외 처리는 오류를 가로채 PL/SQL 프로그램의 견고성을 보장합니다. 세 가지 주요 범주는 다음과 같습니다.
- 미리 정의된 예외 등
NO_DATA_FOUND
그리고TOO_MANY_ROWS
. - 사용자 정의 예외 개발자가 특정 시나리오를 처리하기 위해 선언한 것입니다.
- 처리되지 않은 예외 호출 환경으로 자동으로 전파됩니다.
예:
BEGIN SELECT salary INTO v_salary FROM employees WHERE id=999; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('Employee not found'); END;
이렇게 하면 런타임 오류로 인해 실행이 중단되는 것을 방지하고 원활한 복구가 가능합니다.
13) 수명주기를 설명하세요 Oracle 커서.
커서는 SQL 쿼리의 결과 집합을 가리키는 포인터입니다. 커서의 수명 주기는 다음과 같은 여러 단계로 구성됩니다.
- 선언: 커서가 정의되었습니다.
- 열기: Oracle 메모리를 할당하고 쿼리를 실행합니다.
- 가져오는 중: 행은 순차적으로 검색되어 변수에 저장됩니다.
- 폐쇄: 자원이 방출됩니다.
예: 명시적 커서에서는 개발자가 각 단계를 제어하는 반면 암시적 커서는 자동으로 관리됩니다. Oracle 단일 행 쿼리 중. 적절한 커서 수명 주기 관리는 메모리 누수를 방지하고 애플리케이션 안정성을 향상시킵니다.
14) 성능 튜닝에 영향을 미치는 요인은 무엇입니까? Oracle 데이터베이스?
성능 튜닝은 SQL 최적화부터 시스템 구성까지 다양한 요인의 영향을 받습니다. 주요 고려 사항은 다음과 같습니다.
- 쿼리 디자인 및 인덱싱 전략.
- 실행 계획의 적절한 사용.
- 적절한 메모리 할당(SGA, PGA).
- 데이터 분할 및 병렬 실행.
- 불필요한 조인이나 중첩된 하위 쿼리를 피합니다.
예: 10만 개의 행이 있는 테이블에서 인덱싱되지 않은 검색은 몇 분이 걸릴 수 있지만, 잘 선택된 B-트리 인덱스를 사용하면 동일한 쿼리가 몇 초 만에 완료됩니다.
15) OLTP와 OLAP 시스템의 차이점은 무엇입니까? Oracle?
Oracle 온라인 트랜잭션 처리(OLTP)와 온라인 분석 처리(OLAP)를 모두 지원합니다. OLTP는 빈번하고 소규모의 트랜잭션을 처리하는 반면, OLAP는 의사 결정 지원을 위한 복잡한 쿼리를 관리합니다.
비교표 :
요인 | OLTP | 올랩 |
---|---|---|
목적 | 거래상의 | 분석 |
데이터 볼륨 | 보통 | 매우 큰 |
쿼리 복잡성 | 간단하고 미리 정의된 | 복잡하고 임시방편적인 |
응답 시간 | 1초 미만 | 더 길어질 수도 있습니다 |
예: ATM에서 출금하는 은행 시스템은 OLTP이고, 고객 지출 추세를 분석하는 은행 시스템은 OLAP입니다.
16) 어떻게 Oracle 데이터 분할을 구현하면 어떤 이점이 있나요?
파티셔닝은 논리적 일관성을 유지하면서 큰 테이블이나 인덱스를 작고 관리하기 쉬운 세그먼트로 나눕니다. 파티셔닝 유형에는 범위, 목록, 해시, 복합 파티셔닝이 있습니다.
장점은 다음과 같습니다 :
- 관련 파티션만 스캔하여 쿼리 성능을 개선했습니다.
- 파티션 가지치기를 통해 유지관리가 더 쉬워집니다.
- 대규모 데이터 세트의 관리 용이성이 향상되었습니다.
예: 연도별로 분할된 판매 테이블을 사용하면 2024년 데이터에 대한 쿼리를 통해 전체 데이터 세트를 스캔하는 대신 2024년 파티션에만 액세스할 수 있습니다.
17) PL/SQL에서 대량 작업을 사용해야 하는 경우는 언제인가요?
대량 작업( BULK COLLECT, FORALL
)는 대용량 데이터를 효율적으로 처리할 때 사용됩니다. 행 단위 처리 대신, 대량 작업은 SQL 엔진과 PL/SQL 엔진 간의 단일 컨텍스트 전환을 통해 행 집합을 처리합니다.
장점:
- 더 빠른 성능.
- CPU 사용량이 감소했습니다.
- 간소화된 일괄 처리.
예: 사용 FORALL
100,000만 개의 직원 기록을 삽입하는 것은 100,000만 개의 별도 INSERT 문을 실행하는 것보다 훨씬 빠릅니다.
18) 당신은의 역할을 설명 할 수 있습니까? Oracle 복구 시 로그를 다시 실행하시겠습니까?
리두 로그는 데이터베이스에 적용된 모든 변경 사항을 기록하여 내구성을 보장합니다. 복구 중에는 Oracle 손실되거나 완료되지 않은 거래를 재구성하기 위해 재실행 항목을 재생합니다.
형질:
- 온라인 리두 로그 파일과 보관된 리두 로그로 구성됩니다.
- 인스턴스 장애로부터 보호합니다.
- 특정 시점 복구를 활성화합니다.
예: 트랜잭션이 커밋되었지만 데이터가 디스크에 기록되기 전에 서버가 충돌하는 경우, 리두 로그는 커밋된 변경 사항이 복구 중에 다시 적용되도록 보장합니다.
19) 다양한 유형은 무엇입니까? Oracle 인덱스와 그 사용 사례는 무엇인가?
Oracle 각각 특정 시나리오에 적합한 여러 가지 인덱스 유형을 제공합니다.
- B-트리 인덱스: 일반 용도로, 높은 카디널리티 열에 가장 적합합니다.
- 비트맵 인덱스: 성별과 같은 낮은 기수 열에 효율적입니다.
- 함수 기반 인덱스: 쿼리에 표현식이나 함수가 포함되어 있을 때 유용합니다.
- Clustered 인덱스: 키를 기준으로 여러 테이블의 행을 함께 저장합니다.
예: 비트맵 인덱스 Status
B-트리보다 열(활성/비활성)이 더 효율적입니다. 두 개의 고유한 값만 있기 때문입니다.
20) 데이터를 어떻게 보호합니까? Oracle 데이터베이스?
데이터 보안 Oracle 여러 계층이 관여합니다. 주요 메커니즘은 다음과 같습니다.
- 사용자 인증 강력한 비밀번호와 프로필을 사용합니다.
- 권한 및 역할 최소 권한을 시행합니다.
- 가상 사설 데이터베이스(VPD) 행 수준 보안을 위해.
- 투명한 데이터 암호화(TDE) 저장 중인 데이터를 보호합니다.
- 감사 기능 접근과 변경 사항을 추적합니다.
예: 재무 데이터베이스는 VPD를 사용하여 직원이 해당 지점에 속한 기록만 볼 수 있도록 보장하고 TDE는 디스크 수준에서 중요한 고객 데이터를 암호화합니다.
21) 다양한 유형은 무엇입니까? Oracle 자물쇠와 그 중요성은?
잠금 기능은 다중 사용자 환경에서 데이터에 대한 액세스 충돌을 방지합니다. Oracle 행 수준 잠금, 테이블 수준 잠금, 시스템 수준 잠금을 포함한 다양한 잠금을 사용합니다.
- 행 수준 잠금: 동시 세션이 동시에 다른 행에 액세스할 수 있는지 확인하세요.
- 테이블 수준 잠금: 구조 변경 시 테이블 전체를 보호하세요.
- DML 잠금: 행이 수정되면 자동으로 획득됩니다.
- DDL 잠금: 구조적 변경 중에 스키마 객체를 보호합니다.
예: 두 사용자가 서로 다른 행을 업데이트하는 경우 Orders
탁자, Oracle 최대 동시성을 허용하면서 충돌을 방지하기 위해 행 수준 잠금을 사용합니다.
22) 어떻게 합니까? Oracle 거래는 ACID 속성을 따르나요?
거래 Oracle 고수하다 Atom얼음성, 일관성, 고립성 및 내구성(ACID) 원칙.
- Atom얼음 모든 작업이 성공하는지 확인하고, 그렇지 않으면 아무것도 적용되지 않습니다.
- 일관성 비즈니스 규칙을 적용하여 데이터베이스 무결성을 유지합니다.
- 절연 동시 거래가 방해받지 않음을 보장합니다.
- 내구성 실패에도 불구하고 커밋된 거래가 유지되도록 보장합니다.
예: 계좌 간 자금 이체 시, Oracle 차변 및 대변 작업이 모두 성공적으로 수행되도록 보장합니다. 하나가 실패하면 거래가 완전히 롤백되어 무결성이 유지됩니다.
23) DELETE, TRUNCATE, DROP의 차이점을 설명하세요. Oracle.
이러한 명령은 범위, 속도, 롤백 기능이 다릅니다.
Command | 목적 | 롤백 가능 | 속도 |
---|---|---|---|
삭제 | WHERE 절을 사용하여 행을 제거합니다. | 가능 | 느린 |
자르기 | 모든 행을 제거하고 구조는 유지합니다. | 아니 | 빠른 |
DROP | 전체 테이블과 메타데이터를 제거합니다. | 아니 | 가장 빠른 |
예: 부서별로 특정 직원을 제거할 때는 DELETE를 사용하고, 스테이징 테이블을 비울 때는 TRUNCATE를 사용하고, 테이블이 더 이상 필요하지 않으면 DROP을 사용합니다.
24) 성능 진단에 사용할 수 있는 도구는 무엇입니까? Oracle?
Oracle 성능을 분석하고 개선하기 위한 다양한 도구를 제공합니다.
- 계획 설명: 쿼리 실행 단계를 표시합니다.
- SQL 추적 및 TKPROF: SQL 실행 통계를 캡처하고 해석합니다.
- 자동 작업 부하 저장소(AWR): 시간 경과에 따른 성과 지표를 수집합니다.
- 자동 데이터베이스 진단 모니터(ADDM): 튜닝 작업을 권장합니다.
- 엔터프라이즈 관리자(OEM): GUI 기반 모니터링.
예: AWR 보고서는 장기 실행 쿼리를 식별하는 데 도움이 되고, EXPLAIN PLAN은 인덱스가 효과적으로 사용되고 있는지 여부를 보여줍니다.
25) 어때요? Oracle 기억 구조에 따라 구성된 아키텍처?
Oracle 다음과 같은 메모리 구조를 사용합니다. 시스템 글로벌 영역(SGA) 그리고 프로그램 글로벌 영역(PGA).
- SGA: 공유 풀, 데이터베이스 버퍼 캐시, 리두 로그 버퍼, 대용량 풀을 포함하는 공유 메모리입니다.
- PGA: 세션별로 할당된 메모리로, 변수와 정렬 영역을 저장합니다.
예: SGA의 버퍼 캐시는 자주 액세스되는 데이터 블록을 보관하고 물리적 디스크 I/O를 줄여 성능을 향상시킵니다.
26) 구체화된 뷰는 다음과 같은 이점을 제공합니까? Oracle 데이터베이스?
네, 구체화된 뷰는 일반 뷰와 달리 미리 계산된 쿼리 결과를 물리적으로 저장합니다.
장점: 더 빠른 쿼리 응답, 기본 테이블의 작업 부하 감소, 복제 지원.
단점 : 새로 고침이 필요하고, 저장 공간을 소모하며, 오래될 수 있습니다.
예: 일일 매출을 요약한 구체화된 뷰를 통해 보고 속도가 빨라지고, 반복적인 집계 쿼리를 피할 수 있습니다.
27) 무엇입니까? Oracle 시퀀스는 무엇이고 언제 유용한가요?
시퀀스는 고유한 숫자 값을 생성하며, 이는 종종 기본 키로 사용됩니다. 시퀀스는 테이블과 독립적이며 동시 액세스를 지원합니다.
사용 사례:
- 송장 번호 생성.
- 고유한 직원 ID를 생성합니다.
- 시퀀스를 오프셋하여 복제를 지원합니다.
예:
CREATE SEQUENCE emp_seq START WITH 100 INCREMENT BY 1; INSERT INTO employees (emp_id, name) VALUES (emp_seq.NEXTVAL, 'John');
28) 어떻게 쿼리를 최적화할 수 있습니까? Oracle 힌트?
힌트는 옵티마이저의 실행 계획에 영향을 주기 위해 SQL에 내장된 지시어입니다. 일반적인 힌트는 다음과 같습니다. INDEX, FULL, PARALLEL
및 USE_HASH
.
예:
SELECT /*+ INDEX(e emp_name_idx) */ name FROM employees e WHERE name = 'Smith';
이는 다음과 같이 지시합니다. Oracle 특정 인덱스를 사용하여 성능을 향상시킵니다. 그러나 힌트에 지나치게 의존하면 데이터나 스키마가 변경될 때 유연성이 저하될 수 있습니다.
29) 사용의 이점과 단점은 무엇입니까? Oracle 클러스터?
Cluster공통 열을 공유하는 테이블을 동일한 데이터 블록으로 그룹화합니다.
이점:
- 클러스터형 열의 조인 성능을 향상시킵니다.
- 관련 행을 함께 배치하여 저장 공간을 절약합니다.
단점 :
- 삽입 중에 오버헤드가 증가합니다.
- 클러스터링 키가 자주 변경되는 경우 유연성이 제한됩니다.
예: ClusterING Employees
그리고 Departments
on Department_ID
조인은 개선되지만 부서가 자주 바뀌면 업데이트 속도가 느려집니다.
30) 어떻게 Oracle 교착 상태를 처리하는 방법은 무엇이며, 교착 상태에 영향을 미치는 요인은 무엇입니까?
교착 상태는 두 세션이 서로가 잠근 리소스를 무기한으로 기다릴 때 발생합니다. Oracle 교착 상태를 자동으로 감지하고 한 트랜잭션을 롤백하여 해결합니다.
교착 상태에 영향을 미치는 요인:
- 거래 설계가 잘못되었습니다.
- 공유 리소스에 대한 순서 없는 접근.
- 과도한 행 또는 테이블 잠금.
예: 세션 A가 행 1을 잠그고 행 2가 필요한 반면 세션 B가 행 2를 잠그고 행 1이 필요한 경우 Oracle 한 거래를 중단하여 교착 상태를 해결하기 위해 개입합니다.
31) 암시적 커서와 명시적 커서의 차이점은 무엇입니까? Oracle?
커서는 쿼리 결과 세트를 관리합니다.
- 암시적 커서 자동으로 생성됩니다 Oracle 다음과 같은 단일 행 쿼리의 경우
SELECT INTO
. 최소한의 코드만 필요하지만 제어 기능은 제한적입니다. - 명시적 커서 개발자가 여러 행을 반환하는 쿼리를 위해 정의합니다. 명시적인 OPEN, FETCH 및 CLOSE 작업을 통해 유연성을 제공합니다.
예:
-- Implicit cursor SELECT salary INTO v_salary FROM employees WHERE id=101; -- Explicit cursor CURSOR emp_cur IS SELECT name FROM employees;
정확한 제어를 통해 여러 행을 처리할 때 명시적 커서를 사용합니다.
32) 어떻게 Oracle'의 최적화 프로그램이 실행 계획을 결정하나요?
The Oracle 최적화 프로그램은 여러 실행 전략을 평가하고 이를 기반으로 가장 효율적인 전략을 선택합니다. 비용 기반 최적화(CBO)요소에는 사용 가능한 인덱스, 조인 방법(중첩 루프, 해시 조인, 병합 조인), 테이블 크기에 대한 통계, 데이터 분포 등이 있습니다.
예: 작은 테이블과 큰 테이블을 조인하는 쿼리의 경우, 옵티마이저는 중첩 루프 조인을 선택할 수 있지만, 두 테이블 모두 큰 경우에는 해시 조인을 선택할 수 있습니다. 정기적으로 업데이트되는 통계는 정확한 실행 계획을 보장합니다.
33) UNION, UNION ALL, INTERSECT, MINUS 연산자의 차이점을 설명하세요.
이러한 연산자는 쿼리 결과를 결합하지만 동작 방식이 다릅니다.
Opera바위 산 | 함수 | 중복 | 주문번호 |
---|---|---|---|
UNION | 서로 다른 결과를 결합합니다 | 제거됨 | 정렬 된 |
UNION ALL | 모든 결과를 결합합니다 | 잉여금 | 보장되지 않음 |
교차 | 공통 행을 반환합니다 | 제거됨 | 정렬 된 |
마이너스 | 두 번째가 아닌 첫 번째 행을 반환합니다. | 제거됨 | 정렬 된 |
예: 중복이 허용되는 경우 UNION ALL이 성능에 가장 좋습니다.
34) 특성과 수명주기는 무엇입니까? Oracle 임시 테이블?
임시 테이블은 세션별 또는 트랜잭션별 데이터를 저장합니다. 데이터는 정의에 따라 세션 또는 트랜잭션 동안만 유지됩니다.
라이프 사이클 :
- 창조: 스키마에 한 번
CREATE GLOBAL TEMPORARY TABLE
. - 용법: 세션이나 거래에서만 볼 수 있는 데이터입니다.
- 삭제: 세션/거래 종료 후 자동으로 삭제됩니다.
예: 세션별 임시 테이블은 다른 사용자에게 영향을 주지 않고 보고 프로세스 중에 중간 결과를 저장할 수 있습니다.
35) PL/SQL 레코드는 개별 변수에 비해 장점이 있습니까?
네, 레코드는 관련 변수를 하나의 단위로 묶습니다. 코드 가독성을 높이고, 선언의 복잡성을 줄이며, 테이블 행 구조에 맞춰 정렬합니다.
장점:
- 테이블 열에 대한 매핑이 더 쉬워졌습니다.
- 여러 값을 프로시저에 전달하는 것을 간소화합니다.
- 테이블 정렬을 위해 %ROWTYPE을 지원합니다.
예:
DECLARE emp_rec employees%ROWTYPE; BEGIN SELECT * INTO emp_rec FROM employees WHERE id=200; END;
이는 전체 행을 단일 레코드 변수로 검색합니다.
36) 분석 함수를 언제 사용해야 합니까? Oracle?
분석 기능은 행 그룹 전체에서 값을 축소하지 않고 계산하므로 고급 보고에 필수적입니다.
사용 사례:
- 행 순위 지정
RANK()
orROW_NUMBER()
. - 누적 합계 계산
SUM() OVER()
. - 이동 평균을 찾는다.
예:
SELECT name, salary, RANK() OVER (ORDER BY salary DESC) rank FROM employees;
이렇게 하면 전체 표를 집계하지 않고도 순위가 매겨진 급여 데이터가 생성됩니다.
37) 어떻게 합니까? Oracle 클러스터는 파티셔닝과 다른가요?
둘 다 성능을 향상시키지만 각기 다른 목적을 위해 사용됩니다.
아래 | Clusters | 파티셔닝 |
---|---|---|
목적 | 관련 테이블을 함께 저장합니다. | 큰 테이블/인덱스 나누기 |
범위 | 여러 테이블 | 단일 테이블 또는 인덱스 |
성능 | 조인을 최적화합니다 | 하위 집합에 대한 쿼리를 최적화합니다. |
유지보수 | Less 융통성있는 | 더 쉬운 데이터 관리 |
예: 매출 표를 연도별로 분할하면 특정 기간을 검색하는 것이 최적화되고, 직원을 부서별로 클러스터링하면 조인이 빨라집니다.
38)의 역할을 설명하세요 Oracle 테이블스페이스를 실행 취소합니다.
실행 취소 테이블스페이스는 이전 이미지 데이터를 저장하여 트랜잭션 롤백, 읽기 일관성 및 복구를 지원합니다.
형질:
- 각 거래는 실행 취소 세그먼트를 사용합니다.
- 동시 쿼리에 대해 일관된 뷰를 활성화합니다.
- 완료되지 않은 거래의 롤백을 허용합니다.
예: 사용자가 직원 급여를 업데이트했지만 커밋하기 전에 롤백하는 경우 Oracle 원래 값을 복원하기 위해 실행 취소 데이터를 사용합니다.
39) 핫 백업과 콜드 백업의 차이점은 무엇입니까? Oracle?
백업은 데이터 손실을 방지합니다.
요인 | 핫 백업 | 콜드 백업 |
---|---|---|
데이터베이스 상태 | 배우기 | 종료 |
유효성 | 끊임없는 | 다운타임 필요 |
복잡성 | 더 높은 | 더 단순한 |
유스 케이스 | 24×7 시스템 | Less 중요 시스템 |
예: 전자상거래 사이트는 가동 시간을 유지하기 위해 핫 백업을 사용하는 반면, 소규모 내부 앱은 야간 가동 중지 시간 동안 콜드 백업을 사용할 수 있습니다.
40) 어떻게 Oracle 보안을 위해 권한과 역할을 관리하나요?
Oracle 사용 시스템 권한, 개체 권한및 역할.
- 시스템 권한 사용자나 테이블스페이스 생성 등의 권한을 부여합니다.
- 개체 권한 스키마 객체에 대한 작업(SELECT, INSERT)을 허용합니다.
- 역할 여러 권한을 묶어서 관리를 간소화합니다.
예:
GRANT SELECT ON employees TO analyst_role; GRANT analyst_role TO user1;
여기에서는 권한을 역할을 통해 중앙에서 관리하여 일관성과 권한 취소의 용이성을 보장합니다.
41) PL/SQL에서 함수와 프로시저의 차이점은 무엇입니까?
함수와 프로시저는 모두 PL/SQL의 하위 프로그램이지만 서로 다른 목적을 위해 사용됩니다.
아래 | 함수 | 순서 |
---|---|---|
반환 값 | 정확히 하나의 값을 반환해야 합니다 | OUT 매개변수를 통해 아무것도 반환하지 않거나, 하나 또는 여러 개를 반환할 수 있습니다. |
용법 | 종종 SQL 표현식에서 | PL/SQL 블록에서 호출됨 |
의존 | SELECT에서 호출 가능 | SELECT에서는 프로시저를 사용할 수 없습니다. |
예: 함수는 세금을 계산하고 숫자형 결과를 반환하는 반면, 프로시저는 급여 기록을 업데이트합니다.
42) 어떻게 Oracle 데이터베이스 개발에 유용한 동의어는?
동의어는 데이터베이스 객체에 대한 대체 이름을 제공하여 추상화와 사용 편의성을 향상시킵니다. 동의어는 다음과 같습니다. 사설 (사용자에 따라 특정) 또는 공개 (모든 사용자가 이용 가능).
이점:
- 스키마 전체에서 개체 참조를 단순화합니다.
- 애플리케이션에서 기본 스키마 이름을 숨깁니다.
- 객체 이름이 변경될 경우 이전 버전과의 호환성을 제공합니다.
예: 참조하는 대신 HR.EMPLOYEES
, 공공 동의어 EMP
개발자가 간단히 쿼리할 수 있습니다. SELECT * FROM EMP;
.
43) REF 커서를 언제 사용해야 합니까? Oracle?
REF 커서는 프로그램 간에 동적으로 전달될 수 있는 결과 집합에 대한 포인터입니다. 특히 가변적인 쿼리 결과를 애플리케이션에 반환할 때 유용합니다.
장점:
- 동적 SQL 실행을 활성화합니다.
- 쿼리와 검색 논리를 분리할 수 있습니다.
- 클라이언트-서버 애플리케이션에 유용합니다.
예: 보고 도구는 PL/SQL에서 REF 커서를 받을 수 있으므로 재컴파일 없이도 쿼리 논리를 유연하게 만들 수 있습니다.
44) CHAR와 NCHAR의 차이점은 무엇입니까? Oracle?
둘 다 고정 길이의 문자 데이터를 저장하지만 NCHAR는 유니코드를 지원하여 다국어 호환성을 보장합니다.
아래 | 숯 | NCHAR |
---|---|---|
부호화 | 데이터베이스 문자 집합 | 유니 코드 |
유스 케이스 | 고정 너비 저장소 | 다국어 애플리케이션 |
스토리지 | 문자당 1바이트 | 문자당 2바이트 |
예: NCHAR는 국제 고객 이름을 저장할 때 악센트가 있는 문자나 라틴 문자가 아닌 문자의 적절한 표현을 보장합니다.
45) 수명주기와 이점을 설명하십시오. Oracle 패키지.
패키지의 수명 주기에는 생성, 컴파일, 사용, 종속성 관리가 포함됩니다.
이점:
- 성능이 향상됨 Oracle 패키지를 메모리에 한 번 로드합니다.
- 관련 하위 프로그램의 캡슐화.
- 사양에 필요한 절차/기능만 공개하여 액세스를 제어합니다.
- 유지관리와 디버깅이 더 쉬워졌습니다.
예: 이름이 지정된 패키지 HR_PAYROLL
급여, 세금, 보너스 계산 기능을 모두 한 곳에 모아 모듈식 개발을 간소화할 수 있습니다.
46) 어떻게 Oracle 플래시백 기술이 회복에 도움이 되나요?
플래시백 기능을 사용하면 기존 복구 방식 없이 사용자 오류를 빠르게 수정할 수 있습니다. 플래시백 쿼리, 플래시백 테이블, 플래시백 삭제, 플래시백 데이터베이스 등의 옵션이 있습니다.
예:
SELECT * FROM employees AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '10' MINUTE);
이 기능은 10분 전의 데이터를 검색하므로 실수로 삭제하거나 업데이트한 경우에 매우 유용합니다.
47) 사용의 장점과 단점은 무엇입니까? Oracle 저장 프로시저?
저장 프로시저는 재사용성, 일관성, 성능을 향상시킵니다.
장점:
- 중앙집중화된 비즈니스 로직.
- 서버에서 실행하여 네트워크 트래픽을 줄였습니다.
- 통제된 접근을 통해 보안을 강화합니다.
단점 :
- 과도하게 사용하면 복잡성이 증가합니다.
- 애플리케이션 수준 논리에 비해 디버깅이 더 어렵습니다.
예: 보너스를 계산하는 급여 절차는 다양한 애플리케이션에서 일관된 규칙을 보장합니다.
48) 어떻게 Oracle 병렬 쿼리 실행을 관리하나요?
병렬 실행이 가능합니다 Oracle 쿼리를 여러 CPU가 처리하는 더 작은 단위로 분할하는 기능입니다. 대규모 데이터 세트, 웨어하우스 쿼리, 대량 작업에 유용합니다.
성과에 영향을 미치는 요소:
- 병렬성의 정도.
- 사용 가능한 시스템 리소스.
- 효율적인 분배를 위해 테이블을 분할했습니다.
예: 분할된 판매 테이블에 대한 병렬 쿼리는 수백만 개의 레코드에 대한 집계 시간을 크게 줄여줍니다.
49) 무엇입니까? Oracle 외부 테이블과 그 장점은?
외부 테이블을 사용하면 SQL을 사용하여 데이터베이스 외부에 저장된 데이터(예: 플랫 파일)를 쿼리할 수 있습니다.
이점:
- ETL 작업을 간소화합니다.
- 사용자 정의 구문 분석이 필요 없습니다.
- 더 빠른 데이터 로딩을 위해 병렬 쿼리를 지원합니다.
예: 분석가는 CSV 파일을 로드하지 않고도 직접 쿼리할 수 있습니다. Oracle외부 테이블 정의를 사용합니다.
50) 어떻게 Oracle 민감한 정보에 대한 데이터 마스킹을 구현합니까?
Oracle 데이터 마스킹은 민감한 값을 가상이지만 현실적인 대체 값으로 대체하여 데이터를 보호하는 동시에 규정 준수를 보장합니다.
장점:
- 테스트 환경의 현실성을 유지합니다.
- 개발 중 데이터 유출을 방지합니다.
예: 고객의 신용카드 번호를 마스킹하면 개발자가 실제 정보를 노출하지 않고도 애플리케이션을 테스트할 수 있습니다.
🔍 탑 Oracle 실제 상황과 전략적 대응을 담은 면접 질문
아래는 10가지 다방면의 Oracle 전략적 답변과 함께 면접 질문을 구성합니다. 이러한 질문은 지원자가 직업 생활에서 실제로 접하게 되는 상황을 반영하는 지식 기반, 행동적, 상황적 관점을 다룹니다. Oracle-관련 인터뷰.
1) 차이점을 설명해 주시겠습니까? Oracle RAC 및 Oracle 데이터 가드?
후보자에게 기대하는 것: 면접관은 귀하의 지식을 평가하고 싶어합니다. Oracle고가용성 및 재해 복구 솔루션을 제공합니다.
예시 답변:
"Oracle RAC(실제 응용 프로그램) Clusters) 여러 인스턴스가 단일 데이터베이스에 액세스할 수 있도록 하여 확장성과 가용성을 향상시킵니다. 이와 대조적으로, Oracle Data Guard는 동기화된 대기 데이터베이스를 유지 관리하여 데이터 보호 및 장애 조치 기능을 보장하는 재해 복구 솔루션입니다. 두 가지 모두 중요하지만, RAC는 성능과 가동 시간에 중점을 두는 반면, Data Guard는 주 사이트 장애 발생 시 비즈니스 연속성을 보장합니다.
2) 어떻게 최신 정보를 얻나요? Oracle최신 데이터베이스 기능과 발전 사항은 무엇입니까?
후보자에게 기대하는 것: 면접관은 당신이 지속적으로 학습하려는 의지를 알고 싶어합니다.
예시 답변:
“저는 구독을 통해 최신 소식을 받아보겠습니다. Oracle 기술 네트워크(OTN) 뉴스레터 참석 Oracle OpenWorld 컨퍼런스 및 후속 Oracle 블로그도 운영하고 있습니다. 새로운 릴리스가 출시될 때마다 샌드박스 환경에서 실습 학습도 합니다. 이러한 조합을 통해 최신 정보를 유지하고 새로운 기능을 효과적으로 적용할 준비를 갖추게 됩니다.
3) 도전적인 상황을 설명할 수 있나요? Oracle 귀하가 작업한 업그레이드 또는 마이그레이션은 무엇이며, 어떻게 성공을 보장했습니까?
후보자에게 기대하는 것: 면접관은 기술적 전문성, 계획 능력, 적응력을 테스트합니다.
예시 답변:
“내 마지막 역할에서 나는 관리했습니다. Oracle 미션 크리티컬 금융 시스템을 11g에서 19c로 업그레이드했습니다. 상세한 마이그레이션 계획을 수립하고, 스테이징 환경에서 광범위한 테스트를 수행하며, 롤백 연습을 통해 성공적인 업그레이드를 보장했습니다. 이해관계자들과의 명확한 소통을 통해 다운타임을 최소화하고 데이터 손실 없이 업그레이드를 완료할 수 있었습니다.
4) 성능 튜닝을 어떻게 처리합니까? Oracle 느리게 실행되는 쿼리에 직면했을 때 데이터베이스는 어떻게 되나요?
후보자에게 기대하는 것: 면접관은 문제 해결 능력과 진단 능력에 대한 통찰력을 원합니다.
예시 답변:
첫 번째 단계는 EXPLAIN PLAN을 사용하여 실행 계획을 분석하고 병목 현상을 파악하는 것입니다. 그런 다음 인덱스, 통계 및 쿼리 구조를 평가합니다. 이전 직책에서는 Oracle AWR(Automatic Workload Repository) 보고서를 통해 비효율적인 쿼리를 정확히 파악하고, 성능 향상을 위해 파티셔닝을 구현했습니다. 그 결과 쿼리 실행 시간이 60% 단축되었습니다.
5) 중요한 문제를 해결하기 위해 압박 속에서 일해야 했던 때에 대해 말해주세요. Oracle 데이터베이스 문제.
후보자에게 기대하는 것: 면접관은 스트레스 속에서도 침착함, 협력, 문제 해결 능력을 찾습니다.
예시 답변:
이전 직장에서는 트랜잭션이 가장 많은 시간대에 운영 데이터베이스가 다운되었습니다. 저는 RMAN을 사용하여 특정 시점 복원을 수행하여 복구를 주도했고, 애플리케이션 팀과 협력하여 비즈니스 영향을 최소화했습니다. 데이터베이스는 두 시간 이내에 복구되었고, 이후 재발 방지를 위해 향상된 모니터링 및 백업 검증 프로세스를 구현했습니다.
6) 백업 및 복구 전략을 어떻게 설계하시겠습니까? Oracle 24시간 연중무휴 전자상거래 플랫폼을 지원하는 데이터베이스?
후보자에게 기대하는 것: 면접관은 실제 의사결정 방식을 시험하고 싶어합니다.
예시 답변:
24시간 연중무휴 운영되는 전자상거래 플랫폼의 경우, 다운타임을 방지하기 위해 온라인 백업을 위한 RMAN을 구축하고, 재해 복구를 위해 Data Guard를 구성하며, 트래픽이 적은 시간대에 증분 백업을 예약할 것입니다. 또한, 전략의 유효성을 검증하기 위해 복구 시나리오를 정기적으로 테스트할 것입니다. 비즈니스 연속성과 데이터 손실 최소화가 최우선 과제가 될 것입니다.
7) 당신이 함께 일하도록 동기를 부여하는 것은 무엇입니까? Oracle 기술?
후보자에게 기대하는 것: 면접관은 지원자의 열정과 직무에 대한 적합성을 파악하려고 노력합니다.
예시 답변:
“나를 흥분시키는 것은 무엇입니까? Oracle 기술의 가장 큰 장점은 확장성과 임무 수행에 필수적인 시스템에 전력을 공급할 수 있는 능력입니다. Oracle 데이터베이스는 정확성과 신뢰성이 필수적인 산업에서 사용되며, 이는 제가 최고 수준의 데이터베이스 관리 및 성능을 제공하고자 하는 동기를 부여합니다. 또한 저는 데이터베이스의 끊임없는 진화를 즐깁니다. Oracle "제품 덕분에 저는 전문적으로 성장할 수 있었습니다."
8) 사업부에서 규정 준수 정책과 충돌하는 데이터베이스 변경을 요구하는 경우 어떻게 처리하시겠습니까?
후보자에게 기대하는 것: 면접관은 윤리적 판단과 이해관계자 관리를 테스트하고 싶어합니다.
예시 답변:
"먼저 사업부에 규정 준수 위험을 명확하게 전달하고, 규정 위반 시 발생할 수 있는 잠재적 결과를 강조할 것입니다. 사업부가 계속 요구하면, 규정 준수 및 IT 거버넌스 팀에 문제를 보고하여 적절한 승인 절차를 준수하도록 할 것입니다. 조직을 규정 위반으로부터 보호하는 것이 단기적인 편의보다 더 중요합니다."
9) 개발자와 협력하여 최적화해야 했던 때를 설명하세요. Oracle 데이터베이스 성능.
후보자에게 기대하는 것: 면접관은 협업 능력과 기술적 의사소통 능력을 보고 싶어합니다.
예시 답변:
“이전에는 배치 작업 성능 문제에 직면한 개발팀과 긴밀히 협력했습니다. SQL 쿼리를 검토하고 인덱싱 전략을 제안하며 교육했습니다. Oracle 최적화 힌트. 우리는 함께 코드를 재구성하고 배치 실행 시간을 8시간에서 2시간 미만으로 단축했습니다. 이러한 경험을 통해 기능 간 협업의 가치가 더욱 강화되었습니다."
10) 보안을 어떻게 보장합니까? Oracle 현대 사이버 위협에 대비한 데이터베이스?
후보자에게 기대하는 것: 면접관은 데이터베이스 보안 모범 사례에 대한 지식을 테스트하고 싶어합니다.
예시 답변:
“나는 따른다 Oracle 중요 패치 업데이트(CPU)를 신속하게 적용하고, 최소 권한 원칙을 적용하고, 데이터베이스 감사 기능을 활성화하고, 저장 데이터와 전송 중인 데이터를 모두 암호화하는 등 보안 모범 사례를 구현했습니다. 이전 직책에서는 Oracle 민감한 재무 기록에 대한 투명한 데이터 암호화(TDE)를 통해 성능에 영향을 미치지 않으면서 규정 준수 요구 사항을 충족할 수 있었습니다.