반응형
우편번호 데이터들이 엑셀형식으로 저장되어 있으므로 MS-SQL에서는 간단하게 데이터 가져오기를 사용하여 테이블에 입력을 할 수 있었다.

하지만 MY SQL에서는 약간 이래저래 수정도 해주면서 작업을 해야되었다.
그래서 간단한 작업절차를 써보도록 하겠다


1. 하단에 명시된 페이지로 이동하여 원하는 DB 정보를 다운받는다.




2. 다운받은 엑셀파일을 csv 형식으로 변형시킨다.
 다른이름으로 저장 -> 다른형식 -> csv 형식선택

저장을 하면 각 필드들은 쉼표(,) 로 구분이 된다.


3. 해당 주소체계에 맞는 형식의 테이블을 생성한다


4. my sql 입력 커맨드창에서 다음의 명령어를 실행한다

load data infile [해당 csv 파일명] into table [db명].[테이블명] fields terminated by ',' optionally enclosed by '"' lines terminated by '\n';

예) load data infile 'c:\\download\\zipcode.csv' into table db1.tb_zipcode fields terminated by ',' optionally enclosed by '"' lines terminated by '\n';

* 해당명령어에 대한 자세한 설명은 다음 링크 참고
http://radiocom.kunsan.ac.kr/lecture/mysql/prototype/prototype_load_data_infile.html

5. 아름답게 저장된 주소DB들을 보며 흐뭇해한다.

반응형
반응형
-- Create products table.
CREATE TABLE products (id int IDENTITY PRIMARY KEY, product varchar(40))
GO
-- Inserting values into products table.
INSERT INTO products (product) VALUES ('screwdriver')
INSERT INTO products (product) VALUES ('hammer')
INSERT INTO products (product) VALUES ('saw')
INSERT INTO products (product) VALUES ('shovel')
GO

-- Create a gap in the identity values.
DELETE products
WHERE product = 'saw'
GO

SELECT *
FROM products
GO

-- Attempt to insert an explicit ID value of 3;
-- should return a warning.
INSERT INTO products (id, product) VALUES(3, 'garden shovel')
GO
-- SET IDENTITY_INSERT to ON.                    <--  이녀석이 on 이 되어야지만 실행이된다. 안그러면 에러가뜸
SET IDENTITY_INSERT products ON
GO

-- Attempt to insert an explicit ID value of 3
INSERT INTO products (id, product) VALUES(3, 'garden shovel')
GO

SELECT *
FROM products
GO
-- Drop products table.
DROP TABLE products
GO


반응형
반응형
[MS-SQL]
select * from fn_dump_dblog(default,default,default,default,'d:\test.trn',

            default,default,default,default,default,default,default,default,default,default,
            default,default,default,default,default,default,default,default,default,default,
            default,default,default,default,default,default,default,default,default,default,
            default,default,default,default,default,default,default,default,default,default,
            default,default,default,default,default,default,default,default,default,default,
            default,default,default,default,default,default,default,default,default,default,
            default,default,default)


이렇게 하면 트랜젝션 로그 관련 내용이 나오는데............

제길, 당췌 뭐가 뭔지는 하나도 모르겠다-_-;
반응형
반응형
다른 테이블에 있는 값들을 원테이블로 옮길 경우 Update 시 Join 을 사용해야된다
그런데 이거 할때마다 기억이 안나서 메모남김

<Join 사용 Update 문>
    update [테이블] set [테이블].[원컬럼명]=A.[새컬럼명]
    from [테이블]
    join [복사할테이블] A on [테이블].[조인할컬럼명]=A.[조인할컬럼명]

반응형
반응형
순서 결정에 있어서 아래의 순서데로 우선순위를 매겨가며 첫번째 컬럼을 결정하도록 하자!!!


1. 항상 사용되는가?

  결합인덱스의 첫번째 컬럼을 조건에서 사용하지 앟으면 그 인덱스는 사용되지 않는다. 그러므로 항상 사용되는 컬럼을 결합인덱스의 첫번째에 넣도록 한다.

2. 항상 '=' 로 사용되는가?
  앞에 있는 컬럼이 '=' 조건으로 사용되지 않았다면 뒤에서 '='을 사용하더라고 처리범위가 줄어들지 않는다. 그러므로 첫번째 컬럼은 '=' 을 사용하여 처리범위를 줄여서 처리속도를 높일 수 있도록 하여야 한다.

3. 분포도가 좋은 컬럼인가?
  분포도가 좋은(좁은) 컬럼은 처리범위를 보다 빠르게 줄일 수 있으며 향후 예상치 않게 'LIKE, BETWEEN, <, >' 등의 조건 검색식이 사용된 경우 처리범위가 넓어지는 상황에 대비할 수도 있다.

4, 자주 사용되는 정렬 컬럼인가?
  쿼리시 어떤 컬럼들로 정렬이 발생하는가를 확인해보고 가능한 빈번하게 정렬되는 순서를 감안하여 우선순위의 컬럼으로 설정하는 것이 좋다. 왜냐하면 인덱스는 결합된 컬럼의 순서로 정렬되어 저장되기 때문이다.
반응형
반응형
DB에서 많은 자료가 올라오다보면 옵티마이저가 분포도 계산을 잘못하여서
Index 를 타지 않고 그냥 전체스캔을 해서 결과값을 찾기때문에 느려지는 경우가 있다.

이럴때 새로 Index 를 걸어주거나 인덱스 힌트를 사용하지 않고
분포도와 관련된 통계를 업데이트 시켜주면 쿼리속도가 비약적으로 상승하게 된다

MS-SQL 사용예
update statistics 테이블명

반응형
반응형
MS SQL
EXEC sp_rename '원래테이블이름', '새테이블이름'


MY SQL
Rename 테이블이름 To 새테이블이름 [, 테이블이름2 To 새테이블이름2] ......


반응형

+ Recent posts