This is going to be a very short post for a change. I have used Swingbench extensively and really love the tool. Many thanks to Dominic Giles!
Recently he announced a new tool on his blog that you can use to inflate your data volume. So instead of using the “-scale” argument when executing oewizard you can just keep the defaults and later on create as much data as you like. Here is an example, the reason for this post.
Setting the Scene
If you have not yet downloaded the latest Swingbench version and JDK 8 do this first. You can get Swingbench from the tool’s landing page and the Java software from java.sun.com. I used Swingbench 2.5.791 (stable). With both deployed, I created the Order Entry schema in lights-out mode:
[oracle@lab bin]$ ./oewizard -dbap secret -u soe -p soe -cl -cs //lab/martin -ts soe_tbs -create -dba system SwingBench Wizard Author : Dominic Giles Version : 2.5.0.971 Running in Lights Out Mode using config file : oewizard.xml The following statement failed : GRANT EXECUTE ON dbms_lock TO soe : Due to : ORA-01031: insufficient privileges ============================================ | Datagenerator Run Stats | ============================================ Connection Time 0:00:00.006 Data Generation Time 0:01:06.110 DDL Creation Time 0:00:30.346 Total Run Time 0:01:36.465 Rows Inserted per sec 183,121 Data Generated (MB) per sec 14.9 Actual Rows Generated 13,002,138 Post Creation Validation Report =============================== The schema appears to have been created successfully. Valid Objects ============= Valid Tables : 'ORDERS','ORDER_ITEMS','CUSTOMERS','WAREHOUSES','ORDERENTRY_METADATA','INVENTORIES', 'PRODUCT_INFORMATION','PRODUCT_DESCRIPTIONS','ADDRESSES','CARD_DETAILS' Valid Indexes : 'PRD_DESC_PK','PROD_NAME_IX','PRODUCT_INFORMATION_PK','PROD_SUPPLIER_IX','PROD_CATEGORY_IX', 'INVENTORY_PK','INV_PRODUCT_IX','INV_WAREHOUSE_IX','ORDER_PK','ORD_SALES_REP_IX', 'ORD_CUSTOMER_IX','ORD_ORDER_DATE_IX','ORD_WAREHOUSE_IX','ORDER_ITEMS_PK','ITEM_ORDER_IX', 'ITEM_PRODUCT_IX','WAREHOUSES_PK','WHS_LOCATION_IX','CUSTOMERS_PK','CUST_EMAIL_IX', 'CUST_ACCOUNT_MANAGER_IX','CUST_FUNC_LOWER_NAME_IX','ADDRESS_PK','ADDRESS_CUST_IX', 'CARD_DETAILS_PK','CARDDETAILS_CUST_IX' Valid Views : 'PRODUCTS','PRODUCT_PRICES' Valid Sequences : 'CUSTOMER_SEQ','ORDERS_SEQ','ADDRESS_SEQ','LOGON_SEQ','CARD_DETAILS_SEQ' Valid Code : 'ORDERENTRY' Schema Created
More Data!
The next step is to invoke sbutil:
[oracle@lab bin]$ ./sbutil -u soe -p soe -cs //lab/martin -soe parallel 12 -dup 4 Getting table Info Got table information. Completed in : 0:00:01.558 Dropping Indexes Dropped Indexes. Completed in : 0:00:03.252 Creating copies of tables Created copies of tables. Completed in : 0:00:00.042 Begining data duplication Completed Iteration 4. Completed in : 0:00:07.942 Creating Constraints Created Constraints. Completed in : 0:00:28.737 Creating Indexes Created Indexes. Completed in : 0:00:54.541 Updating Metadata and Recompiling Code Updated Metadata. Completed in : 0:00:00.754 Updating Sequences Updated Sequences. Completed in : 0:00:00.792 Determining New Row Counts Got New Row Counts. Completed in : 0:00:03.132 Completed Data Duplication in 0 hour(s) 2 minute(s) 8 second(s) 454 millisecond(s) ---------------------------------------------------------------------------------------------------------- |Table Name | Original Row Count| Original Size| New Row Count| New Size| ---------------------------------------------------------------------------------------------------------- |ORDER_ITEMS | 4,288,582| 280 MB| 17,154,328| 1.1 GB| |CUSTOMERS | 1,000,000| 136 MB| 4,000,000| 552.4 MB| |CARD_DETAILS | 1,500,000| 80 MB| 6,000,000| 337.8 MB| |ORDERS | 1,429,790| 160 MB| 5,719,160| 664 MB| |ADDRESSES | 1,500,000| 184 MB| 6,000,000| 571.8 MB| ---------------------------------------------------------------------------------------------------------- |Total | | 840 MB| | 3.2 GB| ----------------------------------------------------------------------------------------------------------
How Cool is That?
Really, it is. And look at the timings. This didn’t take too long, even on my poor old AMD 6200 series lab server.