dave's blog


"The TPC-DS benchmark models the decision support system of a retail product supplier, including queries and data maintenance. Although the underlying business model of TPC-DS is a retail product supplier, the database schema, data population, queries, data maintenance model and implementation rules have been designed to be broadly representative of modern decision support systems."


Moving on up... http://dba.stackexchange.com/

Was cruising StackOverflow today looking for interesting Oracle questions and noticed a DBA specific Stack has been started - it lives at http://dba.stackexchange.com/.

It is database agnostic but I love the Stack setup and the helpful people it attracts. You can filter by Oracle and create an RSS feed on that filter if you aren't interested in going back to the site periodically to find topics you might be interested in.



Using Proxy Connections with SQL Developer or SQLPLUS

When trying to debug for another user sometimes it is helpful to be able to log in as that user. In the past magic was done by admins by storing the encrypted passwords, setting to a new temporary password, logging in, and then resetting the old encrypted password back. Luckily modern Oracle versions we have the concept of a Proxy user. This allows connecting as one user but masquerading as another user (once proper permissions have been granted of course). So far I have done this with SQL Developer and SQLPLUS, instructions are below for a test case.

Developer access to 10046 trace files...

Jeremy Schneider posted his code to check the udump directory for trace files and allow remote to access them. Great for developer access or if you are automating access with a tool. Released as GPL as well so you are free to modify the code (after getting familiar with the license that is).



"There was a problem creating a SQL tuning task. ORA-13780: SQL statement does not exist. ORA-06512"

I recently got this error while trying to run a SQL Tuning Task against a SQL statement that was available in AWR but not currently in the library cache.

I got around it by locating the SQL in OEM and using SQL Worksheet to execute it:

Functions in the WHERE clause...

Business logic. Sometimes it lives in the application, sometimes it lives in the database. I'll save the application/db argument for each individual case that I encounter. But if you do have significant business logic in your database, there will probably come a time when someone wants to incorporate some of that logic into a query they are writing. I am often asked to improve the speed of queries that have User Defined Functions (UDF) in the where clause. Sometimes I am successful at tuning them, sometimes a major structural or logic change is required to get good performance.

A complete sandbox installation for VirtualBox... Thanks to Developer Days!

Oracle is supplying some ready-to-run downloadable VMs including Operating Systems, OSes with Oracle already installed and ready-to-run RAC systems. I was hoping to leverage these to save some time for sandbox environments but from what I have seen so far they are only for the enterprise level Oracle VM product. I only have the horsepower to run Oracle VirtualBox which is their workstation level product. It seems they use different formats for each product and while it may be possible to convert VMs backs and forth, I'm just not up for it right now.

Diffing 2 Tables

If you have a need to diff tables in schemas and databases you might want to check out Diff Kit at http://www.diffkit.org/. It looks to be a little bit heavier duty than a standard MINUS/UNION query but it looks like it will talk to Oracle, MySQL, DB2 or any JDBC data source. From the website:

Did you know... Writing to the alert log?

Came upon this post during my travels. Jonathan Lewis reveals how to write a string to the Alert Log, Current Session Trace File, or Both. Also a few misc functions are included.
    writes to alert log

    writes to session's trace file

    writes to both

see also 
    dbms_system.ksddt - writes a date-time stamp
    dbms_system.ksdind(N) - indents text using ":' characters

Dynamically Branching To Pages and Passing Parameters in Application Express

I have a love/hate relationship with frameworks. Once you get proficient with a framework (like Application Express) you can get a lot done quickly. The framework can also stand in your way if you encounter a bug or maybe a gray area where the Framework wasn't fully fleshed out. Sometimes it takes some digging to find a workaround.

In this case I have a simple reporting application that I built in Application Express. I wanted the user to select a report, then continue to a Criteria screen, enter some date ranges and then hit 'Submit' to render the report.



Subscribe to RSS - dave's blog