코드 :
--오늘의 자습시간 문제_2026_01_27
--문제1. 아래의 SQL을 튜닝하시오
--튜닝 전
select count(*)
from dba22_list
where substr(telecom, 1,1 ) ='s';
--결과 : 10
SELECT * FROM table(dbms_xplan.display_cursor(null, null, 'ALLSTATS LAST'));
--튜닝 후
select count(*)
from dba22_list
where telecom like 's%';
--결과 : 10
SELECT * FROM table(dbms_xplan.display_cursor(null, null, 'ALLSTATS LAST'));
코드 :
--문제2. orcl 데이터베이스에 market_2022 테이블과 데이터를 만드시오
CREATE TABLE "MARKET_2022"
("상가업소번호" VARCHAR2(200 BYTE),
"상호명" VARCHAR2(200 BYTE),
"지점명" VARCHAR2(200 BYTE),
"상권업종대분류코드" VARCHAR2(200 BYTE),
"상권업종대분류명" VARCHAR2(200 BYTE),
"상권업종중분류코드" VARCHAR2(200 BYTE),
"상권업종중분류명" VARCHAR2(200 BYTE),
"상권업종소분류코드" VARCHAR2(200 BYTE),
"상권업종소분류명" VARCHAR2(200 BYTE),
"표준산업분류코드" VARCHAR2(200 BYTE),
"표준산업분류명" VARCHAR2(200 BYTE),
"시도코드" VARCHAR2(200 BYTE),
"시도명" VARCHAR2(200 BYTE),
"시군구코드" VARCHAR2(200 BYTE),
"시군구명" VARCHAR2(200 BYTE),
"행정동코드" VARCHAR2(200 BYTE),
"행정동명" VARCHAR2(200 BYTE),
"법정동코드" VARCHAR2(200 BYTE),
"법정동명" VARCHAR2(200 BYTE),
"지번코드" VARCHAR2(200 BYTE),
"대지구분코드" VARCHAR2(200 BYTE),
"대지구분명" VARCHAR2(200 BYTE),
"지번본번지" VARCHAR2(200 BYTE),
"지번부번지" VARCHAR2(200 BYTE),
"지번주소" VARCHAR2(200 BYTE),
"도로명코드" VARCHAR2(200 BYTE),
"도로명" VARCHAR2(200 BYTE),
"건물본번지" VARCHAR2(200 BYTE),
"건물부번지" VARCHAR2(200 BYTE),
"건물관리번호" VARCHAR2(200 BYTE),
"건물명" VARCHAR2(200 BYTE),
"도로명주소" VARCHAR2(200 BYTE),
"구우편번호" VARCHAR2(200 BYTE),
"신우편번호" VARCHAR2(200 BYTE),
"동정보" VARCHAR2(200 BYTE),
"층정보" VARCHAR2(200 BYTE),
"호정보" VARCHAR2(200 BYTE),
"경도" VARCHAR2(200 BYTE),
"위도" VARCHAR2(200 BYTE)
);
select * from market_2022; --312811
코드 :
--문제3. market_2022 테이블을 list 파티션으로 생성하세요 (파티션 키는 시군구명으로 하세요)
--이수자 평가 제출물 8번입니다.
CREATE TABLE MARKET_2022_list
("상가업소번호" VARCHAR2(200 BYTE),
"상호명" VARCHAR2(200 BYTE),
"지점명" VARCHAR2(200 BYTE),
"상권업종대분류코드" VARCHAR2(200 BYTE),
"상권업종대분류명" VARCHAR2(200 BYTE),
"상권업종중분류코드" VARCHAR2(200 BYTE),
"상권업종중분류명" VARCHAR2(200 BYTE),
"상권업종소분류코드" VARCHAR2(200 BYTE),
"상권업종소분류명" VARCHAR2(200 BYTE),
"표준산업분류코드" VARCHAR2(200 BYTE),
"표준산업분류명" VARCHAR2(200 BYTE),
"시도코드" VARCHAR2(200 BYTE),
"시도명" VARCHAR2(200 BYTE),
"시군구코드" VARCHAR2(200 BYTE),
"시군구명" VARCHAR2(200 BYTE),
"행정동코드" VARCHAR2(200 BYTE),
"행정동명" VARCHAR2(200 BYTE),
"법정동코드" VARCHAR2(200 BYTE),
"법정동명" VARCHAR2(200 BYTE),
"지번코드" VARCHAR2(200 BYTE),
"대지구분코드" VARCHAR2(200 BYTE),
"대지구분명" VARCHAR2(200 BYTE),
"지번본번지" VARCHAR2(200 BYTE),
"지번부번지" VARCHAR2(200 BYTE),
"지번주소" VARCHAR2(200 BYTE),
"도로명코드" VARCHAR2(200 BYTE),
"도로명" VARCHAR2(200 BYTE),
"건물본번지" VARCHAR2(200 BYTE),
"건물부번지" VARCHAR2(200 BYTE),
"건물관리번호" VARCHAR2(200 BYTE),
"건물명" VARCHAR2(200 BYTE),
"도로명주소" VARCHAR2(200 BYTE),
"구우편번호" VARCHAR2(200 BYTE),
"신우편번호" VARCHAR2(200 BYTE),
"동정보" VARCHAR2(200 BYTE),
"층정보" VARCHAR2(200 BYTE),
"호정보" VARCHAR2(200 BYTE),
"경도" VARCHAR2(200 BYTE),
"위도" VARCHAR2(200 BYTE)
)
PARTITION BY LIST (시군구명)
(
PARTITION p_강남구 VALUES ('강남구'),
PARTITION p_강동구 VALUES ('강동구'),
PARTITION p_강북구 VALUES ('강북구'),
PARTITION p_강서구 VALUES ('강서구'),
PARTITION p_관악구 VALUES ('관악구'),
PARTITION p_광진구 VALUES ('광진구'),
PARTITION p_구로구 VALUES ('구로구'),
PARTITION p_금천구 VALUES ('금천구'),
PARTITION p_노원구 VALUES ('노원구'),
PARTITION p_도봉구 VALUES ('도봉구'),
PARTITION p_동대문구 VALUES ('동대문구'),
PARTITION p_동작구 VALUES ('동작구'),
PARTITION p_마포구 VALUES ('마포구'),
PARTITION p_서대문구 VALUES ('서대문구'),
PARTITION p_서초구 VALUES ('서초구'),
PARTITION p_성동구 VALUES ('성동구'),
PARTITION p_성북구 VALUES ('성북구'),
PARTITION p_송파구 VALUES ('송파구'),
PARTITION p_양천구 VALUES ('양천구'),
PARTITION p_영등포구 VALUES ('영등포구'),
PARTITION p_용산구 VALUES ('용산구'),
PARTITION p_은평구 VALUES ('은평구'),
PARTITION p_종로구 VALUES ('종로구'),
PARTITION p_중구 VALUES ('중구'),
PARTITION p_중랑구 VALUES ('중랑구'),
PARTITION p_def VALUES (DEFAULT)
);
--데이터 이관하기!
insert into MARKET_2022_list
select * from market_2022;
select * from MARKET_2022_list; --312811