Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

Oracle 21c의 새로운 기능

Oracle 21c 데이터베이스는 자율 데이터베이스(ADB), Oracle Exadata service@customer 및 Oracle Exadata 머신을 비롯한 온프레미스 및 클라우드 인프라에서 Oracle 데이터베이스 서비스를 강화합니다.

최신 Oracle 버전에는 새로운 사례, 옵티마이저 성능 자동화, JSON 데이터 및 그래프 모델 지원이 포함됩니다. 자동화 기능은 사용자와 개발자 모두의 삶을 더 쉽게 만들어줍니다. 광범위한 데이터 모델, 워크로드를 지원하고 특히 내장 기계 학습 기능을 포함하여 별도의 서비스가 필요하지 않습니다.Oracle 21c는 SQL, REST 및 API를 지원합니다. 모든 유형의 데이터 모델에 걸친 트랜잭션

21c 아키텍처

Oracle 데이터베이스 아키텍처는 이전 버전과 같습니다. 다음 다이어그램과 같이 Oracle 데이터베이스 인스턴스와 Oracle 데이터베이스로 구성됩니다.

이미지 출처

오라클 데이터베이스 21c 기술 아키텍처:

다중 테넌트 아키텍처는 데이터 파일이라는 물리적 파일로 구성되며 데이터베이스 인스턴스는 메모리 구조(공유 전역 영역 및 PGA로 알려진 SGA)와 서버 프로세스의 도움으로 사용자를 대신하여 쿼리 실행, 디스크, 데이터 파일 또는 리두 로그 파일에 데이터 쓰기, 실행 계획 저장 등.

단일 데이터베이스 아키텍처에는 인스턴스와 데이터베이스 간의 일대일 관계가 포함됩니다. 동일한 서버에 여러 개의 단일 인스턴스를 설치할 수 있지만 각 인스턴스에 대해 별도의 데이터베이스가 있습니다.

Oracle RAC 아키텍처는 별도의 서버에서 실행되는 여러 인스턴스로 구성되지만 모두 동일한 데이터베이스를 사용합니다. 이 구성은 고객에게 고가용성, 고성능 및 확장성을 제공하도록 설계되었습니다. 데이터베이스의 수신기는 클라이언트 응용 프로그램 요청을 수락하고 데이터베이스에 대한 연결을 설정한 다음 서버 프로세스에 전달합니다. 서버 프로세스는 사용자를 대신하여 작동하고 요청을 수행합니다.

오라클 21c 기능

21c 생성은 모든 유형의 데이터 유형을 지원합니다. 관계형, JSON, XML, 공간 그래프, OLAP 등을 제공하며 다음 이미지와 같이 분석, 운영 및 혼합 워크로드와 같은 모든 유형의 워크로드에 더 높은 성능, 확장성, 가용성 및 보안을 제공합니다.

이미지 출처

1) 블록체인 테이블:

검증된 거래와 관련된 다양한 문제를 해결했습니다. 분산 원장을 지원할 수 있는 애플리케이션 구축의 복잡한 특성을 지원합니다. 이러한 테이블은 일반 힙 테이블처럼 작동하지만 몇 가지 중요한 차이점이 있습니다. 이들 중 가장 주목할만한 것은 행이 테이블에 삽입될 때 암호화 방식으로 해시되어 행이 나중에 더 이상 변경될 수 없도록 보장한다는 것입니다.

이미지 출처

이것은 삽입 전용 테이블을 생성하고 사용자는 블록 체인 테이블 행을 업데이트하거나 삭제할 수 없습니다. 또한 사용자는 특정 시간 제한 내에서 데이터 자르기, 블록체인 삭제 및 테이블 분할을 방지합니다. 이러한 중요한 기능은 다른 사용자가 블록체인 테이블에 보관된 데이터가 정확한 이벤트 기록임을 신뢰할 수 있음을 의미합니다.

2) 네이티브 JSON 데이터 유형:

JSON 데이터를 ARCHAR2 또는 LOB(CLOB 또는 BLOB)로 저장하여 개발자가 스키마 없는 설계 모델의 유연성으로 애플리케이션을 빌드할 수 있도록 도와줍니다. 예를 들어, 사용자는 SQL로 JSON 문서를 쿼리하고 고급 분석을 활용하고 개별 속성 또는 전체 문서를 색인화하고 수십억 개의 JSON 문서를 병렬로 처리할 수 있습니다. Oracle Database 21c에서 JSON 지원은 기본 데이터 유형인 "JSON"을 제공하여 더욱 향상되었습니다.

즉, 읽기 또는 업데이트 작업에서 JSON을 구문 분석하는 대신 구문 분석이 삽입에서만 발생하고 JSON은 액세스 속도가 훨씬 빨라지는 내부 바이너리 형식으로 유지됩니다. 그 결과 읽기 및 업데이트 작업이 4~5배 빨라지고 매우 큰 JSON 문서에 대한 업데이트가 20~30배 빨라질 수 있습니다.

CREATE TABLE j_order

(

id INTEGER PRIMARY KEY,

po_doc JSON

);

새로운 데이터 유형은 Oracle Database 21c에서 JSON에 대해 도입된 유일한 변경 사항이 아니었으며, Oracle은 또한 단일 작업으로 문서의 여러 속성을 업데이트하고 제거하는 것을 훨씬 간단하게 만드는 새로운 JSON 함수 JSON_TRANSFORM을 추가했습니다.

                                        UPDATE j_order SET po_doc = JSON_TRANSFORM( po_doc,
                                        SET '$.address.city' = 'Santa Cruz',
                                        REMOVE'$.phones[*]?(@.type == "office")
                                      )
                                      WHERE id = 555;

3) Oracle 데이터베이스 내에서 JavaScript 실행:

MLE(Multi Language Engine)를 사용하여 DBMS_MLE라는 새 PL/SQL 패키지로 데이터베이스 내부에서 자바 스크립트 코드를 실행합니다. MLE. Java 스크립트는 웹 애플리케이션 및 모바일 앱에서 보다 풍부한 사용자 상호 작용을 가능하게 합니다. 웹 브라우저에서 실행되는 몇 안되는 언어 중 하나이며 서버 및 클라이언트 측 코드를 모두 개발하는 데 사용할 수 있습니다.

복잡한 프로그램을 구현하기 위한 기존 JavaScript 라이브러리의 대규모 컬렉션이 있으며 JavaScript는 JSON 및 REST와 같은 인기 있는 개발 기술과 함께 작동합니다. Oracle 21c에서 개발자는 데이터가 있는 데이터베이스 내에서 Java 스크립트 코드를 실행할 수 있습니다. 그것은 그들이 브라우저의 중간 계층으로 데이터를 이동하지 않고 자바 스크립트로 작성된 짧은 계산 작업을 실행할 수 있습니다. MLE는 Java 스크립트 데이터 유형을 Oracle Database 데이터 유형에 자동으로 매핑하며 그 반대로도 마찬가지이므로 개발자는 데이터 유형 변환을 처리할 필요가 없습니다.

또한 Java 스크립트는 내장된 Java 스크립트 모듈을 통해 PL/SQL 및 SQL을 실행할 수 있습니다. 이 모든 것을 통해 APEX 개발자는 PL/SQL 및 SQL의 성능을 희생하지 않고도 APEX 앱 내에서 자바 스크립트를 일급 언어로 사용할 수 있습니다. JavaScript에서는 일반 SQL을 통해 데이터베이스(테이블 및 보기)에 액세스할 수 있습니다. 다음은 Java 스크립트로 코드를 작성하는 방법을 보여줍니다.

선언

ctx dbms_mle.context_handle_t;

시작

ctx :=dbms_mle.create_context(); – MLE 실행을 위한 실행 컨텍스트 생성

dbms_mle.eval(ctx, 'JAVASCRIPT', 'console.log(Hello from JavaScript )'); – 소스 코드 평가

실행 컨텍스트의 스니펫

dbms_mle.drop_context(ctx); –

더 이상 필요하지 않은 실행 컨텍스트를 삭제합니다.

참고 :컨텍스트가 유지되는 한 functionsend를 포함한 전역 개체의 값을 유지합니다.

4) SQL 매크로:

SQL 쿼리가 no로 복잡해지는 것은 정상입니다. 조인 수가 증가하거나 데이터 검색이 더 복잡해지고 개발자는 저장 프로시저와 함수를 사용하여 이러한 작업을 단순화하여 이 문제를 해결합니다. 그러나 SQL 엔진이 PL/SQL 엔진과 컨텍스트를 전환하므로 성능이 저하될 수 있습니다. Oracle 21c에서 SQL 매크로는 SQL 표현식과 테이블 함수를 실행하려는 SQL에 삽입할 문자열 리터럴을 반환하는 저장 프로시저에 대한 호출로 대체할 수 있도록 하여 이 문제를 해결합니다.

5) 메모리 내 개선 사항:

열 형식을 사용하여 데이터를 분석하면 행 기반 형식에 비해 성능이 향상될 수 있습니다. 데이터 업데이트는 행 모델에서 더 빠르지만 Oracle 데이터베이스 인메모리 기능은 요구 사항에 따라 두 모델을 모두 사용하는 데 도움이 됩니다. 이 도움으로 사용자는 변경 없이 응용 프로그램을 실행할 수 있으며 인메모리는 엄청나게 빠른 실시간 분석 쿼리를 지원하는 열 저장을 유지합니다. 성능을 향상하고 Oracle 데이터베이스 인메모리에서 쉽게 사용할 수 있도록 세 가지 주요 개선 사항이 있습니다.

A. 데이터베이스 메모리 내 벡터 조인:

이는 메모리 내 열 저장소 내부의 열에 대한 해시 조인과 같은 작업을 가속화하는 데 도움이 됩니다. 해시 조인의 경우 조인을 더 작은 작업으로 나누어 벡터 프로세스로 전달합니다. 사용된 키 값 테이블은 SIMD에 최적화되어 있으며 오른쪽 및 왼쪽 조인의 행을 일치시키는 데 사용되며 성능이 10배 향상됩니다.

나. 자체 관리 메모리 내 열 저장소:

Oracle 데이터베이스 인메모리가 출시되었을 때 사용자는 메모리 열 저장소에 채워진 열을 명시적으로 선언해야 했으며, 이는 메모리가 부족한 경우 사용자에게 높은 제어 권한을 제공합니다.

18c 데이터베이스에서는 활발히 사용되는 개체를 열 저장소에 자동으로 배치하고 사용하지 않는 개체를 제거하는 기능을 도입했습니다. 그러나 사용자는 여전히 고려해야 할 개체를 표시해야 했습니다.

Oracle Database 21c에서 INMEMORY_AUTOMATIC_LEVEL을 HIGH로 설정하면 모든 개체가 고려되므로 메모리 내 열 저장소 관리 작업이 단순화됩니다.

C. 메모리 내 하이브리드 컬럼 스캔:

메모리가 제한되어 있으므로 열 저장소에 채워진 모든 테이블의 모든 열을 가질 수는 없습니다. 많은 경우에 이것은 문제가 되지 않지만 때때로 사용자는 열 저장소의 데이터(열)와 행 저장소에서만 사용할 수 있는 데이터가 필요한 쿼리를 만날 수 있습니다.

Oracle Database In-Memory의 이전 릴리스에서는 이러한 쿼리가 단순히 행 저장소에 대해 실행되었습니다. Oracle Database 21c에서 사용자는 이제 둘 다 사용할 수 있습니다! 이제 옵티마이저는 메모리 내 열 저장소를 스캔하고 필요한 경우 행 저장소에서 예상 열 값을 가져오도록 선택할 수 있습니다. 이는 상당한 성능 향상을 가져올 수 있습니다.

이미지 출처

결론

전반적인 이점은 다음과 같이 요약할 수 있습니다.

1) 데이터베이스의 쿼리 성능이 크게 향상되었습니다.

2) 21'세대는 JSON, XML, OLAP 등 모든 데이터 유형을 지원합니다.

3) 확장성이 뛰어나고 가용성이 높으며 모든 워크로드(예:OLTP, 임시 쿼리 및 데이터 웨어하우스)에 보안을 제공합니다.

4) 운영 및 혼합 워크로드를 모두 지원합니다.

5) 21C에서는 병렬 스캔, 온라인 백업 등과 같은 많은 것들이 자동화되어 개발자가 데이터 지속성에 대해 걱정하지 않아도 됩니다.

6) 자동 인덱싱과 같은 기능을 통해 성능 기능이 크게 자동화되었습니다.

피드백 탭을 사용하여 의견을 작성하거나 질문하십시오. 저희와 대화를 시작할 수도 있습니다.