Posted
Filed under DataBase/Oracle

Oracle에서 ORDER BY 없이 인덱스만으로 자동 정렬이 될까?

 

 

결론부터 말하겠습니다.
“안 됩니다. 반드시 ORDER BY를 써야 합니다.”
인덱스가 정렬된 구조라 하더라도, Oracle은 쿼리 결과의 순서를 자동으로 보장하지 않습니다.

1. 왜 안 되는가?

- SQL에서 ORDER BY가 없으면 결과 순서는 미정(indeterminate) 입니다.
- 인덱스는 내부적으로 정렬된 구조(B-tree)를 유지하지만, 데이터를 읽어오는 순서는 옵티마이저가 결정합니다.
- 옵티마이저는 인덱스를 항상 순차적으로 읽는 보장이 없고, 다른 실행 계획(Full Table Scan 등)으로 바꿀 수 있습니다.

2. “근데 인덱스를 타면 정렬돼서 나오던데요?”

맞습니다. 다음과 같은 조건에서는 우연히 정렬처럼 보일 수 있습니다.
- Index Range Scan이나 Index Full Scan을 사용
- 쿼리에서 필요한 컬럼이 모두 인덱스에 포함됨 (Covering Index)
- 실행 계획이 변하지 않고, 통계 정보나 데이터 양이 비슷한 경우
 
하지만 이건 어디까지나 지금 환경에서만 우연히 정렬된 것입니다.
옵티마이저 통계가 갱신되거나 실행 계획이 바뀌면 바로 깨집니다.

2025/08/09 13:40 2025/08/09 13:40
Posted
Filed under 공부한 것들/기타

가장 많이 쓰는 한 줄 (그대로 붙여넣기)

robocopy "C:\원본\폴더" "E:\외장SSD\대상\폴더" /E /MT:10 /COPY:DAT /DCOPY:T
  • /E : 하위 폴더 전부 + 빈 폴더까지 복사
  • /MT:10 : 10개 스레드로 동시에 복사(멀티스레드)
  • /COPY:DAT : 데이터/속성/시간만 복사(권한은 제외)
  • /DCOPY:T : 폴더의 시간 정보도 유지
추천 값
• HDD → 외장 SSD : /MT:8~12
• SSD ↔ SSD : /MT:16~32 (상황 봐서 올리기)

자주 쓰는 상황별 예시

1) HDD → 외장 SSD (안정적·빠르게)

robocopy "C:\원본" "E:\대상" /E /MT:10 /R:2 /W:2 /COPY:DAT /DCOPY:T

/R:2 /W:2 : 실패 시 2회 재시도, 2초 간격

2) SSD ↔ SSD “동기화”(소스와 똑같이 맞추기)

robocopy "D:\SRC" "G:\DST" /MIR /MT:32 /R:2 /W:2 /COPY:DAT /DCOPY:T
주의 /MIR는 대상에서 소스에 없는 파일을 삭제합니다. 먼저 드라이런으로 점검하세요.
robocopy "D:\SRC" "G:\DST" /MIR /L /NP

3) 변경된 것만 빠르게(증분 느낌)

robocopy "C:\SRC" "E:\DST" /E /MT:16 /XO /XN /XC /R:2 /W:2 /COPY:DAT /DCOPY:T

4) 네트워크 드라이브(중간에 끊겨도 이어받기)

robocopy "\\SERVER\share\SRC" "E:\DST" /E /Z /MT:16 /R:3 /W:5 /COPY:DAT /DCOPY:T

/Z : 재시작 가능한 모드(네트워크 불안정 시 유용)

숨김/시스템 파일도 복사되나요?

네, 기본적으로 전부 복사됩니다(별도로 빼라는 옵션을 주지 않으면).

대상에서 숨김/시스템 속성을 지우고 싶다면:

robocopy "C:\SRC" "E:\DST" /E /MT:10 /COPY:DAT /DCOPY:T /A-:SH

/A-:SH : 복사된 파일·폴더의 숨김(H)/시스템(S) 속성 제거

링크/정션으로 무한 루프가 걱정되면 /XJ(정션 제외) 옵션을 고려하세요.

로그 파일 없이, 화면도 조용하게

로그를 남기지 않으려면 /LOG 옵션을 쓰지 않으면 됩니다. 출력도 최소화하려면:

robocopy "C:\SRC" "E:\DST" /E /MT:10 /R:2 /W:2 /COPY:DAT /DCOPY:T /NP /NFL /NDL

완전 무소음은 끝에 >nul (또는 >nul 2>&1) 추가

어디에서 실행하나요?

  • CMD(관리자) : 시작 메뉴에서 “명령 프롬프트” → 우클릭 → 관리자 권한으로 실행
  • Windows 터미널(관리자) 도 동일하게 사용 가능
  • 명령어는 CMD/PowerShell 둘 다 똑같이 됩니다

마지막 체크리스트

  • 대량 삭제 위험이 있는 /MIR는 꼭 /L 로 미리 점검
  • 경로가 너무 길면 \\?\C:\... 형태 고려
  • 외장 SSD가 exFAT이면 권한 정보가 안 맞을 수 있으니 /COPY:DAT 권장
  • 최적 속도는 PC마다 다릅니다. /MT 값을 8, 12, 16…으로 바꿔 짧게 테스트

 

2025/08/09 13:28 2025/08/09 13:28