반응형

오늘은 우정국 데이터를 활용하여 우편번호 DB를 생성하는 로직을 작성해보도록 하겠다.


아래 순서대로 한다면은 쉽게 우정국 데이터를 가져와서 DB를 생성할 수 있다.


 우정국 데이터 : http://www.epost.go.kr/search/zipcode/newAddressDown.jsp


크게 보면 도로명 우편번호와 지번 우편번호 두가지가 있다.


(1) 우선 도로명 우편번호를 모두다 다운로드 하여 압축을 풀도록 한다.


그럼 아래 그림과 같이 다운로드 완료됨을 확인 할 수 있다.



(2) 모든 데이터를 하나로 합치기 위해서 CYGWIN을 통해서 하나의 파일로 만든다.


$> cat *.zip > postno.txt



이제 위처럼 쉽게 데이터가 쌓여 있는 것을 확인할 수 있다.


위 데이터를 불용처리를 통해 불필요한 데이터만 grep으로 삭제해준 후에 mysql에 다음과 같이 입력하도록 한다.


(3) txt를 Mysql로 bulk insert 한다.

LOAD DATA local infile "p:/1/a.txt" INTO TABLE tb_doro fields terminated by '|' lines 

terminated by '\n' 

(post_no,serial_num,sido,sido_eng,gungu,gungu_eng,eup,eup_eng,road_code,road_name,

road_name_eng,base_stat,building_num_main,building_num_sub,buliding_mn_num,

delivery_name,building_name,dong_code,dong,ri,mt_stat,jibun_main_num,dong_serial_num,

jibun_sub_num);


물론 ER-D는 각자의 호기에 맞게 작성해 주어야 한다.



반응형

'DB > Maria & Mysql' 카테고리의 다른 글

MariaDB Character Set UTF8mb4 변경법  (0) 2018.12.04
mysqldump 특정 테이블 제외하기  (0) 2014.10.08
Maria DB 설치 후기  (3) 2013.12.04
MS-SQL 주석달기  (0) 2013.08.28
MYSQL Data Repository(저장소) 변경방법  (0) 2012.12.31
반응형

Maria DB 에 대해


최근 Mysql 이 미국의 Oracle 사로 넘어가면서, 개발자들 걱정이 이만저만이 아니다.


과연!!! 상업적 목적을 가진 기업에서 과연 Mysql 을 무료 라이센스인 GPL 라이센스로 할것인가? 이다.


아직까지는 무료이지만, 향후 유료화 정책을 펼칠 예정이라 하니, 성능좋은 무료 DB가 이젠 없어지느것이 아닌가 하는 생각이든다.


Maria DB는 Mysql의 초창기 개발을 했던 Mysql AB 출신들이 별도로 분가하여 만든 오픈소스DBMS이다.


기능상 차이점은 거의 없으면 99% 호환이 된다고 한다. 그래서, 한번 깔아보고 써본 후기를 적어보도록 하겠다.


Maria DB 설치 후기


(1) Maria DB 최신버젼인 5.5 버젼을 msi 파일로 다운받아 설치를 하니 이런 화면이 뜬다.

왠지.. 물개가 나오는게 마리아의 뜻이랑 다른것 같다. 보통 당나귀 종류를 maria라고 미국에서는 부른다고 하느뎅...


(2) 간단한 약관이 나온다 체크 후 넘어가도록 하자.


(3) DB를 만들것이냐, 아님 업그레이드 할것이냐 물어본다. 난 걍 db를 만들어 본다.


(4) 설치 경로를 물어보는것인데, 이것도 그냥 Path 하자.


(5) 최초 root 비번을 묻는다. 이건 1234로 대충하고 그 바로 밑에 root가 원격으로 접속할 수 있도록 체크하였다.

     보안이 필요하다면, 체크안하는게 좋다 콘솔로만 접속하는것이 가장 안전하기 때문이다.


(6) 이미 mysql 이 깔려있기 떄문에 포트를 3307로 바꾸어서 실행한다. 트랜잭션 buffer size는 default로 그냥둠.


(7) plug-in 정보가 새로나오면 연락받겠냐는 건데, 그냥 체크안하고 Next한다.


(8) 환경설정이 다되었으니 이제 Install을 클릭해 보자.


(9) 열심히 진행중..


(10) 열심히 진행중.. (64비트 내컴터 기준으로 설치하는데 약 50초 정도 걸린듯 하다)


(11) 드디어 설치 완료됨 ... !!!


(12) 콘솔로 한번 붙어 보았다. 실제 mysql 명령어가 잘 먹히는지 테스트 해보니 이건 마치 Mysql이란 다른게 없었다.

내부적인 엔진은 더 좋아졌다는 애기를 들었지만, 명령어의 차이가 없을줄이야~~~ 허걱

다만, 바뀐게 있다면 Prompt 정도만 바뀐것 같다.


반응형
반응형

SQL Server 에서 Batch Program 작업이나 Bulk 작업등의 프로세스를 실행할 경우

간혹가다 Lock이 걸리게 된다. 오라클이나 Mysql 에서는 ROW LOCK이 자주 발생하게 되는데

이러한 Lock은 Application단의 logic Transaction관리에서 발생하게 된다.

 

SQL Server 에서의 Lock의 종류와 유형에 대해서 알아보고, 어떠한 Statement가 Lock을 발생

시키는지 알아보도록 하겠다.

 

(1) SQL Server Lock의 종류와 설명 

 Lock 조회방법 : sp_lock

 

결과 : 아래 그림과 같이 표현된다.

 

위 조회결과에서 주의깊게 봐야할 부분은 Type 부분이다. DB,TAB 과 같이 출력된 부분이 바로 Lock의 종류이다.

Lock Type 

 Description

 RID

 테이블의 ROW를 잠근다(흔히들 ROW LOCK이라 불린다.)

 KEY

 INDEX ROW LOCK임.(IDENTITY 속성이 트랜잭션 범위에 있다면 LOCK이 걸린다.)

 PAG

 데이터 또는 인덱스 페이지 이다.

 TAB

 모든 데이터와 인덱스가 포함된 전체 테이블 이다.

 DB

 데이터 베이스 이다.

 

(2) 어떠한 SQL이 Lock을 발생시키고, 어떠한 프로세스가 대기 상태인지 조회 가능할까?

실제 Lock이 걸렸다면, Lock의 종류만 아는것 보다는, 어떤 프로세스가 Lock이 걸려 있는지 조회 할 수 있으면

더욱 유용하게 사용할 수 있을 것이다. 만약 상사가 Lock이 어디걸렸어? 라고 물어보았을때 Best Answer은

"어떤 영역에 TABLE Lock 이 걸려있어서, 어떤 프로세스가 거기를 select 하려다 보니 안됩니다."

라고 대답하는게 최고의 대답이 아닐까 생각한다.

 

** Lock을 발생시킨 프로세스를 찾아라 !!! **

 

 Lock 걸린 프로세스 조회 : sp_who or sp_who2(추천)

 

sp_who2를 실행하였을때 아래와 같은 결과가 나온다.

여기서 주의깊게 봐야할 컬럼은 BlkBy 이다. 30 번 라인을 보면 SUSPENDED 라고 해서 한국어로 하면 지연됨 이란 글자와 함께

BlkBy 컬럼에 59란 숫자가 있다. 이부분이 매우 중요하다. 이 부분을 해석을 하면 이런 의미이다.

해석 : 53번 프로세스ID를 가진 실행중인 프로세스가 SELECT 문을 실행하려고 하는데 59번의 실행중인 SQL 문 때문에 지연

         되고있는 상태이다.

 

해석을 봐서 알겠지만, 53번은 59번 프로세스가 실행이 완료될때까지 WAITING 상태인 것이다. 이걸 전문용어로 BLOCKING 이라고

한다.(뭐 ~ 전문용어도 알아두면 편하긴 하다)

 

** 현재 프로세스가 실행하고 있는 Statemenet는 무엇인가??? **

 

 실행하고 있는 프로세스 상세조회 : DBCC INPUTBUFFER( @PID )

 EX ) DBCC INPUTBUFFER(56)

 

 

결과 : DBCC의 결과는 아래와 같다.

EventType 쪽을 복사해서 메모장에 붙여넣으면 아래와 같이 출력된다.

(@P0 int,@P1 nvarchar(4000),@P2 nvarchar(4000))EXEC dbo.USP_SelectDuplicationAAA 

 

위 처럼 USP_SelectDuplicationAAA 라는 사용자 정의 프로시져를 호출한 것이 보여질 것이다.

만약 IBATIS와 같은 모듈에서 SQL문을 바로 적었더라면, 실행중인 SQL 명이 출력되게 될 것이다.

 

 

오늘은 프로시져의 Lock의 종류와 Lock걸린놈을 체크하는 방법에 대해 알아보았다.

어렵지 않다!! 어려워 느낄뿐이다.

 

그럼 담에 또 쓰도록 하겠다.

 

-- 2013.10.23 랑이씀 --

반응형

'DB > MS-SQL' 카테고리의 다른 글

[펌] [SQL SERVER 2005 VERSION 별 차이]  (0) 2010.07.21
MSSQL 혼합인증방식 설정  (0) 2010.05.06
MSSQL - 원하는 날짜를 수순대로 구하기  (0) 2010.04.12
[펌] MSSQL 에서 MD5 사용하기  (0) 2010.03.17
MSSQL PAGING PROCEDURE  (0) 2010.03.12
반응형

SQLGATE에만 너무나도 익숙해져 있는 상태라

 

날 Query를 할 일이 별로 없다. 하지만. SQLGATE에서 지원하지 않는 주석 수정기능에 대해서 간략히 적어보자

 

우선급하니 대충적고 수정하겠음.

 

 

1. 주석추가 (add)

//테이블

EXEC   sp_addextendedproperty 'MS_Description', '테이블설명', 'user', dbo, 'table',테이블명
//컬럼들
EXEC   sp_addextendedproperty 'MS_Description', '컬럼설명', 'user', dbo, 'table', 테이블명, 'column', 컬럼명

 

2. 주석수정 (update)

//테이블

EXEC   sp_updateextendedproperty 'MS_Description', '테이블설명', 'user', dbo, 'table',테이블명

//컬럼들

EXEC   sp_updateextendedproperty 'MS_Description', '컬럼설명', 'user', dbo, 'table', 테이블명, 'column', 컬럼명

 

 

반응형

+ Recent posts