MS-SQL / SQL Server

컴퓨터이름 변경했을때 MSSQL 서버이름 변경하기


컴퓨터이름을 변경했을때, MS-SQL 서버의 이름도 변경해야한다.

 

현재 MS-SQL 서버이름을 확인 하는 방법

SELECT @@servername


일단 위의 쿼리에서 서버이름으로 등록되어있는 정보를 삭제한다.

 

서버이름 삭제

SP_DROPSERVER '현재의 MSSQL서버이름'


새로운 서버이름 추가

SP_ADDSERVER '현재 컴퓨터이름(새로운이름)', 'local'

 

 

이렇게 하고 서비스 재시작 한번 해주고..

 

다시  MS-SQL 서버 이름을 확인해보면..

SELECT @@servername

 

변경된것을 알수 있다.

MS-SQL / SQL Server

인덱스를 다시 정리하자(조각모음)


데이터를 입력,수정,삭제를 하다보면 인덱스에 조각화가 일어난다.

조각화가 많아지면 성능이 느려진다.

 

그럼, 다시 정리를 해줘야지!!

 

인덱스를 다시 작성하는 방법에는

 

-. DBCC DBREINDEX

-. DBCC INDEXDEFRAG

-. ALTER INDEX ALL ON 테이블명 REBUILD WITH (PAD_INDEX = ON, FILLFACTOR = 90)

 

이 있다..

여기에서 속도도 가장 빠르고 효율적인것이..

MS-SQL 2005 이상에서 지원하는 아래의 쿼리다.

 

ALTER INDEX ALL ON 테이블명 REBUILD WITH (PAD_INDEX = ON, FILLFACTOR = 90)

 

 

테이블 하나씩 하나씩 언제하냐고??

 

한방에 해당 데이터베이스의 인덱스를 정리하는 방법을 알려 달라고???

 

해당 데이터베이스의 모든 테이블의 모든 인덱스를 재정리하는 쿼리다.

 

------------------------------------------------------------------------------------

 

 

DECLARE @i int, @sql varchar(1000)
DECLARE @tablename varchar(1000),@ownerName  varchar(1000)

SET @i = 1

DECLARE DB_Cursor CURSOR FOR 
 SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES  WHERE TABLE_TYPE = 'BASE TABLE' ORDER BY TABLE_SCHEMA, TABLE_NAME
OPEN DB_Cursor

FETCH NEXT FROM DB_Cursor
INTO @ownerName, @tablename
WHILE @@FETCH_STATUS = 0
BEGIN

 SET @sql = 'ALTER INDEX ALL ON ' + @ownerName + '.' + @tablename + ' REBUILD WITH (PAD_INDEX = ON, FILLFACTOR = 90) '
 EXEC (@sql)

 PRINT CONVERT(VARCHAR, @i) + '__' + @ownerName + '.' + @tablename + '............ OK'
 SET @i = @i + 1

 FETCH NEXT FROM DB_Cursor
 INTO @ownerName, @tablename

END

CLOSE DB_Cursor
DEALLOCATE DB_Cursor

MS-SQL / SQL Server

Temp DB 저장위치 변경


성능을 위해 Temp DB는 별도의 디스크에 구축해 놓는것이 좋다는 것 알고계시죠?

그런데, SQL을 설치할때 그 부분을 깜박하고 설치해 버리는 경우가 종종 발생합니다.

그런 경우에 Temp DB의 물리적 위치를 수정해야 하는데 그 때 사용하는 방법입니다.

 

1. 먼저 Temp DB의 현재 정보를 알아내야 겠죠?

select database_id,name,physical_name from sys.master_files where database_id=2

위에서 Temp DB의 mdf,ldf파일의 논리적이름을 확인할 수 있습니다.

 

2. 바꿀 경로로 수정합니다.

alter database tempdb

modify file(name=templog,filename="F:\TempDB\tempdb.ldf")

alter database tempdb

modify file(name=tempdev,filename="F:\TempDB\tempdb.mdf")

 

3. 재부팅

쿼리를 실행시키면 재부팅시켜야 적용한다고 나옵니다. 상관없다면 바로 재부팅해도 되겠지만 대부분 바로 재부팅은 힘들겠죠? 나중에 한가한 시간대나 정기점검시간에 재부팅 시켜주면 되겠습니다.

+ Recent posts