Swingbenchを使ってみる


##はじめに
###目的

swingbenchをセットアップして、とりあえず使ってみる。


###環境

 * Oracle Linux version 2.6
 * Oracle Database 11.2.0.1
　（対象DBとリスナーが構成・起動済みであること）



##準備

###Download

以下のサイトからダウンロードする。今回は2.5を使用する。

dominicgiles.com download
http://dominicgiles.com/downloads.html


###Javaのバージョンの確認

インストールしたい環境にjavaのruntime環境があることを確認する。

```
$java -version
java version "1.7.0_65"
```

ORALE_HOME以下にインストールされているJDK（1.5）ではNGなので、JRE1.6以上をインストールする。
今回は以下でインストールした。

```
$yum install java-1.7.0-openjdk.x86_64 
```

###ユーザ設定

実行はORACLEインストールユーザ(ここではoracle)で行う。
環境変数に以下を設定されていることを確認する。

```
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
```




##インストールとセットアップ

###install


```
$ pwd /home/oracle
$ unzip swingbench25932.zip 
<略>

$ cd swingbench
$ pwd
/home/oracle/swingbench

```

###Settinng


```
$ cd bin 
$./oewizard
```


1.ようこそ画面で[Next]を押す

![スクリーンショット 2014-10-04 9.29.13.png](https://qiita-image-store.s3.amazonaws.com/0/41992/9f6740b1-c572-dd0d-69d4-3cf80daafe02.png "スクリーンショット 2014-10-04 9.29.13.png")


2.バージョンの選択で推奨のversion2を選択し、[Next]を押す
![スクリーンショット 2014-10-04 9.32.20.png](https://qiita-image-store.s3.amazonaws.com/0/41992/5aa488cf-db9b-8a69-683f-92ada2b2ec56.png "スクリーンショット 2014-10-04 9.32.20.png")

3.タスクの選択で、「Create the Order Entry Schema(User,Tables,indexes,Data etc)」を選択し、[Next]を押す

![スクリーンショット 2014-10-04 9.34.33.png](https://qiita-image-store.s3.amazonaws.com/0/41992/989fba27-f034-f748-c2eb-3c8cc251e510.png "スクリーンショット 2014-10-04 9.34.33.png")

4.データベース詳細の画面で必要情報を入力し、[Next]を押す

今回は以下の内容で入力

 * Connect Stringに`//<ホスト名>/<インスタンス名>`を入力する。
 * Connect Typeに`Type Ⅳ jdbc driver(Thin)`を選択する。（デフォルト）
 * DBA usernameに`sys as sysdba`とDBA passwordにそのパスワードを入力する。

![スクリーンショット 2014-10-04 9.42.10.png](https://qiita-image-store.s3.amazonaws.com/0/41992/e798ee62-81c6-7e29-fe19-d7ff3c83bcef.png "スクリーンショット 2014-10-04 9.42.10.png")

5.スキーマ詳細の画面で必要情報を入力し、[Next]を押す
 * Username `soe`
 * Password `soe`
 * Schema's Tablespace `SOE`
 * Tablespaces's Datafile デフォルトでは、`+DATA`でDiskGroupになってるので、ファイルシステムの場合は、データファイルをフルパスで指定。`/u01/app/oracle/oradata/orcl112/soe01.dbf`

![スクリーンショット 2014-10-04 9.50.39.png](https://qiita-image-store.s3.amazonaws.com/0/41992/79757f5f-6966-e2f9-dc02-1c4df1350d23.png "スクリーンショット 2014-10-04 9.50.39.png")


6.データベースオプションの画面で必要なものを選択し、[Next]を押す

パーティションの使用有無、圧縮の使用、表領域のタイプ（BIGFILE使うか）、索引の使用有無が選択できる。今回はデフォルトのままとする。
![スクリーンショット 2014-10-04 9.54.03.png](https://qiita-image-store.s3.amazonaws.com/0/41992/71a81f04-f348-bd98-afc3-acff2d70433d.png "スクリーンショット 2014-10-04 9.54.03.png")

7.サイジングの詳細

初期構成のサイズを選択する。推奨がUser Defined Scaleに入力されている。ここの値を変えれば任意のサイズにできる。ここでは1GBを使用して[Next]を押す。

![スクリーンショット 2014-10-04 9.57.43.png](https://qiita-image-store.s3.amazonaws.com/0/41992/80bccb3e-72fa-5734-ee5a-e71e46f55d97.png "スクリーンショット 2014-10-04 9.57.43.png")


8.最後に並列度のレベルを指定して、[Finish]を押す




![スクリーンショット 2014-10-04 9.59.14.png](https://qiita-image-store.s3.amazonaws.com/0/41992/75b61300-e500-a31e-9ea5-4c77ac336b27.png "スクリーンショット 2014-10-04 9.59.14.png")



9.ログが別Windowで開く。暫し待つ



![スクリーンショット 2014-10-04 10.00.30.png](https://qiita-image-store.s3.amazonaws.com/0/41992/3c96d194-dc7f-d086-6cf0-208d79f1ed7f.png "スクリーンショット 2014-10-04 10.00.30.png")



10.完了したらスキーマ作成完了画面が開く。[OK]を押して終了する。

![スクリーンショット 2014-10-04 10.49.13.png](https://qiita-image-store.s3.amazonaws.com/0/41992/75a68401-20cd-de63-37a6-d550e2ba2127.png "スクリーンショット 2014-10-04 10.49.13.png")





##使ってみる

ベンチマークツールとしては
CUIとしてcharbench、GUIとしてswingbench,minibenchが提供されている。

それぞれの違いは公式のFAQにある。 
http://dominicgiles.com/faq.html#Whats_the_difference_between_sw


###CUIで使うcharbench
CUIで実行するにはcharbenchを使用する。



```
$cd /home/oracle/swingbench/bin
$./charbench -cs //oracledb01/orcl112 -dt thin  -rt 0:05
```
`-cs`は接続情報、`-rt`は実行時間(5分)を指定している。
どんなオプションがあるかは`-h`で確認できる。
（参考：http://dominicgiles.com/page3/index.html）



実行中は以下のような感じでリアルタイムでTPMとTPSがみれる。
終わったら`Completed Run.`と表示される。

```
Author  :	 Dominic Giles
Version :	 2.5.0.932

Results will be written to results.xml.
Hit Return to Terminate Run...

Time		Users	TPM	TPS

1:45:33 AM      1       105     12 

Completed Run.
     
```

###GUIで使うswingbench

GUIで使うにはswingbenchを使用する。
オプションはcharbenchと同じものが使用できる。

```
$cd /home/oracle/swingbench/bin
$./swingbench -cs //oracledb01/orcl112 -dt thin  -rt 0:05
```

![スクリーンショット 2014-10-04 11.02.32.png](https://qiita-image-store.s3.amazonaws.com/0/41992/a9df73c7-355b-6347-3685-06b160b84610.png "スクリーンショット 2014-10-04 11.02.32.png")


###お手軽GUIで使うminibench

GUIで細かな設定はしなくてよいなら、シンプル画面のGUIのminibenchを使用する。

```
$cd /home/oracle/swingbench/bin
$./minibench -cs //oracledb01/orcl112 -dt thin  -rt 0:05
```

![スクリーンショット 2014-10-04 11.19.28.png](https://qiita-image-store.s3.amazonaws.com/0/41992/9e47717c-733e-7304-efd1-90c7befa5f8e.png "スクリーンショット 2014-10-04 11.19.28.png")


##参考
dominicgiles.com
http://dominicgiles.com/index.html

swingbenchって便利ですよ　データベースコンサルタントのノウハウちょい見せ
http://odakeiji.blog33.fc2.com/blog-entry-121.html