블로그 > 하루에도 열두번씩
http://blog.naver.com/khm8843/20027634694
SQL 서버 관리자가 알아야 할 11가지 유용한 팁
1. 데이터베이스의 모든 테이블 행을 가장 빨리 세는 방법
SQL 서버 데이터베이스 내에 존재하는 시스템 테이블 'sysindexes'에는 'rows'란 컬럼이 존재한다. 이 컬럼은 테이블에 반영된 행들의 수를 갖고 있다. 다음 SQL문을 실행시키면 원하는 결과를 효과적으로 얻을 수 있을 것이다.
select o.name, rows
from sysobjects o inner join sysindexes i on o.id = i.id
where i.indid < 2
order by o.name
where 절의 "indid<2" 부분은 클러스터드 인덱스(clustered index) 또는 힙(heap) 정보를 찾지 않기 위함이다. 이 결과는 실제로 트랜잭션(transaction)이 일어난 행만 카운트한다.
2. 스토어드 프로시져에 대한 파라미터로 테이블 이름을 사용하는 방법
이것을 위해서는 동적인 SQL을 사용해야 한다. 다음 스크립트를 참조하기 바란다.
Create proc dbcc_table
@tabname varchar(30)
as
BEGIN
Exec ("dbcc checktable (" + @tabname + ")")
END
go
/*** 스토어드 프로시져를 테스트하려면 ***/
dbcc_table syslogs
3. 모든 테이블을 BCP 하기 위한 스크립트 작성 방법
Select "bcp " + db_name() + ".." + name +
" out c:\temp" + name + ".txt /c -t\t -SserverName -UuserID -Ppassword
/b1000"
from sysobjects
where type = "U"
order by name
위의 예는 모든 데이터베이스 객체가 데이터베이스 오우너(owner) 또는 DBO에 의해 소유되었다는 가정 아래 작성되었다. 위의 예는 윈도 커맨드 파일 또는 배치 파일로 저장하여 실행할 수 있는 스크립트를 만들 것이다. 결과물은 탭 구분자로 분리된 텍스트가 될 것이다.
BCP(Bulk Copy Program)에 대한 파라미터에 대해 좀 더 알기 원하면 Books Online에서 BCP를 찾아 보거나, 커맨드 윈도우에서 BCP /?를 실행시켜 보기 바란다.
원한다면 ISQL에서 xp_cmdshell과 함께 실행시킬 수도 있다. 파일 경로에서 나타난 드라이브 문자는 서버에 있는 것이지 클라이언트 PC에 있는 것이 아님을 기억하기 바란다.
위의 스크립트에서 /b 옵션을 준 것을 기억하라. 만일 이 옵션을 사용하지 않으면 대량의 파일을 데이터베이스로 복사할 때 하나의 작업으로 처리하게 된다. 하지만 "/b 1000" 옵션을 사용함으로써 1000라인의 트랜잭션 단위로 작업을 나누어 하게 된다.
4. 어떤 파일이 디스크 상에 존재하는지 조사하는 방법
서버 상에서 파일 정보를 얻으려면 다음과 같이 xp_getfiledetails란 확장 스토어드 프로시져를 사용하면 된다.
Master..xp_getfiledetails "c:\mssql\binn\sqlservr.exe"
5. 남은 디스크 공간을 알아내는 방법
서버에 남아있는 디스크 공간을 알아내려면 다음과 같이 xp_fixeddrives란 확장 스토어드 프로시져를 사용하면 된다. 만일 SQL 서버 6.5에서 실행한다면 Bytes free 컬럼의 실제 단위는 Bytes가 아니라 Megabytes free임을 조심해야 한다.
Master..xp_fixeddrives
6. 리모트 상에서 서버 셧다운(shut down) 시키는 방법
윈도 NT 리소스 킷(Resource Kit)을 보면 shutdown과 shutgui란 두 개의 유틸리티가 있는게 이 유틸리티들을 활용하면 된다. 조심해야할 것은 서버를 바로 재부팅하는 것이 디폴트 옵션이 아니라는 것이다. 만일 이 옵션을 잘못 설정했다면 결국 서버를 작동시키기 위해 서버가 있는 기계쪽으로 가야만 할 것이다.
7. SQL 서버의 자세한 버전 정보를 보는 방법
다음과 같이 xp_msver 스토어드 프로시져를 사용하면 된다.
Master..xp_msver
이 스토어드 프로시져에 대한 MSDN 자료를 보고 싶다면 아래 링크를 클릭하기 바란다.
Master..xp_msver 자세히 보기 - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_xp_aa-sz_0o4y.asp
8. SQL 서버 이벤트 로그 순환시키는 방법
SQL 서버를 관리하다 보면 이벤트 로그 사이즈가 겉잡을 수 없이 커지게되는 것을 볼 수 있다. 많은 사람들은 이 문제를 햐결하기 위해 SQL 서버를 멈췄다가 다시 시작하곤 한다. 하지만 다음과 같이 dbcc errorlog를 이용하면 이 문제를 쉽게 해결할 수가 있다.
dbcc errorlog
이 명령어는 문서화되어 있지 않은 명령어이다. 그렇기 때문에 이 명령어를 사용할 경우 책임은 전적으로 사용자에게 있게 됨을 주의하도록 하자.
9. 서버 레지스트리 값을 읽는 방법
확장 스토어드 프로시져인 XP_REGREAD를 이용하면 서버의 레지스트리 값을 읽어낼 수가 있다. 다음 예는 NT 4 서비스 팩 버전 정보를 레지스트리로부터 읽어 표시하는 예이다.
master..xp_regread @rootkey='HKEY_LOCAL_MACHINE',
@key='SOFTWARE\Microsoft\Windows NT\CurrentVersion',
@value_name = 'CSDVersion'
10. 스토어드 프로시져를 자동으로 실행하게 하는 방법
SQL 서버가 기동될 때마다 자동으로 하나 이상의 스토어드 프로시져를 작동시키고 싶은 경우들이 있다. 예상치 않게 서버가 재부팅됐다거나 SQL 서버가 시작될 때 특정 프로세스를 실행해야할 경우 유용하게 사용할 수가 있을 것이다.
SQL 서버 6.5에서는 master 데이터베이스에 해당 스토어드 프로시져를 저장한 후 다음과 같은 명령을 실행시키면 된다:
sp_makestartup "procedure_name"
SQL 서버 7 또는 2000에서는 대신 sp_procoption 스토어드 프로시져를 사용하면 된다. 이에 대한 자세한 사항은 다음 msdn 자료를 참조하기 바란다.
sp_procoption 설명 보기 : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_sp_pa-pz_95m6.asp
11. 백업하지 않은 데이터베이스 복구시키는 방법
물론 정기적으로 데이터베이스 백업을 점검하고 테스트하는 관리자라면 이 팁은 무시해도 된다.
하지만 어떤 경우 백업을 하지 않아 데이터를 복원할 때 난감해하는 사람이 있을지도 모르겠다. 이럴 경우 .LDF(로그 파일)와 .MDF 파일을 스토어드 프로시져를 이용하여 SQL 서버에 다시 어태치(attach)시킴으로써 데이터를 종종 복원시킬 수도 있다. 항상 가능한 것은 아니지만 안해보는 것보단 나을 것이다.
이와 관련된 스토어드 프로시져는 sp_attach_db이다. 이 스토어드 프로시져에 대한 자세한 설명은 다음 msdn 자료를 참조하기 바란다.
sp_attach_db 설명 보기 : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_sp_ae-az_52oy.asp<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:27:00 MySQL에서 이동 됨]</div>
http://blog.naver.com/khm8843/20027634694
SQL 서버 관리자가 알아야 할 11가지 유용한 팁
1. 데이터베이스의 모든 테이블 행을 가장 빨리 세는 방법
SQL 서버 데이터베이스 내에 존재하는 시스템 테이블 'sysindexes'에는 'rows'란 컬럼이 존재한다. 이 컬럼은 테이블에 반영된 행들의 수를 갖고 있다. 다음 SQL문을 실행시키면 원하는 결과를 효과적으로 얻을 수 있을 것이다.
select o.name, rows
from sysobjects o inner join sysindexes i on o.id = i.id
where i.indid < 2
order by o.name
where 절의 "indid<2" 부분은 클러스터드 인덱스(clustered index) 또는 힙(heap) 정보를 찾지 않기 위함이다. 이 결과는 실제로 트랜잭션(transaction)이 일어난 행만 카운트한다.
2. 스토어드 프로시져에 대한 파라미터로 테이블 이름을 사용하는 방법
이것을 위해서는 동적인 SQL을 사용해야 한다. 다음 스크립트를 참조하기 바란다.
Create proc dbcc_table
@tabname varchar(30)
as
BEGIN
Exec ("dbcc checktable (" + @tabname + ")")
END
go
/*** 스토어드 프로시져를 테스트하려면 ***/
dbcc_table syslogs
3. 모든 테이블을 BCP 하기 위한 스크립트 작성 방법
Select "bcp " + db_name() + ".." + name +
" out c:\temp" + name + ".txt /c -t\t -SserverName -UuserID -Ppassword
/b1000"
from sysobjects
where type = "U"
order by name
위의 예는 모든 데이터베이스 객체가 데이터베이스 오우너(owner) 또는 DBO에 의해 소유되었다는 가정 아래 작성되었다. 위의 예는 윈도 커맨드 파일 또는 배치 파일로 저장하여 실행할 수 있는 스크립트를 만들 것이다. 결과물은 탭 구분자로 분리된 텍스트가 될 것이다.
BCP(Bulk Copy Program)에 대한 파라미터에 대해 좀 더 알기 원하면 Books Online에서 BCP를 찾아 보거나, 커맨드 윈도우에서 BCP /?를 실행시켜 보기 바란다.
원한다면 ISQL에서 xp_cmdshell과 함께 실행시킬 수도 있다. 파일 경로에서 나타난 드라이브 문자는 서버에 있는 것이지 클라이언트 PC에 있는 것이 아님을 기억하기 바란다.
위의 스크립트에서 /b 옵션을 준 것을 기억하라. 만일 이 옵션을 사용하지 않으면 대량의 파일을 데이터베이스로 복사할 때 하나의 작업으로 처리하게 된다. 하지만 "/b 1000" 옵션을 사용함으로써 1000라인의 트랜잭션 단위로 작업을 나누어 하게 된다.
4. 어떤 파일이 디스크 상에 존재하는지 조사하는 방법
서버 상에서 파일 정보를 얻으려면 다음과 같이 xp_getfiledetails란 확장 스토어드 프로시져를 사용하면 된다.
Master..xp_getfiledetails "c:\mssql\binn\sqlservr.exe"
5. 남은 디스크 공간을 알아내는 방법
서버에 남아있는 디스크 공간을 알아내려면 다음과 같이 xp_fixeddrives란 확장 스토어드 프로시져를 사용하면 된다. 만일 SQL 서버 6.5에서 실행한다면 Bytes free 컬럼의 실제 단위는 Bytes가 아니라 Megabytes free임을 조심해야 한다.
Master..xp_fixeddrives
6. 리모트 상에서 서버 셧다운(shut down) 시키는 방법
윈도 NT 리소스 킷(Resource Kit)을 보면 shutdown과 shutgui란 두 개의 유틸리티가 있는게 이 유틸리티들을 활용하면 된다. 조심해야할 것은 서버를 바로 재부팅하는 것이 디폴트 옵션이 아니라는 것이다. 만일 이 옵션을 잘못 설정했다면 결국 서버를 작동시키기 위해 서버가 있는 기계쪽으로 가야만 할 것이다.
7. SQL 서버의 자세한 버전 정보를 보는 방법
다음과 같이 xp_msver 스토어드 프로시져를 사용하면 된다.
Master..xp_msver
이 스토어드 프로시져에 대한 MSDN 자료를 보고 싶다면 아래 링크를 클릭하기 바란다.
Master..xp_msver 자세히 보기 - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_xp_aa-sz_0o4y.asp
8. SQL 서버 이벤트 로그 순환시키는 방법
SQL 서버를 관리하다 보면 이벤트 로그 사이즈가 겉잡을 수 없이 커지게되는 것을 볼 수 있다. 많은 사람들은 이 문제를 햐결하기 위해 SQL 서버를 멈췄다가 다시 시작하곤 한다. 하지만 다음과 같이 dbcc errorlog를 이용하면 이 문제를 쉽게 해결할 수가 있다.
dbcc errorlog
이 명령어는 문서화되어 있지 않은 명령어이다. 그렇기 때문에 이 명령어를 사용할 경우 책임은 전적으로 사용자에게 있게 됨을 주의하도록 하자.
9. 서버 레지스트리 값을 읽는 방법
확장 스토어드 프로시져인 XP_REGREAD를 이용하면 서버의 레지스트리 값을 읽어낼 수가 있다. 다음 예는 NT 4 서비스 팩 버전 정보를 레지스트리로부터 읽어 표시하는 예이다.
master..xp_regread @rootkey='HKEY_LOCAL_MACHINE',
@key='SOFTWARE\Microsoft\Windows NT\CurrentVersion',
@value_name = 'CSDVersion'
10. 스토어드 프로시져를 자동으로 실행하게 하는 방법
SQL 서버가 기동될 때마다 자동으로 하나 이상의 스토어드 프로시져를 작동시키고 싶은 경우들이 있다. 예상치 않게 서버가 재부팅됐다거나 SQL 서버가 시작될 때 특정 프로세스를 실행해야할 경우 유용하게 사용할 수가 있을 것이다.
SQL 서버 6.5에서는 master 데이터베이스에 해당 스토어드 프로시져를 저장한 후 다음과 같은 명령을 실행시키면 된다:
sp_makestartup "procedure_name"
SQL 서버 7 또는 2000에서는 대신 sp_procoption 스토어드 프로시져를 사용하면 된다. 이에 대한 자세한 사항은 다음 msdn 자료를 참조하기 바란다.
sp_procoption 설명 보기 : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_sp_pa-pz_95m6.asp
11. 백업하지 않은 데이터베이스 복구시키는 방법
물론 정기적으로 데이터베이스 백업을 점검하고 테스트하는 관리자라면 이 팁은 무시해도 된다.
하지만 어떤 경우 백업을 하지 않아 데이터를 복원할 때 난감해하는 사람이 있을지도 모르겠다. 이럴 경우 .LDF(로그 파일)와 .MDF 파일을 스토어드 프로시져를 이용하여 SQL 서버에 다시 어태치(attach)시킴으로써 데이터를 종종 복원시킬 수도 있다. 항상 가능한 것은 아니지만 안해보는 것보단 나을 것이다.
이와 관련된 스토어드 프로시져는 sp_attach_db이다. 이 스토어드 프로시져에 대한 자세한 설명은 다음 msdn 자료를 참조하기 바란다.
sp_attach_db 설명 보기 : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_sp_ae-az_52oy.asp<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:27:00 MySQL에서 이동 됨]</div>
게시글 목록
| 번호 | 제목 |
|---|---|
| 28772 |
HTML
오늘 날짜와 요일 넣기
1
|
| 10555 | |
| 10554 |
JavaScript
홈에 머문시간을 제목표시줄과 상태바에 실시간으로 알려줍니다
|
| 10553 | |
| 28770 |
HTML
창의 사이즈 변경 금지 시키기
1
|
| 28769 |
HTML
손님의 방문 횟수를 알려 줍니다
|
| 10552 | |
| 10551 | |
| 28768 |
HTML
자바스크립트 버튼에 링크 걸기
|
| 10550 | |
| 10549 |
JavaScript
들어올때나 나갈때나 인사는 착실히 해야죠..ㅋㅋㅋㅋ
|
| 10548 | |
| 10547 | |
| 28767 |
HTML
이름을 물어보고 인사하는 스크립트
|
| 10546 | |
| 10545 |
JavaScript
창을 열면 인사하는 간단한 스크립트
|
| 10544 | |
| 28766 | |
| 10541 | |
| 10540 | |
| 10538 | |
| 10537 |
기타
순발력테스트
|
| 10535 |
Flash
Ajax강의
1
|
| 10534 |
JavaScript
named -- dns서버
|
| 10533 |
JavaScript
문서내 이미지갯수 출력
|
| 10532 | |
| 28760 | |
| 10531 | |
| 10530 |
JavaScript
리눅스 부팅후 자동 실행
|
| 28759 |
HTML
버튼에 스타일주기(익스)
|
| 10527 | |
| 10525 | |
| 10523 | |
| 10520 |
Flash
swish 서브메뉴 제작방법
2
|
| 28758 |
HTML
오른쪽마우스클릭시메뉴(익스전용)
|
| 28757 |
HTML
오른쪽마우스클릭시메뉴(익스전용)
|
| 10519 | |
| 10518 |
MySQL
mysql 자동 최적화 / 복구 스크립트
|
| 10517 |
JavaScript
내용 복사해서 붙어넣기 하면 출처까지가 따라서 나옴 (출처:네이버 소스)
|
| 10515 |
JavaScript
ncftp사용법
1
|
| 28756 |
HTML
영카트에서 카테고리 검색하기
|
| 10514 | |
| 10512 | |
| 10511 |
JavaScript
영어철저가 의심스러울때
|
| 10510 |
JavaScript
로그인할때 나오는 메시지 바꾸기
|
| 10509 | |
| 10508 | |
| 10507 | |
| 28755 |
HTML
자바스크립트로 url 획득
|
| 28751 | |
| 10506 |
JavaScript
파일을 엑셀 혹은 워드로 다운 받기
|
| 10505 | |
| 10504 |
JavaScript
테이블속성연습
|
| 10503 | |
| 10499 | |
| 10487 | |
| 28748 |
HTML
투명도조절
2
|
| 10486 | |
| 28747 | |
| 10484 |
JavaScript
날짜 계산하기
1
|
| 10483 |
기타
폼필드로 바탕색상조정
|
| 10482 | |
| 28746 |
HTML
버튼 하나로 링크두개를 열어보자
|
| 10480 |
JavaScript
접속시도를 여러번 하는 IP 자동 블락하기
1
|
| 10476 | |
| 10473 |
JavaScript
팝업창.. 지정한 시간대에 열기
2
|
| 10472 |
기타
한글 영문으로 변환
|
| 28745 |
HTML
[펌]다중 업로드
|
| 10460 | |
| 10456 | |
| 28739 | |
| 10455 | |
| 28738 | |
| 10451 | |
| 10448 | |
| 10446 |
JavaScript
font-weight 숫자로도 가능
1
|
| 10445 |
JavaScript
에디터 수정해서 쓰세요!
|
| 10444 |
기타
리사이즈 팝업
|
| 10442 | |
| 10439 |
JavaScript
배경음악 또는 배경이미지 등 브라우저를 열고 처음 접속시 한번만 실행
2
|
| 10408 |
Flash
무료 플래시 209개
30
|
| 10403 | |
| 10400 |
JavaScript
문서내에 글씨 찾기
2
|
| 10398 | |
| 10397 | |
| 10396 |
JavaScript
ssh dictionary attack 막기
|
| 10391 | |
| 10390 | |
| 28733 |
HTML
밑의 갤러리 압축 화일
4
|
| 10389 |
JavaScript
까만도둑님께서 플래쉬 갤러리가 필요하시다고 해서...
|
| 10383 | |
| 10378 |
Flash
플래시에서 tabIndex 적용하기
4
|
| 28732 | |
| 10342 |
Flash
간단하지만 유용한 배너관리 시스템
35
|
| 28731 | |
| 10335 |
Flash
플래시 자동 슬라이더
6
|
| 28730 |
HTML
cart클래스2
|
| 28729 |
HTML
cart클래스1
|
| 28727 |
HTML
비교 복사
1
|
| 10332 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기