Code Monkey home page Code Monkey logo

oracle / rwloadsim Goto Github PK

View Code? Open in Web Editor NEW
46.0 6.0 19.0 4.27 MB

RWP*Load Simulator - your tool for scripting, simulation and much more. Like having a bit of bash and SQL, a nip of C or Java, a dash of awk, a grain of sed plus drops of secret sauce in one single tool. See https://blogs.oracle.com/database/rwploadsim-oracle-db-performance-simluator for the announcement on the Oracle database blog.

Home Page: https://oracle.github.io/rwloadsim/

License: Universal Permissive License v1.0

Shell 7.40% C 77.41% Lex 3.40% Yacc 8.23% Awk 0.24% PLSQL 0.19% Vim Script 0.52% Batchfile 2.62%
sql bash-script gnuplot-graphs workload simulation plsql database performance performance-testing benchmark-framework

rwloadsim's Introduction

RWP*Load Simulator

This is the RWP*Load Simulator - a tool that can be used for several purposes:

  • Simulate a workload using an Oracle database
  • Write shell scripts that are closely integrated with Oracle SQL

Please see the docs directory for Users' Guide; the reference manual is available after installation using rwlman and from https://oracle.github.io/rwloadsim/refman/

News

Release 3.1 includes several new features with primary focus on using rwloadsim as a scripting tool. For details, see CHANGELOG.md.

Release 3.0 included these major new features:

  • SQL declaration no longer needs explicit bind and/or define, as bind variables and select list elements can be implicitly matched to declared variables.
  • The separate declaration and subsequent execution of SQL is no longer needed.
  • Formatting of output using printf.
  • You can generate a single executable with an included rwl script.
  • New syntax for file open for read, append or pipe (added in 3.0.3)
  • Release 3.0.6 will be the last 3.0 release, in 3.1 the new file open syntax will be enforced

In addition, there are several minor updates, a number of bug fixes and updates to the standard oltp workload as shown in CHANGELOG.md.

Note that there was an update to the repository in 3.0.4 and that you must apply the rwl304.sql script if you are upgrading from version 3.0.3 or earlier. There is also a repository upgrade in 3.0.6 and you must apply the rwl306.sql script before using release 3.0.6 or newer. See docs/INSTALL.md for details.

Branches

The branches that should be used by ordinary users are named after the release, e.g. 3.1.0. The master branch receives occasional pull request from the various development branches. You should normally not clone or checkout these unless you are developing the rwloadsim code or always want the latest. If you use a development or master branch, you must do compilation yourself; no binaries are released.

At present, branch 3.1.0 is the release branch.

Please see CHANGELOG.md for details.

Using a binary distribution

Using a binary distribution is simple as all it requires is an Oracle Client environment and access to one (or more) databases. Please see docs/INSTALL.md for details.

Getting started

The suggested documentation for getting started is the first two chapters of the users manual available at docs/index.md. To get quickly started with some of the rwloadsim basics, a good starting point is at docs/WORKING.md. The demo directory contains all files mentioned there.

Building rwloadsim from sources

Please see BUILDING.md

Documentation

The users guide is found in docs and is distributed into a number of .md files. You should start with docs/index.md which has a very brief introduction and links to all files of the users guide.

The reference guide is created as manual pages that are found in man/man1rwl. The shell script rwlman, that will be copied to the bin directory when you run make is the documented way to read these manual pages. Simply start by typing rwlman.

Included workload

Both the binary and source distributions include a complete oltp workload.
Please see docs/OLTP.md for details.

Next steps in evolving rwloadsim

What would you like to see in upcoming releases of rwloadsim? Some ideas that I have myself are:

  • Add a "date" data type that can be used similarly to dates in SQL and PL/SQL
  • Add "raw" and "blob" data types together with support for binary files
  • Add input of hexadecimal (and octal) plus binary operators such as <<, >>, &, |

Please contact me with suggestions and ideas.

Contributing

This project welcomes contributions from the community. Before submitting a pull request, please review our contribution guide

Security

Please consult the security guide for our responsible security vulnerability disclosure process

License

Copyright (c) 2022, 2023 Oracle and/or its affiliates.

Released under the Universal Permissive License v1.0 as shown at https://oss.oracle.com/licenses/upl/.

rwloadsim's People

Contributors

0o001 avatar bengsig avatar djelibeybi avatar gamecube7561 avatar spavlusieva avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

rwloadsim's Issues

Feature request: add flash command

Hi,
I'd like to request a new command to be added "flash" that would allow to flash pending arrays data without committing a transaction.
We'd like to emulate insert and read inserted data in the same transaction and have a single commit at the end.
Currently there is a need to commit transaction after insert operation to force flushing pending arrays data from the client.

ORA-24430 in embedded sql after immediate dynamic sql

If you have immediate sql with sql text from a concatenation (sql execute "select ....") followed by embedded sql, the latter may get an ORA-24430 error. This issue was fixed on 1-jun-2022 and will be included in the upcoming 3.0.2 release. A workaround is to replace the failing embedded sql by immediate sql, i.e. to wrap it with sql execute and end.

Compile can fail in 19.9 server install

If you compile in a 19.9 full server ORACLE_HOME that is the result of an upgrade from a previous relese, you may get this error:

# error "For compile in 19, client version 19.9 or later is needed"

The problem is in $ORACLE_HOME/rdbms/public/ociver.h that incorrectly may say it is 19.3. The original reason
for the check against 19.9 is that certain macros in oci.h are incorrect. I have now replaced that check by a different approach, namely to re-define the incorrect macros. The only change is rwl.h and the change has been applied to both master and 2.3.1 branches. You should therefore simply do a pull or clone again or just pick rwl.h and compile.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.