ClearTrace 소개입니다.

예전에 김종균님께서 소개하신 글(http://www.sqler.com/105021)을 좀 보강했습니다.

ClearTrace 는 특별한 기능이 많이 있는 것은 아니지만, 간단하고 빠르게 확인하기엔 좋은 툴입니다.

ClearTraceSQL 2005, SQL 2008, SQL 2008 R2 버전에 대해 지원이 가능하며 Express버전은 지원이 안됩니다.

기준은 SQL Server 2008로 설명하려고 합니다.

1. 다운로드 및 설치

가. http://www.scalesql.com/cleartrace/download.aspx

위 사이트에서 다운로드하면 됩니다.

나. 다운로드받은 파일의 압축을 해제하면, ClearTrace.exeClearTraceCmd.exe 두 개의 파일이 생성되는데, GUI 환경인 ClearTrace.exe에서 확인해 보도록 하겠습니다.

다. 도메인 환경일 경우엔 원격장소에 설치해도 무관할 듯 하지만, 그렇지 않을 경우 SQL Server가 설치된 서버에 설치하셔야 합니다.

2. 최초 실행 및 환경설정

처음 실행하면DataBase를 만들어달라는 내용이 나옵니다.

1.jpg

3. Tools > Options를 클릭합니다.

2.jpg

4. Server명과 DataBase명을 기재합니다.

3.jpg

이 때, Database Name은 기존에 없는 것을 새로 만드는 것을 권장합니다. (분리를 위해)

5. 만약 서버명을 잘 못 기재하면 다음과 같은 메시지를 보게 됩니다.

4.jpg

6. 4.번 과정에서 새로 만들기 위해 새로운 이름을 주게 되면 다음과 같이 새로 만들겠냐는 문구가 뜹니다.

5.jpg

** 보시면 알겠지만, 로그인한 계정이 시스템 권한이 있어야 하고 DataBase Create 권한도 있어야 하네요.

7. ClearTrace 초기화면입니다. 중요한 항목만 간단하게 설명해 보겠습니다.

6.jpg

가. Trace Group : Group을 지정함으로써 용도에 따라 분류가 가능합니다. 이름만 적으시면 됩니다.

나. Trace Files

1) First File : 최초 작성할 파일명을 기재합니다.

2) Work Directory : 작업 디렉터리입니다.

3) Archive Directory : 작업 완료 후 trc 파일을 보관(이동)할 디렉터리입니다.

다. 기본지정이 완료되면 “Import Files” 버튼을 누릅니다.

8. Trace File Import가 진행되면 진행사항이“Import Status” 탭에 표시됩니다.

7.jpg

9. Import가 완료되면 자동으로 “Query the Imported Files” 탭으로 이동합니다. 중요한 항목만 간단하게 설명해 보겠습니다.

8.jpg

가. Trace Group To Query : 앞에서 지정한 그룹에 따라 추적그룹을 나눠서 처리할 수 있습니다.

나. Date To Query : 추적파일에 지정된 날짜에 따라 필터링이 가능합니다.

다. Rows : 표시할 줄 수입니다.

라. Group By : 집계할 항목(Item)의 컬럼을 지정합니다.

- SQL Text, Application Name, Login Name, Host Name, Date 등의 지정이 가능합니다.

마. Order By : 정렬순서입니다.

- CPU, Reads, Writes, Duration 등등 의 지정이 가능합니다.

바. Keyword Filter : 항목 Filtering입니다.

- Profiler에서 Ctrl+F 눌러서 나오는 값들로 Filtering했다고 보시면 됩니다.

사. Application Filter : 응용 프로그램에 따른 Filtering입니다.

- 예를 들어 .Net Application이 있다면.Net SqlClient Data Provider 항목이 존재합니다.

아. Login Filter : SQL Login Name에 따른 Filtering입니다.

자. Host Filter : Login Host Name에 따른 Filtering입니다.

차. Events : Profiler에서 설정한 Events에 따른 Filtering입니다.

- Batches, Statements 등등의 항목이 존재합니다.

카. Display Averages : Group By 값에 대한 평균값들을 보여줍니다.

- 이것을 클릭하면 AvgCPU, AvgReads, AvgWrites 등의 항목들이 늘어납니다.

타. Reset : 너무나도 당연한 이야기이지만, 조건을 초기화합니다.

파. Display : 위에서 설정한 조건대로 Filtering Soring한 결과를 표시합니다.


http://www.sqler.com/269782

안녕하세요?

MSSQL Oracle 함수를 비교하신 분들이 많은데요. 의외로 예제를 실어 놓은 곳이 거의 없더군요하여 준비해 보았습니다.

 

하지만, 한 번에 너무 많은 것을 올려놓으면 보기 힘들기에

오늘은 그 첫번째 시간으로 문자열 중 10가지만 적어봅니다.

 

1.     문자 식에서 가장 왼쪽 문자의 ASCII 코드 값 반환 (숫자로 표시됨)

구분

MSSQL

Oracle

함수

ASCII

ASCII

용례

SELECT ASCII('A')

SELECT ASCII('A') FROM DUAL

결과

65

65

è  MSSQL이든 ORacle이든 ‘’ 안에 여러 개의 문자가 있어도 가장 좌측 값만 반환합니다.

, SELECT ASCII(‘A’) SELECT ASCII(‘ABCDEFG’) 나 결과는 같습니다.

 

 

2.     문자 합치기

구분

MSSQL

Oracle

함수

+

CONCAT 또는 ||

용례

SELECT '동해물과' + '백두산이'

1. SELECT '동해물과 ' || '백두산이' FROM DUAL

2. SELECT CONCAT('동해물과 ','백두산이') FROM DUAL

결과

동해물과 백두산이

동해물과 백두산이

 

 

3.     ASCII 코드를 문자로 변환하기

구분

MSSQL

Oracle

함수

CHAR

CHR

용례

SELECT CHAR(67)

SELECT CHR(67) FROM DUAL

결과

C

C

è  참고로 9번은 TAB, 10LF(Line Feed), 13번은 CR(Carriage Return) 입니다.

 

 

4.     좌측에서 몇 번째에 해당 문자가 있는지 알려주기

구분

MSSQL

Oracle

함수

CHARINDEX

INSTR

용례

SELECT CHARINDEX('마이', '고마해라. 마이 무우따 아이가?')

SELECT INSTR('고마해라. 마이 무우따 아이가?','마이' ) FROM DUAL

결과

7

7

è  MSSQLOracle의 함수사용 순서가 다릅니다.

è  MSSQL에는 패턴찾기에 PATINDEX를 많이 사용합니다. 위와 같은 결과를 얻으려면

SELECT PATINDEX('%마이%', '고마해라. 마이 무우따 아이가?')

처럼 사용하면 됩니다.(와일드 카드 사용 가능)

 

 

5.     대문자 변환, 소문자 변환

구분

MSSQL

Oracle

함수

UPPER / LOWER

UPPER / LOWER

용례

SELECT UPPER('aBcDeF'), LOWER('aBcDeF')

SELECT UPPER('aBcDeF'), LOWER('aBcDeF') FROM DUAL

결과

ABCDEF abcdef

ABCDEF abcdef

 

 

6.     좌측공간을 특정 문자로 채워주기

구분

MSSQL

Oracle

함수

지원하지 않음(없음)

LPAD

용례

-

SELECT LPAD('13579',10, '0') FROM DUAL

결과

-

0000013579

è  MSSQL에선 없는 함수이기 때문에 아래와 같이 사용자함수를 만들어서 사용하기도 합니다.

-- 1. FUNCTION 만들기

CREATE FUNCTION dbo.UFN_LPAD

(

       @INPUT VARCHAR(8000),

       @COUNT AS INT,

       @FILLCHAR AS CHAR(1)=' '

)

RETURNS varchar(200)

AS

BEGIN

RETURN

       CASE

             WHEN LEN(@INPUT) >= @COUNT THEN LEFT(@INPUT, @COUNT)

       ELSE

             LEFT(REPLICATE(@FILLCHAR, @COUNT), @COUNT-LEN(@INPUT)) + @INPUT

       END

END

 

 

-- 2. SAMPLE

SELECT dbo.UFN_LPAD('12',10,'0') AS PR_KEY

 --> 결과

 0000000012

 

 

 

7.     우측공간을 특정 문자로 채워주기

구분

MSSQL

Oracle

함수

지원하지않음(없음)

RPAD

용례

-

SELECT RPAD('13579',10, '0') FROM DUAL

결과

-

1357900000

è  MSSQL에선 없는 함수이기 때문에 UFN_LPAD처럼 함수를 만들어서 씁니다.

다만, REPLICATE라는 함수가 있는데, 이것은 특정문자를 연속적으로 채워 줄 뿐, RPAD와는 조금 다릅니다.

-- 사용례

SELECT REPLICATE('0',10)

 --> 결과

 0000000000

   또한, SPACE라는 함수는 공백만 채워줍니다.

-- 사용례

SELECT '나의' + SPACE(10) + ''

 --> 결과

 나의        

 

 

8.     /우 공백 없애주기

구분

MSSQL

Oracle

함수

LTRIM / RTRIM

LTRIM / RTRIM

용례

SELECT LTRIM('  아버지'), RTRIM('어머니 ')

SELECT LTRIM('  아버지'), RTRIM('어머니  ') FROM DUAL

결과

아버지   어머니  à (공백제거됨)

아버지   어머니  à (공백제거됨)

 

 

9.     문자의 음성표현을 가지는 문자열을 반환. 국내에서는 흔히 사용하지 않음(한글 동작 안함)

b, f, p, v = 1

c, g, j, k, q, s, x, z = 2

l = 4

m, n = 5

r = 6

구분

MSSQL

Oracle

함수

SOUNDEX

SOUNDEX

용례

SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe');

SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') FROM DUAL

결과

S252     S200

S530     S530

è  어라? 예제에는 같은 것으로 되어 있는데, 실제 결과는 다르네요. -_- 이것 참

 

 

10.   전체 문자열에서 지정한 길이만큼의 문자열 반환

구분

MSSQL

Oracle

함수

SUBSTRING

SUBSTR

용례

SELECT SUBSTRING('1234567890',4,5)

SELECT SUBSTR('1234567890',4,5) FROM DUAL

결과

45678

45678

è  4번째 자리에서 시작해서 다섯 글자를 가져옵니다.

 

오늘은 여기까지이고요, 조만간 2탄 올리겠습니다.

 

이상 [쓸만한게없네]였습니다.

+ Recent posts