Contenu connexe
Similaire à Performance Benchmarks for Bloombase Spitfire StoreSafe Encryption Security Server for Microsoft Windows
Similaire à Performance Benchmarks for Bloombase Spitfire StoreSafe Encryption Security Server for Microsoft Windows (20)
Performance Benchmarks for Bloombase Spitfire StoreSafe Encryption Security Server for Microsoft Windows
- 1. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P1 © 2010 Bloombase Technologies
Performance Benchmarks for Bloombase
Spitfire StoreSafe Security Server for Microsoft
Windows
A performance testing report on Microsoft Windows file-systems and
Oracle TPC-C
2010/1/2
Executive Summary
Bloombase Spitfire StoreSafe Storage Security Server protects privacy of sensitive enterprise data by transparent encryption and decryption. This paper
summarizes performance tests of Bloombase Spitfire StoreSafe Storage Security Server for Microsoft Windows on file-systems and relational database
management systems.
- 2. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P2 © 2010 Bloombase Technologies
Information in this document, including URL and other Internet Web site references, is subject to change without notice. Unless otherwise noted, the example companies,
organizations, products, people and events depicted herein are fictitious and no association with any real company, organization, product, person or event is intended or should be
inferred. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced,
stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose,
without the express written permission of Bloombase Technologies.
Bloombase Technologies may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as
expressly provided in any written license agreement from Bloombase Technologies, the furnishing of this document does not give you any license to these patents, trademarks,
copyrights, or other intellectual property.
This document is the property of Bloombase Technologies. No exploitation or transfer of any information contained herein is permitted in the absence of an agreement with
Bloombase Technologies, and neither the document nor any such information may be released without the written consent of Bloombase Technologies.
© 2010 Bloombase Technologies
Bloombase, Spitfire, StoreSafe and Keyparc are either registered trademarks or trademarks of Bloombase Technologies in the United States, People’s Republic of China, Hong Kong
Special Administrative Region and/or other countries.
The names of actual companies and products mentioned herein may be the trademarks of their respective owners.
Document No.: BLBS_10Q1_TN_BloombaseSpitfireStoreSafeMicrosoftWindowsBenchmarks_USLET_EN_P1_R1
- 3. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P3 © 2010 Bloombase Technologies
Table of Contents
Table of Contents 3
Introduction 6
Purpose and Scope 7
Assumptions 8
Infrastructure 9
Server ...................................................................................................... 9
Storage .................................................................................................... 9
File Systems ............................................................................................ 9
Application Software ............................................................................ 10
Data At-Rest Protection Software ........................................................ 10
Benchmarking Software ....................................................................... 10
Setup Without Encryption..................................................................... 10
Setup With Encryption .......................................................................... 10
File System Setup ................................................................................. 11
File System Tests .................................................................................... 11
Database Tests ....................................................................................... 11
Database Setup ..................................................................................... 11
Bloombase Spitfire StoreSafe Setup .................................................... 12
Bloombase Spitfire KeyCastle Setup .................................................... 13
- 4. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P4 © 2010 Bloombase Technologies
File System Benchmarks 14
Configurations .......................................................................................14
Benchmark Tests ................................................................................... 14
2GB on FAT32 ......................................................................................... 14
6GB on FAT32 ......................................................................................... 15
2GB on NTFS ........................................................................................... 16
6GB on NTFS ........................................................................................... 17
Conclusion ............................................................................................. 18
TPC-C Benchmarks 19
Configurations .......................................................................................19
Benchmark Tests ................................................................................... 21
Default TPC-C Profile .............................................................................. 23
Query Intensive Profile .......................................................................... 24
Update Intensive Profile......................................................................... 25
Conclusion ............................................................................................. 26
Database Batch Process Benchmarks 27
Configurations .......................................................................................27
Benchmark Tests ................................................................................... 27
Find Orders By Amount and Customer Balance and Discount Query ..... 27
Find Orders By Amount Query ................................................................ 28
Find Customers By Name Query ............................................................. 29
Find Items Under Stock Query ............................................................... 29
Update Order Line By Amount Query ..................................................... 30
Conclusion ............................................................................................. 31
Conclusion 32
Acknowledgement 33
Disclaimer 34
Technical Reference 35
Appendix A – File System Benchmark Scripts 36
2GB on FAT32 Test Script ..................................................................... 36
2GB on NTFS Test Script ....................................................................... 37
6GB on FAT32 Test Script ..................................................................... 37
6GB on NTFS Test Script ....................................................................... 38
Appendix B - TPC-C Database Creation Scripts 39
User Creation Script .............................................................................. 39
Table Creation Script ............................................................................ 39
Index Creation Script ............................................................................ 40
TPC-C Queries .......................................................................................42
New Order Stored Procedure Script ....................................................... 42
Order Status Stored Procedure Script .................................................... 45
Payment Stored Procedure Script .......................................................... 46
Stock Level Stored Procedure Script ...................................................... 48
- 5. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P5 © 2010 Bloombase Technologies
Delivery Stored Procedure Script ........................................................... 49
Appendix C - Batch Process SQL Scripts 51
Find Orders By Amount And Customer Balance and Discount Query .. 51
Find Orders By Amount Query .............................................................. 52
Find Customer By Name Query............................................................. 52
Find Items Under Stock Query ............................................................. 52
Update Order Line By Amount Query ................................................... 53
- 6. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P6 © 2010 Bloombase Technologies
Introduction
Digital assets including financial reports, legal documents, private human resources information, confidential contracts and sensitive user data are
invaluable properties of a corporation. A business cannot risk losing these information, both confidentiality and non-repudiation. Nevertheless, the Internet
has becoming more pervasive, security attacks have grown. News and reports have revealed millions of dollars of loss in various enterprises and
organizations due to security breaches.
Data protection at the persistence layer used to be an uncommon subject in information technology industry. Persistence data, in the old days, are
assumed safely kept and stored in highly secure data centers with effective physical access control and close surveillance. However, trends in the industry
in backup, archive and high availability with an aim to safeguard data from the worst attack and be responsive to rescues, keeping the enterprise core
system running non-stop, have opened up chances confidential data get disclosed and tampered by unauthorized parties.
Numerous security compliance and standards including Sarbanes Oxley, Gramm-Leach-Bliley Act and Personal Data Privacy Ordinance have raised
enterprises’ awareness of securing their core business and customer data. However, persistence data protection is technically a difficult subject. One has
to prepare for additional system complexity, loss of performance, at the same time, maintaining the same level of stability and scalability, and most
important of all, be highly secure, hacker-proof rather than exposing more security loopholes.
Core business data of an enterprise constitutes a major segment of assets that a corporation possesses. Customer data, marketing strategies, intellectual
properties in form of source codes and business logic, sales history and prediction figures, and other decision support numerical analysis as result of data-
mining may often bury forward looking intelligence that in some sense have very high future value when put into good use.
This technical note discusses application of NIST FIPS 140-2 validated Bloombase Spitfire StoreSafe Storage Security Server to protect files on Microsoft
Windows and Oracle data files. An industry standard file-system load generation tool called ‘dd’ was used to apply load onto Windows file-systems. Oracle
database throughput and latency were tested and measured by another relational database management system (RDBMS) benchmarking tool called
‘Hammerora’ which generates real-life database access patterns and simulates multi-user concurrent use commonly seen in large enterprises and
corporations. The tests were executed on both plain and ciphered data. Latencies and throughputs were measured, compared and analysed. Despite
benefit of Bloombase Spitfire StoreSafe Storage Encryptor being transparent in deployment and operation, readers will see as well the benefit of high
performance encryption at wirespeed that enables negligible impact to secured data system upon introduction of data cryptography.
- 7. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P7 © 2010 Bloombase Technologies
Purpose and Scope
Persistence data encryption at file level provides the best entry point for achieving information security privacy regulatory compliance requirements in view
of both manageability and security.
Securing Oracle data files is not an easy task as data files are dynamic, they keep updated at all times which means static way of data encryption offered
by encryption utilities are not going to fit the bill. Sensitive data committed to Oracle data files will also be written to database redo logs, archive logs and
flash recovery logs. Thus, to secure the system as a whole, all data files, redo, archive and flash recovery logs have to be encrypted as well.
Bloombase Spitfire StoreSafe storage security server validated at NIST FIPS 140-2 provides a single solution to various information security problems that
place huge threats to sensitive data stored in file-systems and relational databases especially Oracle in which transparent encryption is not in place.
This document describes application of Bloombase Spitfire StoreSafe storage security server on Windows file-systems applicable to Oracle to secure
sensitive information at-rest transparently without tedious second development efforts and numerous deployment risks, enabling customers to protect
their private business information and immediately, thus achieving various information security regulatory compliances and standards.
- 8. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P8 © 2010 Bloombase Technologies
Assumptions
This document describes performance benchmark testing of Bloombase Spitfire StoreSafe Storage Security Server 3.0 on Oracle 8i database server, FAT32
and NTFS file-systems on Microsoft Windows Server 2000 operating system.
We assume readers have basic knowledge of file operations, structured query language (SQL), Oracle and encryption to be able to comprehend the
technical parts of the literature.
- 9. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P9 © 2010 Bloombase Technologies
Infrastructure
Server
Server IBM x-Series server
Processors 1 x Intel Pentium 4 3.00 GHz
Memory 2 GB
Operating System Microsoft Windows 2000 Advanced Server SP4
Storage
Storage Type Internal Serial ATA
Size 80 GB
Manufacturer Hitachi
File Systems
- 10. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P10 © 2010 Bloombase Technologies
File Systems FAT32 and NTFS
Application Software
Oracle Oracle Databaser Server 8i (8.1.7)
Data At-Rest Protection Software
Bloombase Spitfire StoreSafe Bloombase Spitfire StoreSafe Storage Security Server 3.0 for
Microsoft Windows
Bloombase Spitfire KeyCastle Bloombase Spitfire KeyCastle Key Management Server 2.0
Benchmarking Software
File System dd for Windows1
Oracle Hammerora for Windows2
Setup Without Encryption
The following figure shows the benchmarking setup without Bloombase Spitfire StoreSafe encryption
Clear
text
Setup With Encryption
The benchmark testing with Bloombase Spitfire StoreSafe encryption environment is setup as in below figure
- 11. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P11 © 2010 Bloombase Technologies
Bloombase Spitfire
KeyCastle Key
Management Server
Bloombase Spitfire
StoreSafe Security
Server X&*^2
3#$(+
Oracle 8i on
Ethernet Network
Windows Server 2000 with
Storage Network Internal storage
File System Setup
The disk-partition-under-test is assigned drive letter
E:
with capacity 18 GB in size.
File System Tests
For file system benchmark tests, the partition-under-test is formatted by both
FAT32
and
NTFS
file systems.
Database Tests
For Oracle benchmark tests, the partition-under-test is formatted by
NTFS
file system.
Database Setup
Oracle 8i for Windows version 8.1.7 is installed at non system drive D: at location
D:oracle
Oracle database namely
orabm
is create with data file location at
- 12. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P12 © 2010 Bloombase Technologies
E:oracleoradataorabm
with 3 redo logs at 10 MB in size and archive log turned on.
Redo logs are configured to store at location
E:oracleoradataorabm
whereas archive logs at
E:oracleoradataorabmarchive
Bloombase Spitfire StoreSafe Setup
Bloombase Spitfire StoreSafe security server for Microsoft Windows version 3.0 and Spitfire StoreSafe web-based management console are installed at
application server at location
C:spitfire
A Bloombase Spitfire StoreSafe virtual storage namely
protected
is created at physical location
E:
secured by
AES 256-bit
encryption cipher using Spitfire KeyCastle managed encryption key namely
key
When Bloombase Spitfire StoreSafe is in operation, all files written under
E:
get encrypted by Spitfire StoreSafe automatically before the ciphertext contents are physically written to the disk. When files under Spitfire StoreSafe
secured drive are accessed and read, the ciphertext contents are automatically un-encrypted before the on-the-fly un-encrypted virtual plain contents are
returned to the trusted applications.
When Bloombase Spitfire StoreSafe is put to ‘down’ status, files written and read under
E:
- 13. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P13 © 2010 Bloombase Technologies
get written and read with no alteration which means plain contents written to physical disks will reside on physical disk media.
Bloombase Spitfire KeyCastle Setup
Bloombase Spitfire KeyCastle Key Management Server 2.0 is installed on a standalone appliance with dual Intel Quad-Core Xeon 5400 series processors
with 4GB main memory and quad GbE network modules.
Encryption key namely
key
is generated at Bloombase Spitfire KeyCastle Key Management Server by
RSA
algorithm at
2048-bit
in length.
- 14. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P14 © 2010 Bloombase Technologies
File System Benchmarks
Configurations
Chrysocome dd version 0.5 zip archive
dd-0.5.zip
is downloaded and uncompressed into Microsoft Windows 2000 Advanced Server Windows default directory at
C:WINNT
Two ISO disc image files of random contents are generated and stored at
D:fs6G.iso
and
D:fs2G.iso
for Chrysocome dd’s generation of file read/write operations to Bloombase Spitfire StoreSafe encrypted virtual storage sub-directory
E:fs
and compare with those without encryption.
Benchmark Tests
2GB on FAT32
Drive under test
E:
is formatted by
- 15. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P15 © 2010 Bloombase Technologies
FAT32
file-system and directory
E:fs
is created.
With Bloombase Spitfire StoreSafe at ‘off’ status, the
2GB
image file at D: is copied to drive-under-test where start and end times are recorded simulating file write in plain. The image file is then copied from drive-
under-test back to D: where start and end times are recorded simulating file read in plain.
With Bloombase Spitfire StoreSafe at ‘on’ status, the
2GB
image file at D: is copied to drive-under-test where start and end times are recorded simulating file write with on-the-fly encryption. The image file is then
copied from drive-under-test back to D: where start and end times are recorded simulating file read with on-the-fly un-encryption.
The test is automated by test script0 and is run for 5 times with average taken. Latency changes are calculated and summarized in below table
Plain With Encryption Latency Change (%)
Read (sec) 158.75 199.25 +19.21%
Write (sec) 201.25 219.25 +8.9%
Test results are visualized in chart below.
6GB on FAT32
Drive under test
E:
is formatted by
FAT32
file-system and directory
E:fs
is created.
With Bloombase Spitfire StoreSafe at ‘off’ status, the
6GB
image file at D: is copied to drive-under-test where start and end times are recorded simulating file write in plain. The image file is then copied from drive-
under-test back to D: where start and end times are recorded simulating file read in plain.
- 16. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P16 © 2010 Bloombase Technologies
With Bloombase Spitfire StoreSafe at ‘on’ status, the
6GB
image file at D: is copied to drive-under-test where start and end times are recorded simulating file write with on-the-fly encryption. The image file is then
copied from drive-under-test back to D: where start and end times are recorded simulating file read with on-the-fly un-encryption.
The test is automated by test script0 and is run for 5 times with average taken. Latency changes are calculated and summarized in below table
Plain With Encryption Latency Change (%)
Read (sec) 435.25 508 +16.71%
Write (sec) 446.5 473 +5.9%
Test results are visualized in chart below.
2GB on NTFS
Drive under test
E:
is formatted by
NTFS
file-system and directory
E:fs
is created.
With Bloombase Spitfire StoreSafe at ‘off’ status, the
2GB
image file at D: is copied to drive-under-test where start and end times are recorded simulating file write in plain. The image file is then copied from drive-
under-test back to D: where start and end times are recorded simulating file read in plain.
With Bloombase Spitfire StoreSafe at ‘on’ status, the
2GB
image file at D: is copied to drive-under-test where start and end times are recorded simulating file write with on-the-fly encryption. The image file is then
copied from drive-under-test back to D: where start and end times are recorded simulating file read with on-the-fly un-encryption.
The test is automated by test script0 and is run for 5 times with average taken. Latency changes are calculated and summarized in below table
Plain With Encryption Latency Change (%)
Read (sec) 179.2 203.8 +13.72%
- 17. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P17 © 2010 Bloombase Technologies
Write (sec) 195.4 209.1 +7.0%
Test results are visualized in chart below.
6GB on NTFS
Drive under test
E:
is formatted by
NTFS
file-system and directory
E:fs
is created.
With Bloombase Spitfire StoreSafe at ‘off’ status, the
6GB
image file at D: is copied to drive-under-test where start and end times are recorded simulating file write in plain. The image file is then copied from drive-
under-test back to D: where start and end times are recorded simulating file read in plain.
With Bloombase Spitfire StoreSafe at ‘on’ status, the
6GB
image file at D: is copied to drive-under-test where start and end times are recorded simulating file write with on-the-fly encryption. The image file is then
copied from drive-under-test back to D: where start and end times are recorded simulating file read with on-the-fly un-encryption.
The test is automated by test script0 and is run for 5 times with average taken. Latency changes are calculated and summarized in below table
Plain With Encryption Latency Change (%)
Read (sec) 676.4 765.2 +13.13%
Write (sec) 711.4 752.4 +5.78%
Test results are visualized in chart below.
- 18. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P18 © 2010 Bloombase Technologies
Conclusion
Bloombase Spitfire StoreSafe Storage Encryption Server has little penalty on file read and write processes ranging from 5% to 19% increase in latency.
Ciphered file writes (encryption) have degradation from 5% to 7% whereas ciphered file reads (un-encryption) from 13% to 19%. It is clear that
Bloombase Spitfire StoreSafe encryption has relatively larger penalties on file reads than writes.
Comparing file sizes, Bloombase Spitfire StoreSafe encryption has relatively larger penalties on small files than large ones.
- 19. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P19 © 2010 Bloombase Technologies
TPC-C Benchmarks
Configurations
Transaction Processing Performance Council (TPC) defines transaction processing and database benchmarks and delivers trusted results to the industry.
Their tests serve as golden standards for simulating loads for real-life database systems.
TPC-C benchmark is a popular yardstick for comparing OLTP performance on various hardware and software configurations. TPC-C is based on an
enterprise resource and planning (ERP) system that is commonly seen in real-world enterprises. The test simulates a multi-user client-base who interacts
with the sample database for numerous random real-life tasks including
• Customer inquiry
• Item inquiry
• District inquiry
• Warehouse inquiry
• Order processing
• Payment processing
• Delivery processing
• Stock level inquiry
• Order status inquiry
• etc
- 20. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P20 © 2010 Bloombase Technologies
Oracle database system is used in this TPC-C benchmark test. Oracle 8i for Windows version 8.1.7 is installed at non system drive D: at location
D:oracle
Oracle database namely
orabm
is create with data file location at
E:oracleoradataorabm
with 3 redo logs at 10 MB in size and archive log turned on.
Redo logs are configured to store at location
E:oracleoradataorabm
whereas archive logs at
E:oracleoradataorabmarchive
The sample database structure0 is designed to be very scalable such that TPC-C testers can tailor the volume of data to simulate actual amount of real-life
data of their own system.
Number of database records follows a typical rule as summarized in below table
Districts per Warehouse 10
Customers per District 3,000
Orders per District 3,000
Maximum Items per Order 100,000
Our sample database is initialized with
20
warehouses which results in number of initial records as summarized in below table
Warehouses 20
Districts 200
Customers 600,000
Orders 600,000
Order Line Items 6,127,176
Item 100,000
Stock 2,000,000
Indexes0 are built to speed up queries and to simulate real-life databases.
- 21. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P21 © 2010 Bloombase Technologies
The ensemble data file after initialization is
3.07 GB
in size.
To ensure fair play on plain database and ciphered database, the database is first initialized in plain with Bloombase Spitfire StoreSafe in ‘off’ status. After
TPC-C database is fully initialized, Oracle instance is shutdown and the whole database repository at
E:oracleoradataorabm
is archived.
Benchmark tests on ciphered database were executed with Bloombase Spitfire StoreSafe in ‘on’ status with database archive restored at virtual plain
location at
E:oracleoradataorabm
Before Oracle instance is launched on Bloombase Spitfire StoreSafe virtual storage
E:
Benchmark Tests
TPC-C testing loads are applied by Hammerora with embedded industry leading Apache JMeter performance testing tool.
- 22. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P22 © 2010 Bloombase Technologies
The tool is installed on a standalone machine with dual Intel Quad-Core Xeon 5400 series processors with 4GB main memory and quad GbE network
module. The stress client is purposely sized to apply good enough loads to the TPC-C sample database so as to push the database system to the limits
obtaining the maximum throughput of the data system in question.
Apache JMeter is built in with a highly configurable multi-threaded load application module and a feature rich graphical interface for reporting load test
results.
- 23. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P23 © 2010 Bloombase Technologies
Default TPC-C Profile
Default TPC-C profile specifies a multi-user environment firing random OLTP tasks to the database in test with a typical mix of database queries and
updates.
In this case, number of virtual users are set to
200
Every virtual user submit
1000
random OLTP requests to the ERP database with random sleep times shorter than
10 ms
in between every subsequent requests.
The mix of database queries and updates are summarized in below table
Virtual Users 200
Loop Count 1000
Sleep Milliseconds 10
New Order Update Ratio 20
Payment Update Ratio 10
Delivery Update Ratio 10
Stock Level Query Ratio 50
- 24. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P24 © 2010 Bloombase Technologies
Order Status Query Ratio 30
The throughput figures in transaction per minute (tpm) are summarized in below table.
Plain With Encryption Throughput Change (%)
Throughput (tpm) 7763.95 7626.54 -1.77%
The system throughputs are visualized in below chart.
Query Intensive Profile
The query intensive profile is designed to have relatively larger proportion of random client requests on read-only queries than writable database updates.
In this case, number of virtual users are set to
200
Every virtual user submit
1000
random OLTP requests to the ERP database with random sleep times shorter than
10 ms
in between every subsequent requests.
The mix of database queries and updates are summarized in below table
Virtual Users 200
Loop Count 1000
Sleep Milliseconds 10
New Order Update Ratio 1
Payment Update Ratio 1
Delivery Update Ratio 1
Stock Level Query Ratio 50
Order Status Query Ratio 30
The throughput figures in transaction per minute (tpm) are summarized in below table.
- 25. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P25 © 2010 Bloombase Technologies
Plain With Encryption Throughput Change (%)
Throughput (tpm) 21556.11 21268.12 -1.34%
The system throughputs are visualized in below chart.
Update Intensive Profile
The update intensive profile is designed to have relatively larger proportion of random client requests on writeable database updates than read-only
queries.
In this case, number of virtual users are set to
200
Every virtual user submit
1000
random OLTP requests to the ERP database with random sleep times shorter than
10 ms
in between every subsequent requests.
The mix of database queries and updates are summarized in below table
Virtual Users 200
Loop Count 1000
Sleep Milliseconds 10
New Order Update Ratio 20
Payment Update Ratio 10
Delivery Update Ratio 10
Stock Level Query Ratio 1
Order Status Query Ratio 1
The throughput figures in transaction per minute (tpm) are summarized in below table.
Plain With Encryption Throughput Change (%)
- 26. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P26 © 2010 Bloombase Technologies
Throughput (tpm) 5543.46 5480.41 -0.78%
The system throughputs are visualized in below chart.
Conclusion
Bloombase Spitfire StoreSafe storage level encryption has negligible penalty on TPC-C throughputs ranging from 0.7% to 1.7% drop.
Comparing query intensive and update intensive tasks, Bloombase Spitfire StoreSafe storage encryption server has relatively less throughput degradation
on update intensive (encryption) than queries (un-encryption).
- 27. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P27 © 2010 Bloombase Technologies
Database Batch Process Benchmarks
Configurations
TPC-C benchmark tests essentially measure the overall capability a data system can process concurrent heterogeneous requests at a time. System
throughput is primarily a server-side measurement which only makes sense to system administrators and application developers. On the other hand,
system users are mostly concerned at the response of the system.
When it comes to database encryption, users are sure to be let down if encryption puts a huge penalty to latency of a query or a database record update.
This section of paper describes a series of tests based on the same TPC-C database but with long running batch processing SQL’s. The queries were
executed on both plain and encrypted version of the same TPC-C warehouse database and their process times, latencies, were measured and compared.
Benchmark Tests
Find Orders By Amount and Customer Balance and Discount Query
This test is based on the SQL below
select *
from ORDERS, ORDER_LINE, ITEM, CUSTOMER
where ORDER_LINE.OL_W_ID = ORDERS.O_W_ID
and ORDER_LINE.OL_O_ID = ORDERS.O_ID
and ORDER_LINE.OL_D_ID = ORDERS.O_D_ID
and ORDER_LINE.OL_I_ID = ITEM.I_ID
and ORDERS.O_W_ID = CUSTOMER.C_W_ID
and ORDERS.O_D_ID = CUSTOMER.C_D_ID
and ORDERS.O_C_ID = CUSTOMER.C_ID
and ORDER_LINE.OL_AMOUNT > 28
and ORDER_LINE.OL_AMOUNT < 39
- 28. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P28 © 2010 Bloombase Technologies
and CUSTOMER.C_BALANCE > 0
and CUSTOMER.C_DISCOUNT > 0.1
and CUSTOMER.C_DISCOUNT < 0.2
order by CUSTOMER.C_LAST asc, CUSTOMER.C_FIRST asc
This query attempts to find the orders with order line amounts within 28 and 39, customers with balance and discount within 10% and 20%. The query
result is sorted by customer last names and first names.
Statistics show the query makes use of indexed columns to optimize search and sorting without table scans.
The following table summarizes averages of 5 query latencies.
Plain With Encryption Latency Change (%)
Query (sec) 22.44 22.89 +2.02%
The query processing times are visualized in below chart.
Find Orders By Amount Query
This test is based on the SQL below
select *
from ORDERS, ORDER_LINE, ITEM, CUSTOMER
where ORDER_LINE.OL_W_ID = ORDERS.O_W_ID
and ORDER_LINE.OL_O_ID = ORDERS.O_ID
and ORDER_LINE.OL_D_ID = ORDERS.O_D_ID
and ORDER_LINE.OL_I_ID = ITEM.I_ID
and ORDERS.O_W_ID = CUSTOMER.C_W_ID
and ORDERS.O_D_ID = CUSTOMER.C_D_ID
and ORDERS.O_C_ID = CUSTOMER.C_ID
and ORDER_LINE.OL_AMOUNT > 28
and ORDER_LINE.OL_AMOUNT < 39
order by CUSTOMER.C_LAST asc, CUSTOMER.C_FIRST asc
This query attempts to find the orders with order line amounts within 28 and 39. The query result is sorted by customer last names and first names.
Statistics show the query makes use of indexed columns to optimize search and sorting without table scans.
The following table summarizes averages of 5 query latencies.
Plain With Encryption Latency Change (%)
- 29. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P29 © 2010 Bloombase Technologies
Query (sec) 37.46 39.57 +5.65%
The query processing times are visualized in below chart.
Find Customers By Name Query
This test is based on the SQL below
select *
from CUSTOMER
where CUSTOMER.C_LAST like 'E%'
and CUSTOMER.C_FIRST like 'E%'
order by CUSTOMER.C_LAST asc, CUSTOMER.C_FIRST asc
This query attempts to find customers with both last and first names with ‘E’ as prefix. The query result is sorted by customer last names and first names.
Statistics show the query makes use of indexed columns to optimize search and sorting without table scans.
The following table summarizes averages of 5 query latencies.
Plain With Encryption Latency Change (%)
Query (sec) 7.46 8.12 +6.13%
The query processing times are visualized in below chart.
Find Items Under Stock Query
This test is based on the SQL below
- 30. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P30 © 2010 Bloombase Technologies
select *
from STOCK, ITEM, WAREHOUSE
where STOCK.S_I_ID = ITEM.I_ID
and STOCK.S_W_ID = WAREHOUSE.W_ID
and S_QUANTITY < 10
order by WAREHOUSE.W_NAME asc
This query attempts to find stocks and items with quantity below 10. The query result is sorted by warehouse names.
Statistics show the query makes use of indexed columns to optimize search and sorting without table scans.
The following table summarizes averages of 5 query latencies.
Plain With Encryption Latency Change (%)
Query (sec) 3.15 3.29 +4.19%
The query processing times are visualized in below chart.
Update Order Line By Amount Query
This test is based on the SQL below
update ORDER_LINE
set OL_DIST_INFO = OL_DIST_INFO
where OL_AMOUNT > 18
and OL_AMOUNT < 19
This query attempts to find the order lines with amounts within 18 and 19 and update the district information of the line item by its original contents.
Statistics show the query makes use of indexed columns to optimize search and sorting without table scans.
The following table summarizes averages of 5 query latencies.
Plain With Encryption Latency Change (%)
Query (sec) 13.34 14.18 +6.31%
The query processing times are visualized in below chart.
- 31. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P31 © 2010 Bloombase Technologies
Conclusion
Bloombase Spitfire StoreSafe has little penalties on long running batch processing SQL’s ranging from 2% to 6%.
Comparing read intensive and update intensive queries, Bloombase Spitfire StoreSafe has relative less degradation on latencies for read only queries (un-
encryption).
- 32. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P32 © 2010 Bloombase Technologies
Conclusion
Bloombase Spitfire StoreSafe Storage Security Server protects privacy of sensitive enterprise data by transparent encryption and decryption. This paper
summarizes quick reference of file and database access latencies and throughputs as a result of introduction of Bloombase Spitfire StoreSafe encryption to
the data storage sub-system.
Bloombase Spitfire StoreSafe Security Server brings in approximately 5% latency penalty on file writes (encryption) and 15% on file reads (un-encryption)
for file systems secured by its real-time transparent encryption, though not negligible, are only barely noticeable for large files. For instance, a system
without encryption takes originally 12 minutes to backup a 6 GB archive file. With Bloombase encryption in place, additional 40 seconds are required to
complete the process which can easily be absorbed by existing backup time-window and should place no major concern to most applications.
Most enterprise scale data systems with sensitive and confidential information are managed by relational database systems as a de-facto standard.
Bloombase Spitfire StoreSafe is highly optimized for database protection reporting negligible drop on TPC-C throughputs at around 1% whereas SQL’s
executed on Bloombase encrypted databases take an average of 4% longer on latencies. Unlike file access where Bloombase Spitfire StoreSafe is
optimized on file writes (encryption), database read-only queries (un-encryption) on Bloombase Spitfire StoreSafe encrypted database files have much less
degradation than database updates. Typical OLTP systems generally have relatively much larger proportion of database inquiries than updates which
would bring down the latency penalty to less than 3%. Adding processing and caching on the application servers, web servers and the network times,
overall latencies likely further minimize to below 1% which is un-noticeable by application users. The end result is a privacy compliant data system yet still
fulfils existing service level agreements (SLA).
NIST FIPS 140-2 validated Bloombase Spitfire StoreSafe Security Server demonstrates uncompromised data at-rest security and trouble-free fast
deployment on-the-fly transparent encryption for file systems and database systems with least impact in both throughput and latency perspectives.
For further information about this paper and the solution, please contact us at sales@bloombase.com or visit our website at http://www.bloombase.com.
- 33. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P33 © 2010 Bloombase Technologies
Acknowledgement
We would like to thank the following individuals for their contribution in terms of technical support and facilities management to the completion of the
testing process:
Sashikala Rajalingam, IBM Innovation Center
Catharine GH Tan, IBM Innovation Center
- 34. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P34 © 2010 Bloombase Technologies
Disclaimer
The tests described in this paper were conducted in the Bloombase InteropLab. Bloombase has not tested this configuration with all the combinations of
hardware and software options available. There may be significant differences in your configuration that will change the procedures necessary to
accomplish the objectives outlined in this paper. If you find that any of these procedures do not work in your environment, please contact us immediately.
- 35. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P35 © 2010 Bloombase Technologies
Technical Reference
1. dd for Microsoft Windows, http://www.chrysocome.net/dd
2. Hammerora for Windows, http://hammerora.sourceforge.net/
3. TPC, http://www.tpc.org
4. TPC-C, http://www.tpc.org/tpcc/
- 36. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P36 © 2010 Bloombase Technologies
Appendix A – File System Benchmark
Scripts
2GB on FAT32 Test Script
@echo off
format E: /FS:FAT32 /q /v:
md E:fs
set /A hour=%time:~0,1%*10+%time:~1,1%
set /A min=%time:~3,1%*10+%time:~4,1%
set /A sec=%time:~6,1%*10+%time:~7,1%
set /A starttime=%hour%*3600+%min%*60+%sec%
echo %time%
dd if=D:2G.iso of=E:fs2G.iso
set /A hour=%time:~0,1%*10+%time:~1,1%
set /A min=%time:~3,1%*10+%time:~4,1%
set /A sec=%time:~6,1%*10+%time:~7,1%
set /A endtime=%hour%*3600+%min%*60+%sec%
echo %time%
set /A timeused=%endtime%-%starttime%
echo write time used(s): %timeused%
chkdsk E: /f
set /A hour=%time:~0,1%*10+%time:~1,1%
set /A min=%time:~3,1%*10+%time:~4,1%
set /A sec=%time:~6,1%*10+%time:~7,1%
set /A starttime=%hour%*3600+%min%*60+%sec%
echo %time%
dd if=E:fs2G.iso of=D:2G.iso
set /A hour=%time:~0,1%*10+%time:~1,1%
set /A min=%time:~3,1%*10+%time:~4,1%
set /A sec=%time:~6,1%*10+%time:~7,1%
set /A endtime=%hour%*3600+%min%*60+%sec%
- 37. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P37 © 2010 Bloombase Technologies
echo %time%
set /A timeused=%endtime%-%starttime%
echo read time used(s): %timeused%
2GB on NTFS Test Script
@echo off
format E: /FS:NTFS /q /v:
md E:fs
set /A hour=%time:~0,1%*10+%time:~1,1%
set /A min=%time:~3,1%*10+%time:~4,1%
set /A sec=%time:~6,1%*10+%time:~7,1%
set /A starttime=%hour%*3600+%min%*60+%sec%
echo %time%
dd if=D:2G.iso of=E:fs2G.iso
set /A hour=%time:~0,1%*10+%time:~1,1%
set /A min=%time:~3,1%*10+%time:~4,1%
set /A sec=%time:~6,1%*10+%time:~7,1%
set /A endtime=%hour%*3600+%min%*60+%sec%
echo %time%
set /A timeused=%endtime%-%starttime%
echo write time used(s): %timeused%
chkdsk E: /f
set /A hour=%time:~0,1%*10+%time:~1,1%
set /A min=%time:~3,1%*10+%time:~4,1%
set /A sec=%time:~6,1%*10+%time:~7,1%
set /A starttime=%hour%*3600+%min%*60+%sec%
echo %time%
dd if=E:fs2G.iso of=D:2G.iso
set /A hour=%time:~0,1%*10+%time:~1,1%
set /A min=%time:~3,1%*10+%time:~4,1%
set /A sec=%time:~6,1%*10+%time:~7,1%
set /A endtime=%hour%*3600+%min%*60+%sec%
echo %time%
set /A timeused=%endtime%-%starttime%
echo read time used(s): %timeused%
6GB on FAT32 Test Script
@echo off
format E: /FS:FAT32 /q /v:
md E:fs
set /A hour=%time:~0,1%*10+%time:~1,1%
set /A min=%time:~3,1%*10+%time:~4,1%
set /A sec=%time:~6,1%*10+%time:~7,1%
set /A starttime=%hour%*3600+%min%*60+%sec%
echo %time%
dd if=D:6G.iso of=E:fs6G.iso
set /A hour=%time:~0,1%*10+%time:~1,1%
set /A min=%time:~3,1%*10+%time:~4,1%
set /A sec=%time:~6,1%*10+%time:~7,1%
set /A endtime=%hour%*3600+%min%*60+%sec%
echo %time%
set /A timeused=%endtime%-%starttime%
echo write time used(s): %timeused%
chkdsk E: /f
set /A hour=%time:~0,1%*10+%time:~1,1%
set /A min=%time:~3,1%*10+%time:~4,1%
- 38. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P38 © 2010 Bloombase Technologies
set /A sec=%time:~6,1%*10+%time:~7,1%
set /A starttime=%hour%*3600+%min%*60+%sec%
echo %time%
dd if=E:fs6G.iso of=D:6G.iso
set /A hour=%time:~0,1%*10+%time:~1,1%
set /A min=%time:~3,1%*10+%time:~4,1%
set /A sec=%time:~6,1%*10+%time:~7,1%
set /A endtime=%hour%*3600+%min%*60+%sec%
echo %time%
set /A timeused=%endtime%-%starttime%
echo read time used(s): %timeused%
6GB on NTFS Test Script
@echo off
format E: /FS:NTFS /q /v:
md E:fs
set /A hour=%time:~0,1%*10+%time:~1,1%
set /A min=%time:~3,1%*10+%time:~4,1%
set /A sec=%time:~6,1%*10+%time:~7,1%
set /A starttime=%hour%*3600+%min%*60+%sec%
echo %time%
dd if=D:6G.iso of=E:fs6G.iso
set /A hour=%time:~0,1%*10+%time:~1,1%
set /A min=%time:~3,1%*10+%time:~4,1%
set /A sec=%time:~6,1%*10+%time:~7,1%
set /A endtime=%hour%*3600+%min%*60+%sec%
echo %time%
set /A timeused=%endtime%-%starttime%
echo write time used(s): %timeused%
chkdsk E: /f
set /A hour=%time:~0,1%*10+%time:~1,1%
set /A min=%time:~3,1%*10+%time:~4,1%
set /A sec=%time:~6,1%*10+%time:~7,1%
set /A starttime=%hour%*3600+%min%*60+%sec%
echo %time%
dd if=E:fs6G.iso of=D:6G.iso
set /A hour=%time:~0,1%*10+%time:~1,1%
set /A min=%time:~3,1%*10+%time:~4,1%
set /A sec=%time:~6,1%*10+%time:~7,1%
set /A endtime=%hour%*3600+%min%*60+%sec%
echo %time%
set /A timeused=%endtime%-%starttime%
echo read time used(s): %timeused%
- 39. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P39 © 2010 Bloombase Technologies
Appendix B - TPC-C Database Creation
Scripts
User Creation Script
create user orabm identified by orabm temporary tablespace temp;
grant connect,resource to orabm;
alter user orabm default tablespace tools;
alter user orabm quota unlimited on tools;
revoke unlimited tablespace from orabm;
exit
Table Creation Script
grant connect, resource to orabm;
grant connect, resource to sys;
CREATE TABLE ORABM.CUSTOMER (C_ID NUMBER(5, 0), C_D_ID
NUMBER(2, 0), C_W_ID NUMBER(4, 0), C_FIRST VARCHAR2(16),
C_MIDDLE CHAR(2), C_LAST VARCHAR2(16), C_STREET_1 VARCHAR2(20),
C_STREET_2 VARCHAR2(20), C_CITY VARCHAR2(20), C_STATE CHAR(2),
C_ZIP CHAR(9), C_PHONE CHAR(16), C_SINCE DATE, C_CREDIT
CHAR(2), C_CREDIT_LIM NUMBER(12, 2), C_DISCOUNT NUMBER(4, 4),
C_BALANCE NUMBER(12, 2), C_YTD_PAYMENT NUMBER(12, 2),
C_PAYMENT_CNT NUMBER(8, 0), C_DELIVERY_CNT NUMBER(8, 0), C_DATA
VARCHAR2(500)) PCTFREE 10;
- 40. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P40 © 2010 Bloombase Technologies
CREATE TABLE ORABM.DISTRICT (D_ID NUMBER(2, 0), D_W_ID
NUMBER(4, 0), D_YTD NUMBER(12, 2), D_TAX NUMBER(4, 4),
D_NEXT_O_ID NUMBER, D_NAME VARCHAR2(10), D_STREET_1
VARCHAR2(20), D_STREET_2 VARCHAR2(20), D_CITY VARCHAR2(20),
D_STATE CHAR(2), D_ZIP CHAR(9)) PCTFREE 10;
CREATE TABLE ORABM.HISTORY (H_C_ID NUMBER, H_C_D_ID NUMBER,
H_C_W_ID NUMBER, H_D_ID NUMBER, H_W_ID NUMBER, H_DATE DATE,
H_AMOUNT NUMBER(6, 2), H_DATA VARCHAR2(24)) PCTFREE 10;
CREATE TABLE ORABM.ITEM (I_ID NUMBER(6, 0), I_IM_ID NUMBER,
I_NAME VARCHAR2(24), I_PRICE NUMBER(5, 2), I_DATA VARCHAR2(50)) PCTFREE 10;
CREATE TABLE ORABM.NEW_ORDER (NO_O_ID NUMBER, NO_D_ID NUMBER,
NO_W_ID NUMBER) PCTFREE 10;
CREATE TABLE ORABM.ORDERS (O_ID NUMBER, O_D_ID NUMBER, O_W_ID
NUMBER, O_C_ID NUMBER, O_ENTRY_D DATE, O_CARRIER_ID NUMBER,
O_OL_CNT NUMBER, O_ALL_LOCAL NUMBER) PCTFREE 10;
CREATE TABLE ORABM.ORDER_LINE (OL_O_ID NUMBER, OL_D_ID NUMBER,
OL_W_ID NUMBER, OL_NUMBER NUMBER, OL_DELIVERY_D DATE, OL_I_ID
NUMBER, OL_SUPPLY_W_ID NUMBER, OL_QUANTITY NUMBER, OL_AMOUNT
NUMBER(6, 2), OL_DIST_INFO CHAR(24)) PCTFREE 10;
CREATE TABLE ORABM.STOCK (S_I_ID NUMBER(6, 0), S_W_ID
NUMBER(4, 0), S_QUANTITY NUMBER(6, 0), S_DIST_01 CHAR(24),
S_DIST_02 CHAR(24), S_DIST_03 CHAR(24), S_DIST_04 CHAR(24),
S_DIST_05 CHAR(24), S_DIST_06 CHAR(24), S_DIST_07 CHAR(24),
S_DIST_08 CHAR(24), S_DIST_09 CHAR(24), S_DIST_10 CHAR(24),
S_YTD NUMBER(10, 0), S_ORDER_CNT NUMBER(6, 0), S_REMOTE_CNT
NUMBER(6, 0), S_DATA VARCHAR2(50)) PCTFREE 10;
CREATE TABLE ORABM.WAREHOUSE (W_ID NUMBER(4, 0), W_YTD
NUMBER(12, 2), W_TAX NUMBER(4, 4), W_NAME VARCHAR2(10),
W_STREET_1 VARCHAR2(20), W_STREET_2 VARCHAR2(20), W_CITY
VARCHAR2(20), W_STATE CHAR(2), W_ZIP CHAR(9)) PCTFREE 10;
exit
Index Creation Script
alter session set sort_area_size=5000000;
CREATE UNIQUE INDEX ORABM.CUSTOMER_I1
ON ORABM.CUSTOMER ( C_W_ID, C_D_ID, C_ID) PCTFREE 10;
CREATE UNIQUE INDEX ORABM.CUSTOMER_I2
ON ORABM.CUSTOMER
( C_LAST, C_W_ID, C_D_ID, C_FIRST, C_ID) PCTFREE 10;
CREATE UNIQUE INDEX ORABM.DISTRICT_I1
ON ORABM.DISTRICT
( D_W_ID, D_ID) PCTFREE 10;
CREATE UNIQUE INDEX ORABM.ITEM_I1
- 41. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P41 © 2010 Bloombase Technologies
ON ORABM.ITEM
( I_ID) PCTFREE 10;
CREATE UNIQUE INDEX ORABM.NEW_ORDER_I1
ON ORABM.NEW_ORDER
( NO_W_ID, NO_D_ID, NO_O_ID) PCTFREE 10;
CREATE UNIQUE INDEX ORABM.ORDERS_I1
ON ORABM.ORDERS
( O_W_ID, O_D_ID, O_ID) PCTFREE 10;
CREATE UNIQUE INDEX ORABM.ORDERS_I2
ON ORABM.ORDERS
(O_W_ID, O_D_ID, O_C_ID, O_ID) PCTFREE 10;
CREATE UNIQUE INDEX ORABM.ORDER_LINE_I1
ON ORABM.ORDER_LINE
( OL_W_ID, OL_D_ID, OL_O_ID, OL_NUMBER) PCTFREE 10;
CREATE UNIQUE INDEX ORABM.STOCK_I1
ON ORABM.STOCK
( S_I_ID, S_W_ID) PCTFREE 10;
CREATE UNIQUE INDEX ORABM.WAREHOUSE_I1
ON ORABM.WAREHOUSE
( W_ID) PCTFREE 10;
CREATE INDEX ORABM.CUSTOMER_I3
ON ORABM.CUSTOMER
( C_FIRST ) PCTFREE 10;
CREATE INDEX ORABM.CUSTOMER_I4
ON ORABM.CUSTOMER
( C_BALANCE ) PCTFREE 10;
CREATE INDEX ORABM.CUSTOMER_I5
ON ORABM.CUSTOMER
( C_DISCOUNT ) PCTFREE 10;
CREATE INDEX ORABM.CUSTOMER_I6
ON ORABM.CUSTOMER
( C_CITY ) PCTFREE 10;
CREATE INDEX ORABM.CUSTOMER_I7
ON ORABM.CUSTOMER
( C_ID ) PCTFREE 10;
CREATE INDEX ORABM.DISTRICT_I2
ON ORABM.DISTRICT
( D_ID ) PCTFREE 10;
CREATE INDEX ORABM.DISTRICT_I3
ON ORABM.DISTRICT
( D_CITY ) PCTFREE 10;
CREATE INDEX ORABM.ORDERS_I3
ON ORABM.ORDERS
( O_OL_CNT ) PCTFREE 10;
- 42. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P42 © 2010 Bloombase Technologies
CREATE INDEX ORABM.ORDERS_I4
ON ORABM.ORDERS
( O_C_ID ) PCTFREE 10;
CREATE INDEX ORABM.ORDERS_I5
ON ORABM.ORDERS
( O_ID) PCTFREE 10;
CREATE INDEX ORABM.ORDER_LINE_I2
ON ORABM.ORDER_LINE
( OL_AMOUNT ) PCTFREE 10;
CREATE INDEX ORABM.ORDER_LINE_I3
ON ORABM.ORDER_LINE
( OL_I_ID ) PCTFREE 10;
CREATE INDEX ORABM.ORDER_LINE_I4
ON ORABM.ORDER_LINE
( OL_O_ID) PCTFREE 10;
CREATE INDEX ORABM.STOCK_I2
ON ORABM.STOCK
( S_QUANTITY ) PCTFREE 10;
CREATE INDEX ORABM.WAREHOUSE_I2
ON ORABM.WAREHOUSE
( W_NAME ) PCTFREE 10;
TPC-C Queries
New Order Stored Procedure Script
CREATE OR REPLACE PROCEDURE "ORABM"."NEWORD" (
no_w_id INTEGER,
no_max_w_id INTEGER,
no_d_id INTEGER,
no_c_id INTEGER,
no_o_ol_cnt INTEGER,
no_c_discount OUT NUMBER,
no_c_last OUT VARCHAR2,
no_c_credit OUT VARCHAR2,
no_d_tax OUT NUMBER,
no_w_tax OUT NUMBER,
no_d_next_o_id IN OUT INTEGER,
timestamp IN DATE )
IS
no_ol_supply_w_id INTEGER;
no_ol_i_id NUMBER;
no_ol_quantity NUMBER;
no_o_all_local INTEGER;
o_id INTEGER;
no_i_name VARCHAR2(24);
no_i_price NUMBER(5,2);
no_i_data VARCHAR2(50);
no_s_quantity NUMBER(6);
no_ol_amount NUMBER(6,2);
no_s_dist_01 CHAR(24);
- 43. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P43 © 2010 Bloombase Technologies
no_s_dist_02 CHAR(24);
no_s_dist_03 CHAR(24);
no_s_dist_04 CHAR(24);
no_s_dist_05 CHAR(24);
no_s_dist_06 CHAR(24);
no_s_dist_07 CHAR(24);
no_s_dist_08 CHAR(24);
no_s_dist_09 CHAR(24);
no_s_dist_10 CHAR(24);
no_ol_dist_info CHAR(24);
no_s_data VARCHAR2(50);
x NUMBER;
rbk NUMBER;
not_serializable EXCEPTION;
PRAGMA EXCEPTION_INIT(not_serializable,-8177);
deadlock EXCEPTION;
PRAGMA EXCEPTION_INIT(deadlock,-60);
snapshot_too_old EXCEPTION;
PRAGMA EXCEPTION_INIT(snapshot_too_old,-1555);
integrity_viol EXCEPTION;
PRAGMA EXCEPTION_INIT(integrity_viol,-1);
BEGIN
--assignment below added due to error in appendix code
no_o_all_local := 0;
SELECT c_discount, c_last, c_credit, w_tax
INTO no_c_discount, no_c_last, no_c_credit, no_w_tax
FROM customer, warehouse
WHERE warehouse.w_id = no_w_id AND customer.c_w_id = no_w_id AND
customer.c_d_id = no_d_id AND customer.c_id = no_c_id;
UPDATE district SET d_next_o_id = d_next_o_id + 1 WHERE d_id = no_d_id AND d_w_id = no_w_id
RETURNING d_next_o_id, d_tax INTO no_d_next_o_id, no_d_tax;
o_id := no_d_next_o_id;
INSERT INTO ORDERS (o_id, o_d_id, o_w_id, o_c_id, o_entry_d, o_ol_cnt, o_all_local) VALUES (o_id,
no_d_id, no_w_id, no_c_id, timestamp, no_o_ol_cnt, no_o_all_local);
INSERT INTO NEW_ORDER (no_o_id, no_d_id, no_w_id) VALUES (o_id, no_d_id, no_w_id);
--#2.4.1.4
rbk := round(DBMS_RANDOM.value(low => 1, high => 100));
--#2.4.1.5
FOR loop_counter IN 1 .. no_o_ol_cnt
LOOP
IF ((loop_counter = no_o_ol_cnt) AND (rbk = 1))
THEN
no_ol_i_id := 100001;
ELSE
no_ol_i_id := round(DBMS_RANDOM.value(low => 1, high => 100000));
END IF;
--#2.4.1.5.2
x := round(DBMS_RANDOM.value(low => 1, high => 100));
IF ( x > 1 )
THEN
no_ol_supply_w_id := no_w_id;
ELSE
no_ol_supply_w_id := no_w_id;
--no_all_local is actually used before this point so following not beneficial
no_o_all_local := 0;
WHILE ((no_ol_supply_w_id = no_w_id) AND (no_max_w_id != 1))
LOOP
no_ol_supply_w_id := round(DBMS_RANDOM.value(low => 1, high => no_max_w_id));
END LOOP;
END IF;
--#2.4.1.5.3
no_ol_quantity := round(DBMS_RANDOM.value(low => 1, high => 10));
SELECT i_price, i_name, i_data INTO no_i_price, no_i_name, no_i_data
FROM item WHERE i_id = no_ol_i_id;
- 44. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P44 © 2010 Bloombase Technologies
SELECT s_quantity, s_data, s_dist_01, s_dist_02, s_dist_03, s_dist_04, s_dist_05, s_dist_06,
s_dist_07, s_dist_08, s_dist_09, s_dist_10
INTO no_s_quantity, no_s_data, no_s_dist_01, no_s_dist_02, no_s_dist_03, no_s_dist_04,
no_s_dist_05, no_s_dist_06, no_s_dist_07, no_s_dist_08, no_s_dist_09, no_s_dist_10 FROM stock WHERE
s_i_id = no_ol_i_id AND s_w_id = no_ol_supply_w_id;
IF ( no_s_quantity > no_ol_quantity )
THEN
no_s_quantity := ( no_s_quantity - no_ol_quantity );
ELSE
no_s_quantity := ( no_s_quantity - no_ol_quantity + 91 );
END IF;
UPDATE stock SET s_quantity = no_s_quantity
WHERE s_i_id = no_ol_i_id
AND s_w_id = no_ol_supply_w_id;
no_ol_amount := ( no_ol_quantity * no_i_price * ( 1 + no_w_tax + no_d_tax ) * ( 1 - no_c_discount
) );
IF no_d_id = 1
THEN
no_ol_dist_info := no_s_dist_01;
ELSIF no_d_id = 2
THEN
no_ol_dist_info := no_s_dist_02;
ELSIF no_d_id = 3
THEN
no_ol_dist_info := no_s_dist_03;
ELSIF no_d_id = 4
THEN
no_ol_dist_info := no_s_dist_04;
ELSIF no_d_id = 5
THEN
no_ol_dist_info := no_s_dist_05;
ELSIF no_d_id = 6
THEN
no_ol_dist_info := no_s_dist_06;
ELSIF no_d_id = 7
THEN
no_ol_dist_info := no_s_dist_07;
ELSIF no_d_id = 8
THEN
no_ol_dist_info := no_s_dist_08;
ELSIF no_d_id = 9
THEN
no_ol_dist_info := no_s_dist_09;
ELSIF no_d_id = 10
THEN
no_ol_dist_info := no_s_dist_10;
END IF;
INSERT INTO order_line (ol_o_id, ol_d_id, ol_w_id, ol_number, ol_i_id, ol_supply_w_id, ol_quantity,
ol_amount, ol_dist_info)
VALUES (o_id, no_d_id, no_w_id, loop_counter, no_ol_i_id, no_ol_supply_w_id, no_ol_quantity,
no_ol_amount, no_ol_dist_info);
END LOOP;
COMMIT;
- 45. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P45 © 2010 Bloombase Technologies
EXCEPTION
WHEN not_serializable OR deadlock OR snapshot_too_old OR integrity_viol
THEN
ROLLBACK;
END;
Order Status Stored Procedure Script
CREATE OR REPLACE PROCEDURE "ORABM"."OSTAT" (
os_w_id INTEGER,
os_d_id INTEGER,
os_c_id IN OUT INTEGER,
byname INTEGER,
os_c_last IN OUT VARCHAR2,
os_c_first OUT VARCHAR2,
os_c_middle OUT VARCHAR2,
os_c_balance OUT NUMBER,
os_o_id OUT INTEGER,
os_entdate OUT DATE,
os_o_carrier_id OUT INTEGER )
IS
TYPE numbertable IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
os_ol_i_id numbertable;
os_ol_supply_w_id numbertable;
os_ol_quantity numbertable;
TYPE amounttable IS TABLE OF NUMBER(6,2) INDEX BY BINARY_INTEGER;
os_ol_amount amounttable;
TYPE datetable IS TABLE OF DATE INDEX BY BINARY_INTEGER;
os_ol_delivery_d datetable;
namecnt INTEGER;
i BINARY_INTEGER;
CURSOR c_name IS
SELECT c_balance, c_first, c_middle, c_id
FROM customer
WHERE c_last = os_c_last AND c_d_id = os_d_id AND c_w_id = os_w_id
ORDER BY c_first;
CURSOR c_line IS
SELECT ol_i_id, ol_supply_w_id, ol_quantity,
ol_amount, ol_delivery_d
FROM order_line
WHERE ol_o_id = os_o_id AND ol_d_id = os_d_id AND ol_w_id = os_w_id;
os_c_line c_line%ROWTYPE;
not_serializable EXCEPTION;
PRAGMA EXCEPTION_INIT(not_serializable,-8177);
deadlock EXCEPTION;
PRAGMA EXCEPTION_INIT(deadlock,-60);
snapshot_too_old EXCEPTION;
PRAGMA EXCEPTION_INIT(snapshot_too_old,-1555);
BEGIN
IF ( byname = 1 )
THEN
SELECT count(c_id) INTO namecnt
FROM customer
WHERE c_last = os_c_last AND c_d_id = os_d_id AND c_w_id = os_w_id;
IF ( MOD (namecnt, 2) = 1 )
THEN
namecnt := (namecnt + 1);
END IF;
OPEN c_name;
FOR loop_counter IN 0 .. (namecnt/2)
LOOP
- 46. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P46 © 2010 Bloombase Technologies
FETCH c_name
INTO os_c_balance, os_c_first, os_c_middle, os_c_id;
END LOOP;
close c_name;
ELSE
SELECT c_balance, c_first, c_middle, c_last
INTO os_c_balance, os_c_first, os_c_middle, os_c_last
FROM customer
WHERE c_id = os_c_id AND c_d_id = os_d_id AND c_w_id = os_w_id;
END IF;
-- The following statement in the TPC-C specification appendix is incorrect
-- as it does not include the where clause and does not restrict the
-- results set giving an ORA-01422.
-- The statement has been modified in accordance with the
-- descriptive specification as follows:
-- The row in the ORDER table with matching O_W_ID (equals C_W_ID),
-- O_D_ID (equals C_D_ID), O_C_ID (equals C_ID), and with the largest
-- existing O_ID, is selected. This is the most recent order placed by that
-- customer. O_ID, O_ENTRY_D, and O_CARRIER_ID are retrieved.
SELECT o_id, o_carrier_id, o_entry_d
INTO os_o_id, os_o_carrier_id, os_entdate
FROM
(SELECT o_id, o_carrier_id, o_entry_d
FROM orders where o_d_id = os_d_id AND o_w_id = os_w_id and o_c_id=os_c_id
ORDER BY o_id DESC)
WHERE ROWNUM = 1;
i := 0;
FOR os_c_line IN c_line
LOOP
os_ol_i_id(i) := os_c_line.ol_i_id;
os_ol_supply_w_id(i) := os_c_line.ol_supply_w_id;
os_ol_quantity(i) := os_c_line.ol_quantity;
os_ol_amount(i) := os_c_line.ol_amount;
os_ol_delivery_d(i) := os_c_line.ol_delivery_d;
i := i+1;
END LOOP;
EXCEPTION WHEN not_serializable OR deadlock OR snapshot_too_old THEN
ROLLBACK;
END;
Payment Stored Procedure Script
CREATE OR REPLACE PROCEDURE "ORABM"."PAYMENT" (
p_w_id INTEGER,
p_d_id INTEGER,
p_c_w_id INTEGER,
p_c_d_id INTEGER,
p_c_id IN OUT INTEGER,
byname INTEGER,
p_h_amount NUMBER,
p_c_last IN OUT VARCHAR2,
p_w_street_1 OUT VARCHAR2,
p_w_street_2 OUT VARCHAR2,
p_w_city OUT VARCHAR2,
p_w_state OUT VARCHAR2,
p_w_zip OUT VARCHAR2,
p_d_street_1 OUT VARCHAR2,
p_d_street_2 OUT VARCHAR2,
p_d_city OUT VARCHAR2,
p_d_state OUT VARCHAR2,
p_d_zip OUT VARCHAR2,
p_c_first OUT VARCHAR2,
p_c_middle OUT VARCHAR2,
- 47. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P47 © 2010 Bloombase Technologies
p_c_street_1 OUT VARCHAR2,
p_c_street_2 OUT VARCHAR2,
p_c_city OUT VARCHAR2,
p_c_state OUT VARCHAR2,
p_c_zip OUT VARCHAR2,
p_c_phone OUT VARCHAR2,
p_c_since OUT DATE,
p_c_credit IN OUT VARCHAR2,
p_c_credit_lim OUT NUMBER,
p_c_discount OUT NUMBER,
p_c_balance IN OUT NUMBER,
p_c_data OUT VARCHAR2,
timestamp IN DATE )
IS
namecnt INTEGER;
p_d_name VARCHAR2(11);
p_w_name VARCHAR2(11);
p_c_new_data VARCHAR2(500);
h_data VARCHAR2(30);
CURSOR c_byname IS
SELECT c_first, c_middle, c_id,
c_street_1, c_street_2, c_city, c_state, c_zip,
c_phone, c_credit, c_credit_lim,
c_discount, c_balance, c_since
FROM customer
WHERE c_w_id = p_c_w_id AND c_d_id = p_c_d_id AND c_last = p_c_last
ORDER BY c_first;
not_serializable EXCEPTION;
PRAGMA EXCEPTION_INIT(not_serializable,-8177);
deadlock EXCEPTION;
PRAGMA EXCEPTION_INIT(deadlock,-60);
snapshot_too_old EXCEPTION;
PRAGMA EXCEPTION_INIT(snapshot_too_old,-1555);
BEGIN
UPDATE warehouse SET w_ytd = w_ytd + p_h_amount
WHERE w_id = p_w_id;
SELECT w_street_1, w_street_2, w_city, w_state, w_zip, w_name
INTO p_w_street_1, p_w_street_2, p_w_city, p_w_state, p_w_zip, p_w_name
FROM warehouse
WHERE w_id = p_w_id;
UPDATE district SET d_ytd = d_ytd + p_h_amount
WHERE d_w_id = p_w_id AND d_id = p_d_id;
SELECT d_street_1, d_street_2, d_city, d_state, d_zip, d_name
INTO p_d_street_1, p_d_street_2, p_d_city, p_d_state, p_d_zip, p_d_name
FROM district
WHERE d_w_id = p_w_id AND d_id = p_d_id;
IF ( byname = 1 )
THEN
SELECT count(c_id) INTO namecnt
FROM customer
WHERE c_last = p_c_last AND c_d_id = p_c_d_id AND c_w_id = p_c_w_id;
OPEN c_byname;
IF ( MOD (namecnt, 2) = 1 )
THEN
namecnt := (namecnt + 1);
END IF;
FOR loop_counter IN 0 .. (namecnt/2)
LOOP
FETCH c_byname
INTO p_c_first, p_c_middle, p_c_id, p_c_street_1, p_c_street_2, p_c_city,
p_c_state, p_c_zip, p_c_phone, p_c_credit, p_c_credit_lim, p_c_discount, p_c_balance, p_c_since;
END LOOP;
CLOSE c_byname;
ELSE
- 48. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P48 © 2010 Bloombase Technologies
SELECT c_first, c_middle, c_last,
c_street_1, c_street_2, c_city, c_state, c_zip,
c_phone, c_credit, c_credit_lim,
c_discount, c_balance, c_since
INTO p_c_first, p_c_middle, p_c_last,
p_c_street_1, p_c_street_2, p_c_city, p_c_state, p_c_zip,
p_c_phone, p_c_credit, p_c_credit_lim,
p_c_discount, p_c_balance, p_c_since
FROM customer
WHERE c_w_id = p_c_w_id AND c_d_id = p_c_d_id AND c_id = p_c_id;
END IF;
p_c_balance := ( p_c_balance + p_h_amount );
IF p_c_credit = 'BC'
THEN
SELECT c_data INTO p_c_data
FROM customer
WHERE c_w_id = p_c_w_id AND c_d_id = p_c_d_id AND c_id = p_c_id;
-- The following statement in the TPC-C specification appendix is incorrect
-- copied setting of h_data from later on in the procedure to here as well
h_data := ( p_w_name || ' ' || p_d_name );
p_c_new_data := (TO_CHAR(p_c_id) || ' ' || TO_CHAR(p_c_d_id) || ' ' ||
TO_CHAR(p_c_w_id) || ' ' || TO_CHAR(p_d_id) || ' ' || TO_CHAR(p_w_id) || ' ' ||
TO_CHAR(p_h_amount,'9999.99') || TO_CHAR(timestamp) || h_data);
p_c_new_data := substr(CONCAT(p_c_new_data,p_c_data),1,500-(LENGTH(p_c_new_data)));
UPDATE customer
SET c_balance = p_c_balance, c_data = p_c_new_data
WHERE c_w_id = p_c_w_id AND c_d_id = p_c_d_id AND
c_id = p_c_id;
ELSE
UPDATE customer SET c_balance = p_c_balance
WHERE c_w_id = p_c_w_id AND c_d_id = p_c_d_id AND
c_id = p_c_id;
END IF;
--setting of h_data is here in the TPC-C appendix
h_data := ( p_w_name|| ' ' || p_d_name );
INSERT INTO history (h_c_d_id, h_c_w_id, h_c_id, h_d_id,
h_w_id, h_date, h_amount, h_data)
VALUES (p_c_d_id, p_c_w_id, p_c_id, p_d_id,
p_w_id, timestamp, p_h_amount, h_data);
COMMIT;
EXCEPTION
WHEN not_serializable OR deadlock OR snapshot_too_old
THEN
ROLLBACK;
END;
Stock Level Stored Procedure Script
CREATE OR REPLACE PROCEDURE "ORABM"."SLEV" (
st_w_id INTEGER,
st_d_id INTEGER,
threshold INTEGER )
IS
st_o_id NUMBER;
stock_count INTEGER;
not_serializable EXCEPTION;
PRAGMA EXCEPTION_INIT(not_serializable,-8177);
deadlock EXCEPTION;
PRAGMA EXCEPTION_INIT(deadlock,-60);
snapshot_too_old EXCEPTION;
PRAGMA EXCEPTION_INIT(snapshot_too_old,-1555);
BEGIN
SELECT d_next_o_id INTO st_o_id
- 49. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P49 © 2010 Bloombase Technologies
FROM district
WHERE d_w_id=st_w_id AND d_id=st_d_id;
SELECT COUNT(DISTINCT (s_i_id)) INTO stock_count
FROM order_line, stock
WHERE ol_w_id = st_w_id AND
ol_d_id = st_d_id AND (ol_o_id < st_o_id) AND
ol_o_id >= (st_o_id - 20) AND s_w_id = st_w_id AND
s_i_id = ol_i_id AND s_quantity < threshold;
COMMIT;
EXCEPTION
WHEN not_serializable OR deadlock OR snapshot_too_old
THEN
ROLLBACK;
END;
Delivery Stored Procedure Script
CREATE OR REPLACE PROCEDURE "ORABM"."DELIVERY" (
d_w_id INTEGER,
d_o_carrier_id INTEGER,
timestamp IN DATE )
IS
d_no_o_id INTEGER;
d_d_id INTEGER;
d_c_id NUMBER;
d_ol_total NUMBER(6,2);
current_ROWID UROWID;
--WHERE CURRENT OF CLAUSE IN SPECIFICATION GAVE VERY POOR PERFORMANCE
--USED ROWID AS GIVEN IN DOC CDOUG Tricks and Treats by Shahs Upadhye
CURSOR c_no IS
SELECT no_o_id,ROWID
FROM new_order
WHERE no_d_id = d_d_id AND no_w_id = d_w_id
ORDER BY no_o_id ASC;
not_serializable EXCEPTION;
PRAGMA EXCEPTION_INIT(not_serializable,-8177);
deadlock EXCEPTION;
PRAGMA EXCEPTION_INIT(deadlock,-60);
snapshot_too_old EXCEPTION;
PRAGMA EXCEPTION_INIT(snapshot_too_old,-1555);
BEGIN
FOR loop_counter IN 1 .. 10
LOOP
d_d_id := loop_counter;
open c_no;
FETCH c_no INTO d_no_o_id,current_ROWID;
EXIT WHEN c_no%NOTFOUND;
DELETE FROM new_order WHERE rowid = current_ROWID;
close c_no;
SELECT o_c_id INTO d_c_id FROM orders
WHERE o_id = d_no_o_id AND o_d_id = d_d_id AND
o_w_id = d_w_id;
UPDATE orders SET o_carrier_id = d_o_carrier_id
WHERE o_id = d_no_o_id AND o_d_id = d_d_id AND
o_w_id = d_w_id;
UPDATE order_line SET ol_delivery_d = timestamp
WHERE ol_o_id = d_no_o_id AND ol_d_id = d_d_id AND
ol_w_id = d_w_id;
SELECT SUM(ol_amount) INTO d_ol_total
FROM order_line
- 50. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P50 © 2010 Bloombase Technologies
WHERE ol_o_id = d_no_o_id AND ol_d_id = d_d_id
AND ol_w_id = d_w_id;
UPDATE customer SET c_balance = c_balance + d_ol_total
WHERE c_id = d_c_id AND c_d_id = d_d_id AND
c_w_id = d_w_id;
COMMIT;
DBMS_OUTPUT.PUT_LINE('D: ' || d_d_id || 'O: ' || d_no_o_id || 'time ' || timestamp);
END LOOP;
EXCEPTION
WHEN not_serializable OR deadlock OR snapshot_too_old
THEN
ROLLBACK;
END;
- 51. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P51 © 2010 Bloombase Technologies
Appendix C - Batch Process SQL Scripts
Find Orders By Amount And Customer Balance and
Discount Query
set time off echo on feedback on autotrace off
timing start
select * from
(select *
from ORDERS, ORDER_LINE, ITEM, CUSTOMER
where ORDER_LINE.OL_W_ID = ORDERS.O_W_ID
and ORDER_LINE.OL_O_ID = ORDERS.O_ID
and ORDER_LINE.OL_D_ID = ORDERS.O_D_ID
and ORDER_LINE.OL_I_ID = ITEM.I_ID
and ORDERS.O_W_ID = CUSTOMER.C_W_ID
and ORDERS.O_D_ID = CUSTOMER.C_D_ID
and ORDERS.O_C_ID = CUSTOMER.C_ID
and ORDER_LINE.OL_AMOUNT > 28
and ORDER_LINE.OL_AMOUNT < 39
and CUSTOMER.C_BALANCE > 0
and CUSTOMER.C_DISCOUNT > 0.1
and CUSTOMER.C_DISCOUNT < 0.2
order by CUSTOMER.C_LAST asc, CUSTOMER.C_FIRST asc)
where ROWNUM <= 10;
timing stop
- 52. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P52 © 2010 Bloombase Technologies
Find Orders By Amount Query
set time off echo on feedback on autotrace off
timing start
select * from
(select *
from ORDERS, ORDER_LINE, ITEM, CUSTOMER
where ORDER_LINE.OL_W_ID = ORDERS.O_W_ID
and ORDER_LINE.OL_O_ID = ORDERS.O_ID
and ORDER_LINE.OL_D_ID = ORDERS.O_D_ID
and ORDER_LINE.OL_I_ID = ITEM.I_ID
and ORDERS.O_W_ID = CUSTOMER.C_W_ID
and ORDERS.O_D_ID = CUSTOMER.C_D_ID
and ORDERS.O_C_ID = CUSTOMER.C_ID
and ORDER_LINE.OL_AMOUNT > 28
and ORDER_LINE.OL_AMOUNT < 39
order by CUSTOMER.C_LAST asc, CUSTOMER.C_FIRST asc)
where ROWNUM <= 10;
timing stop
Find Customer By Name Query
set time off echo on feedback on autotrace off
timing start
select * from
(select *
from CUSTOMER
where CUSTOMER.C_LAST like 'E%'
and CUSTOMER.C_FIRST like 'E%'
order by CUSTOMER.C_LAST asc, CUSTOMER.C_FIRST asc)
where ROWNUM <= 10;
timing stop
Find Items Under Stock Query
set time off echo on feedback on autotrace off
timing start
select * from
(select *
from STOCK, ITEM, WAREHOUSE
where STOCK.S_I_ID = ITEM.I_ID
and STOCK.S_W_ID = WAREHOUSE.W_ID
and S_QUANTITY < 10
order by WAREHOUSE.W_NAME asc)
where ROWNUM <= 10;
timing stop
- 53. Performance Benchmarks for Bloombase Spitfire StoreSafe Security Server for Microsoft Windows P53 © 2010 Bloombase Technologies
Update Order Line By Amount Query
set time off echo on feedback on autotrace off
timing start
update ORDER_LINE
set OL_DIST_INFO = OL_DIST_INFO
where OL_AMOUNT > 18
and OL_AMOUNT < 19
timing stop