Oracle 10g에서 ROW_MOVEMENT를 활성화/비활성화하면 어떤 영향을 받습니까?
우리는 오라클 10G를 사용하고 있고 테이블 중 하나는 데이터를 쿼리/삭제하면 시간이 많이 걸립니다.이 표에는 약 천만 건의 기록이 수록되어 있습니다.
최근 이 테이블에서 ROW_MOVENATION이 비활성화되어 있음을 발견하여 다음 사항을 이해하고자 합니다.
- ROW_MOVENT를 활성화하면 어떤 성능 향상을 얻을 수 있습니까?
- ROW_MOVENT를 활성화하는 데 단점이 있습니까?
- 어떤 계기로 행이 움직였습니까?Oracle은 ROWS 이동이 필요하다고 판단하는 방법은 무엇입니까?
어떤 도움이라도 주시면 대단히 감사하겠습니다.
미리 감사드립니다!!
행 이동은 주로 파티션 테이블에 적용됩니다.파티션 간에 행을 이동할 수 있습니다.기본값인 행 이동이 비활성화된 상태에서는 업데이트가 있는 행을 이동할 수 없습니다.
SQL> CREATE TABLE part_table (ID NUMBER)
2 PARTITION BY RANGE (ID)
3 (PARTITION p0 VALUES LESS THAN (1),
4 PARTITION p1 VALUES LESS THAN (MAXVALUE));
Table created
SQL> INSERT INTO part_table VALUES (0);
1 row inserted
SQL> UPDATE part_table SET ID = 2;
UPDATE part_table SET ID = 2
ORA-14402: updating partition key column would cause a partition change
행 이동을 허용할 경우 업데이트와 함께 행을 이동할 수 있습니다.
SQL> ALTER TABLE part_table ENABLE ROW MOVEMENT;
Table altered
SQL> UPDATE part_table SET ID = 2;
1 row updated
이 기능은 대부분의 경우 성능에 영향을 주지 않습니다. 기능이 활성화되었는지 여부와 상관없이 행이 정확히 동일한 방식으로 저장되고 쿼리됩니다.그러나 행 이동을 활성화하면 예를 들어 행이 물리적으로 이동(삭제+삽입과 유사)될 수 있습니다.예를 들어 인덱스 클러스터 요인에 영향을 미쳐 일부 쿼리의 성능에 영향을 줄 수 있습니다.
은 을 하므로 으로 됩니다 으로 됩니다 을 의미하므로 기본적으로 사용할 수 .rowid행이 변경될 수 있습니다. 이것은 Oracle에서 일반적인 동작이 아닙니다.
은 의 은 은 의 ROWIDs는 변경될 수 있습니다.그래서 만약 당신이 다음을 기반으로 한 질문이 있다면.ROWID그들은 잘못된 결과를 반환할지도 모릅니다.
http://www.dba-oracle.com/t_callan_oracle_row_movement.htm 도 참조하십시오.
다음 작업을 수행하려면 ROW MOVEN(행 이동)이 필요합니다.
- 파티션 간에 행 이동(파티션 테이블)
- 테이블 플래시백
- 축소 테이블(Compact, Cascade, Normal)
질문에 대한 답: 행 이동을 활성화하면 성능이 향상되지 않지만 테이블을 축소할 수 있으므로 전체 테이블 쿼리에 대한 성능이 향상됩니다.
또한 ASKTOM은 다음과 같은 질문에 매우 좋은 답변을 제공합니다.
https://asktom.oracle.com/pls/asktom/f?p=100:11:0 ::::P11_QUESTION_ID:35203106066718
축소(ROW Movement가 필요한) 관련:
작업 수행 전후의 테이블에 대한 성능 지표를 수집하는 벤치마킹을 제안합니다.전체 검색이 이후 더 효율적으로 작동할 것으로 예상할 수 있으며, 블록당 행 수가 더 많기 때문에 인덱스 범위 검색이 변경되지 않거나 "더 나은" 것으로 예상할 수 있습니다(데이터 확산 감소).statspack 또는 dbconsole에서 사용 가능한 도구가 이를 측정하는 데 유용할 것입니다(시간이 지남에 따라 쿼리가 수행하는 작업의 양).
언급URL : https://stackoverflow.com/questions/19430145/what-is-the-impact-of-enabling-disabling-row-movement-in-oracle-10g
'programing' 카테고리의 다른 글
| Spring Rest Template + Spring Web MVC를 이용한 멀티파트 파일 업로드 (0) | 2023.09.06 |
|---|---|
| 업데이트를 위한 mariadb가 올바르게 작동하지 않습니다. (0) | 2023.09.06 |
| 스프링 주입값을 정적 장으로 만드는 방법 (0) | 2023.09.06 |
| 3.0 데이터를 문자열로 신속하게 이동할 수 있습니까? (0) | 2023.09.06 |
| 특정 줄을 무시할 수 있습니까? (0) | 2023.09.06 |