> 데이터 베이스 > Oracle > Oracle 면접 질문 요약

Oracle 면접 질문 요약

coldplay.xixi
풀어 주다: 2020-08-01 15:45:53
앞으로
4802명이 탐색했습니다.

Oracle 면접 질문 요약

1. 삭제와 자르기의 차이점은 무엇인가요?

1) Truncate는 DDL 문이고 DELETE는 DML 문입니다.

2) Truncate는 DELETE보다 훨씬 빠릅니다.

이유는 DELETE 작업을 수행할 때 모든 테이블 데이터가 먼저 롤백 테이블 공간에 COPY되며 데이터 양에 따라 소요되는 시간이 다릅니다. TRUNCATE는 롤백 테이블스페이스에 들어가지 않고 직접 데이터를 삭제한다.

3) 삭제된 데이터는 데이터 롤백을 위해 Rollback을 실행할 수 있습니다. Truncate는 영구적으로 삭제되며 롤백할 수 없습니다.

4) Truncate 작업은 테이블에서 삭제 트리거를 트리거하지 않지만 삭제는 정상적으로 트리거됩니다.

5) Truncate 문은 where 조건을 가질 수 없습니다. 즉, 모든 데이터는 삭제만 가능하지만 DELETE는 where 조건을 사용하여 데이터를 삭제할 수 있습니다.

6) Truncate 작업은 테이블의 High Water Mark(High Water Mark)를 재설정하지만 삭제 작업은 그렇지 않습니다.

[주제 추천]: 2020 오라클 면접 질문 요약(최신)

2, 집합 연산자

Union: 중복 값을 포함하지 않으며, 첫 번째 쿼리의 첫 번째 열을 기준으로 오름차순으로 정렬됩니다. 기본.

Union All : 전체 Union에 중복된 값이 포함되어 있습니다. 정렬되지 않았습니다.

마이너스는 중복된 값을 포함하지 않으며 정렬되지 않습니다.

3. 데이터베이스의 세 가지 주요 패러다임은 무엇입니까?

1) 첫 번째 정규형: 원자 부분으로, 각 열의 값을 더 이상 분할할 수 없습니다.

2) 제2정규형: 테이블은 하나의 엔터티만 설명합니다(열에 중복된 데이터가 있으면 만족하지 않습니다).

3) 제3정규형: 모든 열이 기본 키 값과 직접 관련됩니다.

4 거래(ACID)의 특징은 무엇인가요?

1) 원자성: 트랜잭션의 모든 작업이 수행되거나 수행되지 않아야 합니다. 작업이 실패하면 전체 트랜잭션이 실패하게 됩니다.

2) 일관성: 트랜잭션이 종료된 후에도 시스템 상태는 동일합니다.

3) 격리됨: 동시에 실행되는 트랜잭션은 서로의 중간 상태를 볼 수 없습니다.

4) 내구성: 트랜잭션이 완료된 후 치명적인 오류가 발생하더라도 로그 및 동기화 백업을 통해 오류 발생 후 데이터를 재구성할 수 있습니다.

5 Mysql 데이터베이스와 Oracle 데이터베이스의 차이점은 무엇인가요?

1. 애플리케이션 측면에서 보면 MySQL은 중소 규모 애플리케이션을 위한 데이터베이스입니다. 일반적으로 개인과 중소기업이 사용합니다. Oracle은 대규모 데이터베이스이며 일반적으로 상당한 규모의 엔터프라이즈 애플리케이션에 사용됩니다.

2. 자동 증가 데이터 유형: MySQL에는 자동 증가 데이터 유형이 있습니다. Oracle에는 자동으로 증가하는 데이터 유형이 없습니다. 자동 증가 시퀀스를 생성해야 합니다.

3, group by Usage: Mysql에서는 group by를 SELECT 문에서 자유롭게 사용할 수 있지만 ORACLE에서는 쿼리 문에 그룹 함수가 있으면 다른 열은 그룹 함수나 SELECT 문에서 처리해야 합니다. 조항 열별로 그룹화합니다. 그렇지 않으면 오류가 보고됩니다.

4. 지침: MySQL에서는 작은따옴표와 큰따옴표를 사용하여 문자열을 묶을 수 있습니다.

6 Oracle과 SQL Server의 차이점은 무엇인가요? 2005년?

거시적으로:
1) 가장 큰 차이점은 Oracle은 다양한 플랫폼에서 실행될 수 있지만 Windows 플랫폼의 안정성과 보안은 SQL Server의 안정성에 영향을 미칩니다. 및 보안
2) Oracle에서 사용하는 스크립트 언어는 PL-SQL이고 SQL Server에서 사용하는 스크립트는 T-SQL입니다.
미시적으로: 데이터 유형, 데이터베이스 구조 등에서 응답합니다.

7. 오라클 커서?

1) Oracle의 커서는 표시 커서와 암시적 커서로 구분됩니다.
2) 표시 커서는 쿼리문(select)에 의해 반환된 여러 레코드를 처리할 수 있는 커서...is 명령으로 정의됩니다. 단일 레코드를 반환하는 삽입, 삭제, 업데이트 및 쿼리(선택) 문을 실행할 때 PL/SQL에 의해 자동으로 정의됩니다.
3) 명시적 커서 작업: 커서 열기, 커서 작동, 커서 닫기 PL/SQL은 암시적으로 SQL 커서를 열고 SQL 문을 내부적으로 처리한 다음 닫습니다.

8 Oracle의 함수 및 프로시저 차이점은 무엇인가요?

1) 함수는 저장 프로시저의 한 유형이라는 것을 알 수 있습니다.
2) 함수에는 매개변수가 없지만 반환 값이 있어야 합니다.
3) 함수 반환에는 반환 값이 없습니다. 반환 매개 변수 모드에서는 저장 프로시저가 여러 매개 변수를 반환해야 하는 경우 저장 프로시저
4)를 사용하는 것이 좋습니다. SQL 데이터 조작 문에서는 함수 호출만 가능하고 저장 프로시저는 호출할 수 없습니다.

9 Oracle 가져오기 내보내기 방법에는 여러 가지가 있으며 차이점은 무엇입니까?

1) oracle 도구 exp/imp 사용
2) plsql 관련 도구 사용
방법 1. 바이너리 데이터 가져오기/내보내기, 2. plsql은 sql 문의 텍스트 파일 가져오기/내보내기

3) sqlloader

4) 디비링크

10. 콜드 백업과 핫 백업의 차이점과 각각의 장점을 설명하세요.

콜드 백업은 데이터베이스가 정상적으로 종료되었을 때 주요 파일을 다른 위치에 복사하는 방법
핫 백업은 데이터베이스가 실행되는 동안 아카이브 모드로 데이터를 백업하는 방법

콜드 백업 장점과 단점:
1). 매우 빠른 백업 방법입니다(파일만 복사)
2). 쉽게 보관할 수 있습니다(복사만 가능)
3). 특정 시점으로 쉽게 복원할 수 있습니다(파일을 다시 복사하기만 하면 됩니다)
4). 데이터베이스의 "최신 상태"를 복원하기 위해 보관 방법과 결합할 수 있습니다.
5). 낮은 유지 관리, 높은 보안.
불충분한 콜드 백업:
1). 단독으로 사용하면 "특정 시점"으로만 복구할 수 있습니다.
2). 백업을 구현하는 전 과정에서 데이터베이스를 백업해야 하며, 다른 작업은 수행할 수 없습니다. 즉, 콜드 백업 중에는 데이터베이스를 닫아야 합니다.
3). 디스크 공간이 제한되어 있으면 테이프 등 다른 외부 저장 장치에만 복사할 수 있어 속도가 매우 느려집니다.
4). 테이블이나 사용자별로 복원할 수 없습니다.

핫 스탠바이의 장점과 단점
1). 테이블스페이스나 데이터 파일 레벨에서 백업이 가능하며, 백업 시간이 짧다.
2). 백업 중에도 데이터베이스를 계속 사용할 수 있습니다.
3). 2차 복구(특정 시점으로의 복구) 달성.
4). 거의 모든 데이터베이스 엔터티를 복원할 수 있습니다.
5). 복구는 빠르며 대부분의 경우 데이터베이스가 계속 작동하는 동안 발생합니다.
핫 백업의 단점은 다음과 같습니다.
1). 실수하면 안 됩니다. 그렇지 않으면 결과가 심각해질 것입니다.
2). 핫 백업이 실패하면 해당 결과를 특정 시점 복구에 사용할 수 없습니다.
3). 유지관리가 어렵기 때문에 각별한 주의가 필요하며, "실패로 끝나는" 것은 허용되지 않습니다.

11 데이터 블록, 범위, 세그먼트의 차이점을 설명해주세요.

데이터 블록은 Oracle의 가장 작은 논리 단위입니다. 일반적으로 Oracle이 디스크에서 읽고 쓰는 것은 여러 개의 인접한 블록으로 구성된 블록
범위 영역
테이블스페이스 그룹으로 구성된 세그먼트 세그먼트입니다. 데이터베이스의 데이터가 논리적으로 저장되는 위치. 테이블스페이스에는 여러 데이터 파일이 포함될 수 있습니다.

12. 교착 상태가 무엇인지, Oracle에서 교착 상태를 해결하는 방법을 설명하세요.

즉, 잠금이 있지만 잠금이 해제되지 않는 경우입니다. 잠금을 사용했지만 트랜잭션이 커밋되거나 롤백되지 않은 경우 테이블 수준의 잠금을 실행할 수 없습니다. 대기 상태인 경우 잠긴 행

해결책:
1) 잠긴 테이블을 알아보세요. b.owner,b.object_name,a.session_id를 선택하세요. ,a.locked_mode
from v$locked_object a,dba_objects b
where b .object_id = a.object_id;

select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
여기서 a.session_id = b.sid 순서는 b.logon_time;

2) 프로세스에서 세션을 종료합니다.

alter 시스템 종료 세션 "sid,serial#"


13

oracle에서 dml, ddl, dcl 사용

Dml 데이터 조작 언어(선택, 업데이트, 삭제, 삽입 등)

Ddl 데이터 정의 언어(예: 테이블 생성, 테이블 삭제 등)
Dcl 데이터 제어 언어 등 커밋, 롤백, 부여, 호출 등

14 인덱스 생성 방법, 인덱스 사용 원칙, 장단점

표준 인덱스 생성:
CREATE INDEX 인덱스 이름 ON 테이블 이름(열 이름) TABLESPACE 테이블 공간 이름; 고유 인덱스 생성:
CREATE 고유 INDEX 인덱스 이름 ON 테이블 이름(컬럼 이름) TABLESPACE 테이블스페이스 이름
결합 인덱스 생성:
CREATE INDEX 인덱스 이름 ON 테이블 이름(컬럼 이름 1, 컬럼 이름 2) TABLESPACE 테이블
역방향 키 인덱스 생성:
CREATE INDEX 인덱스 이름 ON 테이블 이름(열 이름) 역방향 TABLESPACE 테이블스페이스 이름
인덱스 사용 원칙:
인덱스 필드에 NOT NULL 제약 조건을 설정하는 것이 좋습니다. 다른 테이블에 자주 연결되는 테이블, 연결 필드에 인덱스를 설정해야 합니다.
Where 절에 자주 나타나고 필터링 가능성이 높은 필드, 특히 큰 테이블의 필드는 인덱스를 생성해야 합니다.
선택도가 낮은 키워드를 사용할 수 있지만 데이터의 가치 분포가 매우 다르거나 선택 데이터가 상대적으로 작은 경우 효율성을 높이기 위해 인덱스를 사용할 수 있습니다.
종합 인덱스 설정에는 신중한 분석이 필요합니다. ; 대신 단일 필드 인덱스를 사용해 보십시오.
A, 일반적으로 where 절에서 일반적으로 사용되는 필드에 더 선택적인 복합 인덱스의 첫 번째 필드를 올바르게 선택합니다.
B. AND 모드의 where 절에 동시에 나타날 수 있습니다. 그렇지 않으면 단일 필드 인덱스가 Where 절에 단독으로 나타나는 경우가 많습니다.
D. 복합 인덱스에 포함된 필드가 3개를 초과하는 경우에는 필요성을 신중하게 고려하고 단일 필드 인덱스와 복합 인덱스가 모두 있는 경우 이러한 필드는 일반적으로 삭제될 수 있습니다.
인덱스가 너무 많은 테이블을 생성하지 마세요.


인덱스의 장점과 단점:



일부 포인트: 1. 데이터베이스 테이블의 각 데이터 행의 고유성을 보장하기 위해 고유한 인덱스를 만듭니다.
2. 데이터 검색 속도가 크게 향상됩니다. 이는 인덱스 생성의 주요 이유이기도 합니다. 특히 데이터의 참조 무결성을 달성하는 데 있어서 테이블과 테이블 간의 연결. 4. 데이터 검색을 위해 그룹화 및 정렬 절을 사용하면 쿼리에서 그룹화 및 정렬하는 시간도 크게 줄일 수 있습니다. 단점:


1. 인덱스는 테이블에 생성되며 뷰에서는 생성할 수 없습니다.
2. 인덱스를 생성하고 유지하는 데 시간이 걸리며 이는 데이터 양에 따라 증가합니다.
3. 데이터 테이블이 차지하는 데이터 공간 외에도 각 인덱스는 일정량의 물리적 공간을 차지합니다. 클러스터형 인덱스를 구축하려면 필요한 공간이 더 커집니다. 4. 테이블에 데이터를 추가할 때, 삭제할 때 수정하는 경우 인덱스를 동적으로 유지해야 하므로 데이터 유지 관리 속도가 저하됩니다

15 Oracle에는 여러 유형의 잠금이 있으며 그 정의는 무엇입니까?

1. 행 독점 잠금(ROW EXCLUSIVE)
3.
4. 공유 행 배타적 잠금(SHARE ROW EXCLUSIVE)
5. 배타적 잠금(EXCLUSIVE)
사용법:
SELECT * FROM order_master WHERE vencode="V002"
FOR UPDATE WAIT 5
LOCK TABLE order_master IN SHARE MODE;
NOWAIT 독점 모드의 LOCK TABLE 항목 파일

ORACLE 잠금은 구체적으로 다음 범주로 나뉩니다.
1 사용자와 시스템에 따라 자동 잠금과 디스플레이 잠금으로 나눌 수 있습니다.
자동 잠금: 항목을 수행하는 경우 데이터베이스 작업 중에 기본적으로 시스템은 이 데이터베이스 작업에 필요한 모든 잠금을 자동으로 획득합니다.
디스플레이 잠금: 경우에 따라 사용자는 데이터베이스 작업을 더 잘 수행할 수 있도록 데이터베이스 작업을 잠그는 데 사용되는 데이터를 표시해야 합니다. 디스플레이 잠금은 데이터베이스 개체에 대해 사용자가 설정합니다.
2. 잠금 수준에 따라 공유 잠금과 배타적 잠금으로 나눌 수 있습니다.
공유 잠금: 공유 잠금을 사용하면 하나의 트랜잭션이 특정 데이터베이스 리소스에 대한 액세스를 공유할 수 있습니다. 다른 트랜잭션도 이 리소스에 액세스하거나 획득할 수 있습니다. 동일한 공유 잠금. 공유 잠금은 트랜잭션에 높은 동시성을 제공하지만 잘못된 트랜잭션 설계와 공유 잠금으로 인해 교착 상태 또는 데이터 업데이트 손실이 쉽게 발생할 수 있습니다.
배타적 잠금: 트랜잭션이 배타적 잠금을 설정한 후 트랜잭션은 이 리소스만 획득하며, 이 트랜잭션이 커밋되기 전에 다른 트랜잭션은 동일한 개체에 대해 공유 잠금이나 배타적 잠금을 얻을 수 없습니다.
3. 연산에 따라 DML 잠금과 DDL 잠금으로 나눌 수 있다.
DML 잠금은 행 잠금, 테이블 잠금, 교착 상태로 나눌 수 있다.
행 잠금: 트랜잭션이 데이터베이스 삽입을 실행할 때 업데이트 , 삭제 작업 시 트랜잭션은 작업 테이블의 작업 행에 대해 자동으로 배타적 잠금을 획득합니다.
테이블 수준 잠금: 트랜잭션이 행 잠금을 획득하면 트랜잭션도 자동으로 행의 테이블 잠금(공유 잠금)을 획득하여 다른 트랜잭션이 레코드 행 업데이트에 영향을 미치는 DDL 문을 작성하는 것을 방지합니다. 트랜잭션은 프로세스 중에 공유 잠금이나 배타적 잠금을 얻을 수도 있으며, 트랜잭션이 LOCK TABLE 문을 사용하여 명시적으로 배타적 잠금을 정의한 경우에만 테이블에 대한 배타적 잠금을 얻을 수도 있습니다. LOCK을 사용하여 표시할 수도 있습니다. TABLE 문. 테이블 수준 공유 잠금을 정의합니다. LOCK TABLE의 구체적인 사용법은 관련 문서를 참조하세요.
교착 상태: 두 트랜잭션에 충돌하는 잠금 집합이 필요하고 트랜잭션을 계속할 수 없는 경우 교착 상태가 발생합니다. 예를 들어, 트랜잭션 1은 테이블 A의 레코드 #3에 대한 배타적 잠금을 갖고 있고 트랜잭션 2가 테이블 A의 레코드 #4에 대한 배타적 잠금을 해제하기를 기다리고 있는 반면, 트랜잭션 2는 테이블 A의 레코드 #4에 대한 배타적 잠금을 가지고 있습니다. , 그리고 트랜잭션을 기다립니다. 1. 테이블 A의 #3에 배타적 잠금 해제를 기록합니다. 트랜잭션 1과 트랜잭션 2가 서로 기다리므로 교착 상태가 발생합니다. 교착 상태는 일반적으로 잘못된 트랜잭션 설계로 인해 발생합니다. 교착 상태는 SQL을 통해서만 해결할 수 있습니다. alter system kill session "sid,serial#" 또는 UNIX에서 kill -9 sid와 같은 관련 운영 체제의 프로세스를 종료하는 명령을 사용하거나 다른 도구를 사용하여 교착 상태를 종료합니다. 프로세스.

DDL 잠금은 배타적 DDL 잠금, 공유 DDL 잠금, 분석 잠금으로 나눌 수 있습니다.
배타적 DDL 잠금: 데이터베이스 개체를 생성, 수정, 삭제하는 DDL 문은 작업 개체의 배타적 잠금을 얻습니다. 예를 들어, alter table 문을 사용하는 경우 데이터의 완전성, 일관성 및 적법성을 유지하기 위해 트랜잭션은 배타적 DDL 잠금을 획득합니다.
공유 DDL 잠금: 데이터베이스 개체 간의 상호 종속성을 설정해야 하는 DDL 문에는 일반적으로 공유 DDL 잠금이 필요합니다. 패키지를 생성하면 패키지의 프로시저와 함수가 다른 데이터베이스 테이블을 참조합니다. 패키지가 컴파일되면 트랜잭션은 참조 테이블의 공유 DDL 잠금을 획득합니다.

분석 잠금: ORACLE은 공유 풀을 사용하여 분석되고 최적화된 SQL 문과 PL/SQL 프로그램을 저장하여 동일한 문을 실행하는 애플리케이션을 더 빠르게 만듭니다. 공유 풀에 캐시된 개체는 참조하는 데이터베이스 개체에 대한 분석 잠금을 획득합니다. 분석 잠금은 ORACLE이 공유 풀 개체와 참조하는 데이터베이스 개체 간의 종속성을 추적하는 데 사용하는 고유한 유형의 DDL 잠금입니다. 트랜잭션이 공유 풀에서 분석 잠금을 보유한 데이터베이스 객체를 수정하거나 삭제하면 ORACLE은 다음에 이 SQL/PLSQL 문을 참조할 때 이 문을 다시 분석하고 컴파일합니다.
4. 내부 래치 내부 래치: 내부 시스템 구조에 순차적으로 액세스하는 데 사용되는 ORACLE의 특수 잠금 장치입니다. 트랜잭션이 버퍼에 정보를 써야 할 때 이 메모리 영역을 사용하려면 ORACLE은 이 메모리 영역에 정보를 쓰기 전에 먼저 이 메모리 영역의 래치를 획득해야 합니다.

관련 학습 권장 사항: oracle 데이터베이스 학습 튜토리얼

위 내용은 Oracle 면접 질문 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿