개발자 소회.
“SQL Server 기반 운영 시스템의 신규 구축이나 변경 시에 SQL Server의 성능 및 안정성을 점검하기 위해 부하 테스트가 필요합니다. 기존의 프로그램들을 사용 했을 때 여러 가지 아쉬운 점, 한계점 들이 보였기에, 그런 점들을 보완한 프로그램이 필요함에 따로 오랫동안 고민을 하다가 직접 개발하게 되었습니다.
V3까지 개발 및 내부 사용을 해 오다 이제 Freeware로 오픈합니다. SQL Serve, PostgreSQL<new>, MySQL/MariaDB 사용자들에게 도움이 되길 희망합니다.”
(주)씨퀄로 김정선 대표컨설턴트/이사, Microsoft Data Plaform MVP (2002~)
참고.
본 문서는 Microsoft SQL Server용 부하 시험 Tool인 SQLBigEyes Hammer 제품의 User Guide 입니다.
문서에 사용된 이미지와 일부 명칭들은 버전 별로 차이가 날 수 있습니다.

SQLBigEyesHammer V3
SHA1 : b9ed32d700b334722df82c39f9dd04ce2e958a92
참고) 다운로드/압축 해제 후 “SQLBigEyesHammer.ham” 파일을 –> “…exe”로 변경 후 사용하세요
- 전체 기능 도표
분류 | 상세 기능 | SQL Server 버전 |
Main 창 | 다중 Hammer 창 동시 실행/중지
SQL Server외 MySQL/MariaDB 지원(Beta) |
|
Hammer 창
|
실행 속성(반복횟수, Thread 수, Sleep 등) 설정
Thread 별 실행 성능 실시간 출력 Thread 별 실패 시 중단 없는 수행 Hammer 구성 정보 저장 및 재사용 |
|
Performance Monitor | 성능 카운터 지원(Windows 전용) | |
ETC | 8000자 이상의 쿼리 길이 지원
최종 연결 정보 자동 저장/복원(암호 제외) |
- 부하 설정 및 실행
Main Menu 와 Toolbar 그리고 서버 연결 정보 설정 | |
SQLBigEyes는 하나의 SQL Server를 기준으로 다중 쿼리들을 동시에 실행하고 부하를 테스트해 볼 수 있습니다. SQLBigEyes Hammer를 실행한 후 아래 그림에 표시한 Toolbar 각 항목에 테스트할 [DBMS 유형], [대상 서버:포트], [인증 방식], [User ID], [Password] (SQL Server 인증 사용 시)를 지정하고 [Test Connection] 버튼을 클릭해서 연결 성공/실패 여부를 확인합니다.
이후에 “새 쿼리” 창을 열면 여기서 설정한 서버 연결 정보가 기본적으로 적용됩니다. 참고-1. 인증 방식과 계정 정보는 개별 Hammer 창에서도 변경이 가능합니다. 참고-2. MySQL/MariaDB 지원은 아직 테스트 단계(Beta)입니다. |
|
새 쿼리 창 | |
![]()
|
|
Hammer 창 | |
[Query] 창에 실행할 쿼리를 입력합니다. 하나 이상의 쿼리를 지정할 수 있습니다. 다만 전체 쿼리를 수행하는데 문제가 없도록 구성합니다.
참고) SQLBigEyes Hammer는 8,000 자 이상(over)의 쿼리를 입력할 수 있도록 지원합니다. 참고) Ctrl+Mouse Wheel을 이용하면 Font Size를 조정할 수 있습니다.
이제 [Run] 버튼을 클릭해서 실제로 쿼리를 수행합니다. |
|
Thread 별 실시간 성능 평가 | |
위 그림에서 [View Statistics] 옵션을 선택하면 동시에 수행하는 각 Thread별로 해당 쿼리가 몇 번째 실행 중인지 그 중 성공(Success)과 실패(Fail)가 몇 번째인지 발생 횟수와 함께 개별 호출의 수행시간(Elapsed Time)과 그 때까지 누적된 수행시간(Total Elapsed Time)을 출력합니다. 각 Thread는 반드시 순서대로 호출되는 것은 아닙니다.
중요. 이 옵션을 지정하면 SQLBigEyes Hammer 프로그램 자체에 추가 동작으로 인해 전체 실행 시간이 느려질 수 있습니다.
Query 창 위에 있는 (Current Iteration) 과 (Total Elapsed Time)은 이 옵션과 상관 없이 현재까지 누적된 반복 횟수와 전체 수행 시간을 보여줍니다. [Statitistics-Chart] 탭
수행이 완료되고 나면 하단의 (Average) 행에서 개별 Thread의 평균 수행시간과 평균 경과 시간을 볼 수 있습니다.
[Options – Fetch Rows] Hammer는 기본적으로 쿼리 결과 행들을 별도로 처리하지 않습니다. [Fetch Rows] 옵션을 지정하면 결과 행 전체와 개별 열 값에 대해 변수에 채우는 기본 동작을 수행하도록 지정할 수 있습니다. 이를 이용하면 Client에서 데이터를 처리하는 시간을 포함해서(실제 상황과 유사한) 부하 테스트를 할 수 있습니다.
[Options – Connection Pooling] ADO.NET(.NET Data Provider), ADO(OLEDB) 등에서 Connection Pooling을 사용한 연결이 기본 동작지만, 필요 시 옵션을 해제해서 Non-Connection Pooling으로 부하 테스트를 할 수 있습니다. |
|
Performance Monitor 창 [Beta] | |
![]() SQLBigEyes Hammer에서는 그림과 같이 간단하게 몇 가지 성능 카운터를 확인할 수 있도록 [Performance Monitor] 창을 제공합니다. 현재는 Batch Requests/sec 값을 지원하며 차후 필요 에 따라 추가 지원할 예정입니다.
참고) 현재 이 기능은 테스트 중(Beta)입니다. 프로그램 자체의 부하가 커지거나 사용 중인 컴퓨터에 부하가 있는 경우에 차트의 출력에 지연(Delay)이 있을 수 있습니다.
|
|
다중 Hammer 창 동시 실행 및 중지 | |
![]() |
- Hammer 구성 정보 저장 및 재사용
Hammer 창 구성 정보 저장 |
![]() [Save Configuration] 메뉴, 툴바, 단축 키를 수행하고 저장할 폴더와 파일명을 지정합니다. 해당 xml 파일은 Notepad 같은 편집기 툴을 이용해서 직접 편집할 수도 있습니다. 저장된 xml 파일을 재사용할 경우 [Open Hammer] 메뉴를 선택하고 해당 파일을 지정하면 새 Hammer 창이 생성되고 해당 쿼리와 속성 정보가 자동으로 설정됩니다.
|
- 고려 사항
SQLBigEyes Hammer 사용 시 몇 가지 고려 사항입니다.
|
- 오류 처리 및 내용 전달
SQLBigEyes 사용 중 아래와 같은 오류 발생 시, 해당 화면을 캡처해서 간단한 설명과 함께 메일로 보내주시면 감사하겠습니다.
그리고 [계속(C)] 버튼을 클릭해서 작업을 계속 진행할 수 있습니다.