@echo off

REM Check for too few or too many parms and error

IF (%1)==() GOTO ERROR
IF NOT (%9)==() GOTO ERROR

REM Set some default values

SET ggmask=%1
SET ggtimes=1
SET ggwait=NO
SET ggserv=(local)
SET gguser=-E
SET ggwaitparm=/NORMAL
SET ggwin=NORMAL
SET ggout=YES

REM Move parameters to variables

IF NOT (%2)==() SET ggtimes=%2
IF NOT (%3)==() SET ggwait=%3
IF NOT (%4)==() SET ggwin=%4
IF NOT (%5)==() SET ggout=%5
IF NOT (%6)==() SET ggserv=%6
IF NOT (%7)==() SET gguser=%7

REM Set this to empty if not supplied

SET ggpwd=%8

REM Set this to empty

SET ggoutparm=%9

REM Further process some of the parameters

IF NOT (%ggpwd%)==() SET ggpwd=-P%ggpwd%
IF /i %ggwait%==YES SET ggwaitparm=/WAIT
IF NOT %gguser%==-E SET gguser=-U%gguser%
IF /i %ggout%==YES SET ggoutparm=-o%%~nf.OUT

REM Run the script(s) using a nested loop
REM
REM The inner loop iterates through the files matching the mask and runs them
REM The outer loop executes the inner loop the number of times specified

FOR /L %%i in (1,1,%ggtimes%) DO FOR %%f IN (%ggmask%) DO START "%%f" %ggwaitparm% /%ggwin% OSQL.EXE -S%ggserv% %gguser% %ggpwd% -i%%f %ggoutparm%

GOTO NOERROR

:ERROR
echo You must specify a script to run
SET ERRORLEVEL=1
ECHO STRESS.CMD
ECHO .
ECHO Runs specified Transact-SQL script(s) multiple times simultaneously
ECHO .
ECHO Copyright (c) 1992, Ken Henderson.  All rights reserved.
ECHO Based on my code in User-to-User, PC Magazine, March 26, 1991.
ECHO .
ECHO USAGE:  STRESS script [N] [wait] [windowstyle] [saveoutput] [server] [user] [password]
ECHO .
ECHO where:
ECHO    script = the script or mask you want to run
ECHO    N = the number of times you want to run it (default 1)
ECHO    wait = YES to wait for each script to finish before running next (default NO)
ECHO    windowstyle = type of window to create for each script execution:
ECHO .
ECHO        /MIN = minimized /MAX = maximized /B = no window /NORMAL = normal window
ECHO .
ECHO    saveoutput = YES to save output to file using -o OSQL parameter (default YES)
ECHO    server = the server to run it on (default (local) )
ECHO    user = your SS user name (default - use trusted connection)
ECHO    password = your SS password (default - use trusted connection)

:NOERROR

SCRIPT - 수행하기를 원하는 스크립트 또는 mask
N - 원하는 수행횟수(기본값 1)
WAIT - 다음 스크립트를 수행하기 전에 스크립트가 완료되기를 기다리려면 YES(기본값 NO)
WINDOWSTYLE - 각각의 스크립트 실행을 위해 만들 창의 유형 : MIN - 최소화, MAX - 최대화, B - 창없음, NORMAL - 보통창(기본값 NORMAL)
SAVEOUTPUT - OSQL -o 매개 변수를 사용하여 output을 파일로 저장하려면 YES(기본값 YES)
SERVER - 수행할 서버(기본값 (local))
USER - SS 사용자 이름(기본값 트러스트된 연결을 사용한다)
PASSWORD - SS 암호(기본값 트러스트된 연결을 사용한다)

EX)
stress stress.sql 10 no normal no dragonzlair
stress stress*.sql 100 no min yes dragonzlair monty python


'연구개발 > DBA' 카테고리의 다른 글

데이터베이스 내 테이블 생성 감시 트리거(TRIGGER)  (0) 2011.08.22
semi join, anti join  (0) 2011.08.22
성능고찰 - 조인 순서와 유형 선택  (0) 2011.08.22
통계  (0) 2011.08.21
히스토그램, DBCC SHOW_STATISTICS  (0) 2011.08.21

+ Recent posts