나는 100 개의 컬럼을 가진 oracle db 테이블을 가지고있다. 이 테이블의 50 열은이 테이블에 액세스하는 프로그램에서 사용되지 않습니다. (즉, 선택 쿼리만을 사용하여 관련 열을 선택하고 NOT '*')Oracle : 사용되지 않는 열이있는 테이블이 성능에 영향을 줍니까?
내 질문은 이것이다 : 나는이 같은 쿼리를 사용하여 쿼리 성능을 향상하기 만하면 열이 동일한 테이블을 재 작성하는 경우 원래 표와 함께 사용했습니다 (관련 열만 선택되었음을 기억하십시오).
이 프로그램은 이러한 쿼리를 초당 합리적인 횟수로 만들어줍니다.
P. : 이것은 내가 현재 작업하고있는 기존 프로젝트이고 다른 제품에도 테이블 디자인이 오래 전에 만들어진 것입니다. (현재 사용되지 않는 열이있는 이유는 무엇입니까?)
어쨌든 데이터를 전혀 조회하지 않았기 때문에 데이터는 메모리/SGA에로드되지 않습니다. 따라서 메모리/캐시/SGA 모두 문제가되지 않습니다. 저는 OP에서 언급 한 것처럼 관련 칼럼 만 선택된다는 것을 다시 강조합니다. –
데이터가 디스크에서 Oracle SGA (System Global Area) 버퍼 캐시로 반입됩니다. 디스크에서 읽는 가장 작은 단위는 블록입니다. 일반적으로 4kb, 8kb 또는 16kb입니다. 따라서 한 열 또는 모든 열을 읽든 블록 전체를 Oracle 데이터 파일에서 SGA로 물리적으로 읽어 들일 필요가 있습니다. –
내 대답 인 버디를 삭제했습니다. 그리고 나중에 마음을 바꿀 수 있다면 당신을 보완 할 것입니다. 정보 주셔서 감사합니다, 나는 그것을 몰랐습니다. –