SQL - 문제 미리보기
문제 1745
hard
다음 상황에서 가장 적절한 명령어는?
상황: 대용량 테이블 SalesData(500만 행)에서 모든 데이터를 삭제해야 하지만, 내일 아침에 새로운 데이터를 다시 입력할 예정입니다. 테이블 구조와 인덱스는 그대로 유지하고 싶고, 가장 빠른 방법을 원합니다.
정답: C
이 상황에서는 TRUNCATE TABLE이 가장 적절한 선택입니다.
요구사항 분석:
• 대용량 데이터: 500만 행의 빠른 삭제 필요
• 구조 유지: 테이블 스키마와 인덱스 보존
• 재사용 예정: 내일 새 데이터 입력
• 성능 우선: 가장 빠른 삭제 방법 필요
각 선택지 분석:
1. DELETE FROM SalesData:
```sql
DELETE FROM SalesData;
```
평가:
✓ 구조 유지
✗ 매우 느린 성능 (500만 행 개별 삭제)
✗ 트랜잭션 로그 대량 생성
✗ 시간: 수십 분~수 시간 소요 가능
2. DROP TABLE SalesData:
```sql
DROP TABLE SalesData;
```
평가:
✓ 빠른 성능
✗ 구조까지 삭제 (요구사항 불만족)
✗ 인덱스 삭제됨
✗ 내일 사용 전 테이블 재생성 필요
3. TRUNCATE TABLE SalesData (정답):
```sql
TRUNCATE TABLE SalesData;
```
평가:
✓ 매우 빠른 성능 (수초 내 완료)
✓ 구조 완전 보존
✓ 인덱스 유지
✓ 즉시 재사용 가능
✓ 최소 로깅으로 리소스 절약
4. UPDATE SET NULL:
```sql
UPDATE SalesData SET column1 = NULL, column2 = NULL, ...;
```
평가:
✗ 데이터 삭제가 아닌 NULL로 변경
✗ 매우 느린 성능
✗ 저장공간 여전히 사용
✗ 요구사항 불만족
💡 학습 팁
이 문제를 포함한 SQL 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.