반응형

oracle 43

쿼리 내에서 DML 작업을 수행할 수 없습니다.

쿼리 내에서 DML 작업을 수행할 수 없습니다. 오라클 기능 내부, 특히 커서 루프 내부에서 DML 연산을 추가할 수 없는 이유를 납득할 수 없습니다.저는 오라클이 커서 루프 내에서 DML 연산을 지원하지 않는다고 생각합니다. 커서 루프 안의 테이블에 삽입해야 하는 경우 어떻게 합니까?그 안에 새로운 스토어 프로시저를 만들거나 다른 것을 만들겠습니까? 오류 메시지 : 쿼리 내에서 DML 작업을 수행할 수 없습니다. 여기 제 기능이 있습니다. CREATE OR REPLACE FUNCTION TEST_FUNC(U_ID IN VARCHAR2) RETURN VARCHAR2 IS V_MESSAGE VARCHAR2(30); CURSOR C_PERSON (V_ID VARCHAR2) IS SELECT NAME_UPPE..

itsource 2023.10.24

데이터베이스 테이블의 일부 기록을 확인하는 가장 빠른 방법은?

데이터베이스 테이블의 일부 기록을 확인하는 가장 빠른 방법은? 작업해야 할 큰 테이블이 있습니다. parent_id가 내 통과 값과 동일한 레코드가 있는지 확인하고 싶습니다. 현재 parent_id = :id"인 내 테이블에서 "select count (*)"를 사용하여 이를 구현하는 것입니다. 만약 결과가 0을 초과하면 존재하는 레코드를 의미합니다. 이것은 매우 큰 테이블이기 때문에, 존재하는 레코드의 정확한 수가 몇 개인지는 상관하지 않습니다. 단지 존재 여부를 알고 싶기 때문에 카운트(*)는 다소 비효율적이라고 생각합니다. 이 요구사항을 가장 빠른 방법으로 구현하려면 어떻게 해야 합니까?저는 오라클 10을 사용하고 있습니다. # 동면 팁 & 트릭 https://www.hibernate.org/118..

itsource 2023.10.24

Oracle Streams와 Change Data Capture의 차이점은 무엇입니까?

Oracle Streams와 Change Data Capture의 차이점은 무엇입니까? Oracle Streams, Oracle Change Data Capture 및 Database Change Notification과 같은 몇 가지 비슷한 Oracle 기술이 있습니다. 이것들의 차이점은 무엇입니까? Oracle Advanced Queing과 관련이 있습니까?Oracle CDC는 DB 테이블의 변경 사항을 캡처하는 작업이며 변경 사항은 특수 Oracle 테이블에 저장됩니다.CDC 작동에는 비동기(Java 기반) 또는 동기(DB 트리거 기반, 성능 오버헤드 증가) 두 가지 모드가 있습니다. Oracle Streams는 Oracle CDC의 최상위 위치에 있으며, 두 서버 간의 데이터 동기화를 위한 전체 ..

itsource 2023.10.09

오라클에서 쿼리 성능을 측정하는 방법

오라클에서 쿼리 성능을 측정하는 방법 저는 Oracle db를 처음 접합니다.동일한 결과 세트를 반환하는 2개의 쿼리가 있습니다.저는 그들 각각의 성과를 측정하고 더 좋은 것을 선택하고 싶습니다.Oracle SQL 개발자를 사용하여 어떻게 수행합니까?특정 도구가 통계를 제공한다는 글을 읽은 기억이 납니다.이 통계를 읽는 방법에 대한 조언이 있습니까? 업데이트: Rob Van이 제안한 대로 tkprof 유틸리티를 사용하여 쿼리의 성능을 찾았습니다.몇 가지 매개 변수(카운트, 행, 경과 시간, 실행 시간)는 이해할 수 있었지만 대부분은 이해할 수 없었습니다.누가 그 매개변수들의 중요성을 도와줄 수 있습니까?결과는 아래와 같습니다. Query 1: call count cpu elapsed disk query ..

itsource 2023.10.09

Oracle, PDO_OCI 대 OCI8

Oracle, PDO_OCI 대 OCI8 제가 근무하는 회사는 현재 OCI 라이브러리를 DB 연결 수단으로 추상화하는 기본 기능을 사용하고 있습니다.PHP의 PDO 개체로 전환하는 것을 고려하고 있습니다만, 빠른 검색 결과, Oracle 드라이버가 다른 PDO 드라이버보다 성숙하지 않은 것으로 보입니다.생산 환경에서 PDO/oci8을 사용해 보신 분들께 PDO/oci8에 대한 찬반 의견을 주시면 감사하겠습니다. 감사합니다!저는 PDO 드라이버에 대한 개인적인 경험이 없습니다(실험이라고 태그된 것은 그것을 고려하지 않아도 충분했습니다).그러나 Underground PHP and Oracle Manual에서 PHP PDO Extension 장의 서문과 같이 다음을 읽을 수 있습니다. PDO 확장 및 PDO_..

itsource 2023.09.19

커밋과 선택 사이의 Oracle 시차

커밋과 선택 사이의 Oracle 시차 Oracle 데이터베이스를 사용하여 단계 및 다른 서비스와의 상호 작용을 추적하는 Java Workflow 애플리케이션이 있습니다.워크플로우 실행 중에 여러 개의 삽입/업데이트/선택이 수행되며 성공적으로 완료되기 전에 실행된 삽입/업데이트 커밋이 실행되더라도 선택한 항목이 업데이트된 데이터를 반환하지 않는 경우도 있습니다.워크플로우 오류가 발생한 후(데이터가 좋지 않아), 다시 돌아가서 타사 앱을 통해 데이터베이스를 확인하면 새/업데이트된 데이터가 표시됩니다.우리의 약속이 실행될 때와 실행될 때 사이에 시차가 있는 것 같습니다.이는 전체 워크플로우 실행의 약 2%에서 발생하며 데이터베이스 사용량이 많을 때 증가합니다. 우리 데이터베이스 지원팀은 매개 변수 max-co..

itsource 2023.09.19

날짜 열을 내림차순으로 색인하는 것이 좋습니까?

날짜 열을 내림차순으로 색인하는 것이 좋습니까? 날짜 열이 있는 대부분의 표에서는 최근 정보를 "일반적으로" 쿼리합니다. 날짜 열을 내림차순으로 "일반적으로" 색인하는 것이 좋습니까?Oracle 내부에 대해서는 잘 알지 못하지만 Postgres와 함께 작동하는 방법에 대해서는 다음과 같습니다. 인덱스는 모든 목적과 목적을 위해 클러스터링됩니다.따라서 새 행이 항상 마지막에 추가되는 경우(예: created_at, update_at, billing_at 등) 새 행이 추가되지 않고 추가됩니다(디스크 페이지 분할로 이어짐).이게 더 빨라요. 쿼리 플래너는 인덱스를 역순으로 즐겁게 읽을 것입니다.따라서 단일 열 인덱스인 경우 사용 사례에 새 행이 삽입되는 방법에 관해서는 가장 자연스러운 방법을 사용합니다. 역..

itsource 2023.09.19

하나의 스키마를 다른 새 스키마(Oracle)로 가져오기

하나의 스키마를 다른 새 스키마(Oracle)로 가져오기 문 닫았습니다.이 질문은재현성이 없거나 오타로 인해 발생했습니다.현재 답변을 받지 않고 있습니다. 이 질문은 오타나 더 이상 재현할 수 없는 문제로 인해 발생했습니다.비슷한 질문이 여기서 주제가 될 수 있지만, 이 질문은 미래의 독자들에게 도움이 될 가능성이 적은 방식으로 해결되었습니다. 2년 전에 문을 닫았습니다. 이 질문을 개선합니다. 나는 하나의 스키마 user1 에서 내보낸 데이터 dmp 파일을 가지고 있습니다.exp명령줄 유틸리티 이 덤프를 사용하여 새로 생성된(빈) 다른 스키마 사용자 2로 가져오겠습니다.imp명령줄 유틸리티 다음과 같은 몇 가지를 시도했습니다. imp system/password@tesdb fromuser=user1 t..

itsource 2023.09.14

SQL 오류: ORA-02298: 유효성을 검사할 수 없습니다(SYSTEM).AEROPUTO_FK) - 상위 키를 찾을 수 없음

SQL 오류: ORA-02298: 유효성을 검사할 수 없습니다(SYSTEM).AEROPUTO_FK) - 상위 키를 찾을 수 없음 Oracle SQL Developer에서 다음 오류가 발생합니다. Error starting at line 1 in command: ALTER TABLE AEROPUERTO ADD CONSTRAINT AEROPUERTO_FK FOREIGN KEY (CODIGO_CIUDAD) REFERENCES CIUDAD(CODIGO) Error report: SQL Error: ORA-02298: cannot validate (SYSTEM.AEROPUERTO_FK) - parent keys not found 02298. 00000 - "cannot validate (%s.%s) - paren..

itsource 2023.09.04

오라클 테이블에 데이터를 삽입하는 가장 빠른 방법은 무엇입니까?

오라클 테이블에 데이터를 삽입하는 가장 빠른 방법은 무엇입니까? 데이터를 처리하여 테이블에 로드하는 데이터 변환을 PL/SQL로 작성하고 있습니다.PL/SQL Profiler에 따르면 변환에서 가장 느린 부분 중 하나는 대상 테이블에 실제 삽입하는 것입니다.테이블에는 단일 인덱스가 있습니다. 로드할 데이터를 준비하기 위해 테이블의 행 유형을 사용하여 변수를 채운 다음 다음과 같이 테이블에 삽입합니다. insert into mytable values r_myRow; 다음을 수행함으로써 성과를 얻을 수 있었던 것 같습니다. 삽입하는 동안 로깅 끄기 한 번에 여러 레코드 삽입 이러한 방법이 바람직합니까?그렇다면 구문은 무엇입니까?PL/SQL 테이블과 FORALL을 사용하여 한 번에 수백 개의 행을 삽입하는 것..

itsource 2023.08.30
반응형