MyAlbum   Pet
DirectX   openGL   Java   C/C++   STL   C#   Python   Window   ActiveX   SE & Refactoring   Game   Unicode   googleDesktop   Network   Database   Web   php   asp   asp.net   Library   QT   wxWidget   Something to read  
ToDo
zelon's WebAlbum
Google Tools
Google Naver map
ToRearrange
OpenOffice.org
Eclipse
Check W3 validator
MSSQL
e i R f
Anonymous

about tuning - 튜닝 관련 #


MSSQL2005 원격 컴퓨터에서 연결하기 #


MSSQL2005 는 기본적으로 localhost 에서의 연결만 허용하고 있다. 그러므로 원격 컴퓨터에서 odbc 등을 통해 연결하려면 설정이 필요하다. 설치된 프로그램 중 SQL Server Configuration Manager 를 띄운 후, SQL Server 2005 네트워크 구성 -> MSSQLSERVER에 대한 프로토콜 -> TCP/IP 를 오른클릭해서 사용하게 해준다

예제 DB 들 #


MSSQL 에는 Pubs 와 Northwind 라는 예제 데이터베이스들이 있다. 이 예제는 얼마든지 삭제가 가능하며 복구가 가능하다.

설치된 폴더의 \MSSQL\INSTALL\InstXXX.sql 을 실행하면 복구할 수 있다.

while 문 #

while 조건
begin
    if 조건
        break
    if 조건
        continue
end

쓸만한 SP 들 #


sp_helpdb지정된 데이터베이스의 상태를 보여준다. 전체 용량도 보여준다
sp_spaceused지정된 객체의 용량을 보여준다

로그 지우기 #

backup log DBName with no_log

소유자 바꾸기 #



sp_changeobjectowner @objname='owner.member', @newowner='newowner';

갯수가 많을 때 #



sp_changeobjectowner 를 사용하여 많은 소유자를 변경하는 일은 많은 시간을 필요로합니다.
이럴때는 시스템 테이블을 직접 변경할 수 있습니다.

sp_configure 'allow_updates', 1 
reconfigure with override 

Begin Tran 
update sysobjects 
set uid =1 
where uid <> 1 
commit 

sp_configure 'allow_updates', 0 
reconfigure with override 

참고 사이트 http://www.ilovedata.net

Cursor 사용 #

declare @userid varchar(50);

declare aCursor CURSOR for select top 10 userid from login;

open aCursor

fetch next from aCursor into @userid;

while @@fetch_status = 0
	begin
		print @userid;
		fetch next from aCursor into @userid;
	end

CLOSE aCursor;
deallocate aCursor;

시간 #


65만개의 row 에 하나의 컬럼에 인덱스 걸기 #



약 65 만개의 row 에 varchar 컬럼으로 인덱스를 거는데 걸린 시간은 1분 미만이었다.

65만개의 index 가 안 걸린 컬럼을 기준으로 정렬하기 #



약 65 만개의 row 에 인덱스가 안 걸린 int 컬럼을 기준으로 정렬하는데 걸린 시간은 5초 미만이었다.

기타 #


  • mssql 에서 mysql 로 데이터베이스 바꾸기 : mssql2mysql
  • 메모리가 계속 증가할 때. 엔터프라이즈 관리자에서 서버의 등록정보를 열어, 메모리 탭에서, 최대 메모리를 제한한다. MSSQL 의 온라인 설명서에서 서버 메모리 옵션 이라는 제목의 글을 참고하자.

  • 엔터프라이즈 매니저에서 NULL 값 넣기 : Ctrl + 0 을 누르면 <NULL> 값을 넣을 수 있다.

테이블 정보 얻기 #

DECLARE @name CHAR(10)

SET @tblname = 'tblTest'

select * 

from sysobjects a, syscolumns b

where a.id = b.id

and a.name like '%' + tblname + '%'

테이블들 얻기 #

select * from sysobjects where type = 'U';

Stored Procedure 얻기 #

select * from sysobjects where type = 'P';

특정 시간 동안 일부러 기다리게 하기 #


waitfor delay '00:00:10';

위와 같이 하면 10초를 기다린다.