본문 바로가기

전체 글

MSSQL 분할뷰 사용 여러 서버(host)에 분산된 DB를 연결하여 하나의 테이블 및 뷰에서 쿼리를 날리듯이 분할 뷰를 사용해 보자 여러 서버로 DB가 분산되어 있을때 유용하다 서버가 A, B, C로 나뉘어 있을 경우에 서버 A에서 B와 C를 연결서버로 설정하고 서버 B에서 A와 C를 연결서버로 설정하고 서버 C에서 A와 B를 연결설정한다. 각각의 서버에 해당 서버에만 DB가 저장될 수 있도록 특정 필드에 제약 조건을 둔다 예) --A 서버 Create Table ... ( ... addr nchar(4) not null CHECK(addr = '서울') ... ) --B 서버 Create Table ... ( ... addr nchar(4) not null CHECK(addr = '경기') ... ) --C 서버 Creat.. 더보기
MSSQL 외래키등 제약조건으로 인해 삽입이 안될때 잠시 제약을 꺼두자 외래키가 지정된 상태 또는 다른 제약 조건등으로 인하여 벌크데이터 또는 기존에 입력했던 데이터의 무결성으로 인하여 삽입되지 않을 경우에는 잠시 제약 조건을 비활성 시킬 수 있다. 또는 제약조건을 걸려고 하다보니 기존에 입력되었던 방대한 데이터가 문제가 될 경우에는 제약조건을 걸 수 없는데 이때도 기존 데이타에는 제약을 걸지 않도록 할 수 있다. 예문1) 기존 데이터가 입력된 테이블에 제약조건을 걸어보자 ALTER TABLE buyTbl WITH NOCHECK ADD CONSTRAINT FK_userTbl_buyTbl FOREIGN KEY (UserId) REFERENCES userTbl(UserId) 예문2) - 제약조건을 무시하고 데이터를 삽입해 보자 ALTER TABLE buyTbl NOCHECK C.. 더보기
MSSQL IDENTITY 컬럼 IDENTITY 컬럼의 현재값 알기 및 수정 현재 값 알기 "DBCC CHECKIDENT('tableName')" IDENTITY 컬럼의 마지막 값 강제 지정하기 IDENTITY 컬럼을 임의의 번호부터 시작시키기를 원할 수도 있다. 이때는 다음과 같이 써보자 "DBCC CHECKIDENT('tableName', RESEED, 10000)" --> 그러면 다음에 tableName 테이블에 새로운 데이터가 삽입될 때는 10001번 부터 자동 증가된다. 현재 세션에서 삽입된 마지막 IDENTITY컬럼 값 얻기 "SELECT @@IDENTITY" [참조] 뇌를 자극하는 SQL Server 2005, P.365 IDENTITY 컬럼을 비활성화 시키고 데이터 강제 삽입하기 IDENTITY_INSERT가 OFF로 설.. 더보기
MSSQL DB파일의 변경 운영중인 DB또는 MSSQL이 임시로 사용하는 TempDB 등을 속도가 빠른 디스크로 이동하게 되면 전체적인 성능 향상을 얻을 수 있다. 따라서 운영중인 DB를 이동시켜 보자 [참조]뇌를 자극하는 SQL Server 2005, P.346 더보기
MSSQL DB축소 관련 옵션 예문) "DBCC SHRINKDATABASE (shrinkDB, TRUNCATEONLY)" TRUNCATEONLY : 데이터는 정리하지 않고 뒷부분 여유공간만 줄여버린다 NOTRUNCATE : 데이터를 정리만 할 뿐 정리된 공간을 줄이지는 않는다 옵션이 없이 "DBCC SHRINKDATABASE (shrinkDB)"를 실행하면 NOTRUNCATE옵션과 TRUNCATEONLY 옵션이 차례대로 적용되는 효과를 얻음 [참조]뇌를 자극하는 SQL Server 2005, P.326 더보기
MSSQL 2005 - 파일그룹 생성 SQL 예제 CREATE DATABASE [brainDB] ON PRIMARY -- 지금부터 PRIMARY 그룹에 데이터 파일을 생성 (NAME = 'BrainDB', -- 첫번째 데이터 파일 FILENAME = N'D:\DBData\brainDB.mdf', -- 파일경로와 파일명 SIZE = 10240KB, -- 처음 크기 MAXSIZE = 102400KB, -- 최대파일 크기 FILEGROWTH = 1024KB), -- 파일 증가 : 1MB 단위로 (NAME = 'BrainDB2', -- 첫번째 데이터 파일 FILENAME = N'D:\DBData\brainDB2.ndf', -- 파일경로와 파일명 SIZE = 10240KB, -- 처음 크기 MAXSIZE = 102400KB, -- 최대파일 크기 FILEGROWT.. 더보기
MSSQL CREATE DATABASE 쿼리 SAMPLE CREATE DATABASE [brainDB] ON PRIMARY -- PRIMARY 그룹에 데이터 파일 생성(NAME = N'brainDB', -- 논리적 이름 FILENAME = N'C:\Program Files\MicroSoft SQL Server\MSSQL.1\MSSQL\Data\brainDB.mdf', -- 경로/파일 SIZE = 2240KB, -- [KB | MB | GB | TB] MAXSIZE = UNLIMITED, -- 최대크기 FILEGROWTH = 1024KB ) -- 자동증가크기, [KB | MB | GB | TB | %] LOG ON -- 트랜잭션 로그 파일 설정(NAME = N'brainDB_Log', -- 논리적 이름 FILENAME = N'C:\Program Files\Mic.. 더보기
[MSSQL 2005]샘플DB AdventureWorksDB를 지웠을 경우 복구 방법 MSSQL Server 2005 설치시 기본 설치 되었던 AdventureWorks 또는 AdventureWorksDW를 필요가 없어졌다고 생각해서 임의로 지우거나 손상되었을 경우에 복구하는 방법입니다. 1. 기존 DB를 지운다(SSMS에서 또는, drop database로 제거) Drop Database AdventureWorks 2. SSMS > 파일 > 열기> 파일선택에서 "C:\Program Files\MicroSoft SQL Server\90\Tools\Samples\AdventureWorks OLTP\instalwdb.sql" 선택하여 쿼리창으로 읽어 들인 다음에 1766행쯤 Set @Data_path = @SQL_PATH + 'AWDB\'; -- 이 라인을 주석 처리 -- To Reinsta.. 더보기