Archive for April, 2006

Cost Based Optimizing through time travel? – the value of meta-data for enabling Query Rewrite

Query Rewrite is an increasingly more important feature of the Oracle database. Linked intimately to Materialized Views, Query Rewrite is used by the CBO to make queries leverage intermediate results – often aggregate values or pre-joined records – available in Materialized Views when executing a query, thus preventing the need for and performance hit of re-retrieving those data. This article gives a very simple example of such a query rewrite operation and then continues to illustrate how providing some additional meta-data to the database – next to constraints and proper data-type definitions – in the form of Dimensions can make all the different to the Query Rewrite capabilities of the CBO.

Before we start on this exploration, we will have to ask you to assume that the EMP table has millions of records. Otherwise, you will probably not be duly impressed.

.... Read the rest of this entry »

DBMS_SCHEDULER as a new alternative for DBMS_JOB

Many people have a dislike of Dbms_job. Setting the right parameters
requires good knowledge of the input parameters and you probably need a
calculator too! In Oracle 10g, a new package might make things easier. .... Read the rest of this entry »

SpringOne conference

Op 15 en 16 juni aanstaande wordt de SpringOne conferentie gehouden in Antwerpen. Dit is de eerste Europese conferentie die specifiek op het Spring Framework betrekking heeft. Het evenement bestaat uit 40 sessies  (in vier parallele series). Deze sessies worden gepresenteerd door de core developers van Spring and andere beroemdheden. Verder zijn er 5 hoofdlezingen, die onder meer worden gegeven door ‘the father of Spring’ Rod Johnson en aspect-oriented programming pioneer Gregor Kiczales.

De onderwerpen van de sessies zien er bijzonder interessant en nuttig uit! Enkele voorbeelden:

  • Spring Web Flow and JSF
  • Integrating Spring with the Oracle Application Development framework by Duncan Mills
  • Spring.NET
  • Practical quick start with Acegi Security
  • AOP in the enterprise
  • Ajax, DWR and Spring
  • TopLink and Spring
  • Patterns in Service-oriented architectures
  • Testing with Spring
  • Spring web services
  • The power of Spring transactions

en nog veel meer… zie www.springone.com

SpringOne

Oracle and resilvering on AIX

Oracle and resilvering data on Mirrored Logical Volumes on AIX

How to set up your storage with regards to Mirror Write Consistency

Suppose you have or plan to implement an Oracle RAC database on AIX and you are using raw logical volumes and logical volume mirroring (OK, this may sound rather exotic, but there are people/businesses out there that actually have this). There are some things to take into consideration when you implement an architecture like this. For example: Mirror Write Consistency (MWC).

This article will explain how to set up your storage architecture taking into account the considerations and recommendations given by both Oracle and IBM about mirroring and MWC.

.... Read the rest of this entry »

JDeveloper, not just for development…

When you startup JDeveloper, default it gives you a "Tip of the day". I always enjoy reading these tips and I would like to share this one with you:

JDeveloper Tip

Aggregating in SQL across multiple levels and along several dimensions using ROLLUP and GROUPING SETS

In preparation for the Oracle 7Up Workshop as well as the Oracle Quiz – The Water is Still Burning (presentation and paper) with Alex for the ODTUG 2006 conference in June in Washington DC, I revisited some old pals of mine: the ROLLUP and the GROUPING SETS aggregation operators. Let’s take a brief look at what again they can be used for. Note that I intentionally shy away from the CUBE operator for now…

Select statements have been perfectly capable of retrieving aggregate values. Maximum and Average Salaries, Count of Job occurrences, Minimum Hiredate: all hunky dory. There are two serious limitations though: all aggregations in a query have to be along the same dimension and at the same level. You cannot query in a single the query the Maximum Salary for all Salesmen and the Average Salary per Department. Nor can you query the average salary per Employee as well as per Hire Year.

In this article we discuss ROLLUP (8i) and GROUPING SETS (9i) that make both operations possible.

.... Read the rest of this entry »

Hiding the Web.show_document URL

Last week I delivered a Forms module which invoked the Oracle Reports server by submitting report requests displaying the report on the screen using the Web.Show_document procedure. One thing that I was always been surprised about was the fact that when the document is displayed the complete URL is displayed in the address bar of the new window. This will make the Url of the reports server public to anybody running a report. How can you resolve this was my question.... Read the rest of this entry »

Acegi Security for Dummies

Probably this post is one of many Acegi Security Getting Started’s
to be found on the web. However we at Amis just recently went thru it. Here
is our step-by-step guide how to set up basic authentication and web request authorization.
We used a bit older version of the frameworks. However after going thru
the steps described below, you’ll end up with a basic understanding of this security system.

After
downloading the lab you’ll find an application that contains all layers
of the Spring framework: a basic Spring MVC tier and service tier that
uses Spring JDBC.
Acegi Security logo 

.... Read the rest of this entry »

Oracle 7Up to 10g – How time flies… Training for seasoned Oracle SQL and PL/SQL Developers

With the advent of the Oracle 7 RDBMS – 1993 – a new era dawned. Many of the key database functions and facilities, such as (Enforced) Integrity Constraints, Stored PL/SQL, Triggers, Snapshots, supplied packages and key SQL features were introduced in the Oracle 7 releases. Many Oracle developers also seem to be anchored in terms of knowledge and experience in the Oracle 7 database and the features and functions that release 7 had to offer. Even though we have moved on. And Oracle has moved on! It turns out that many very experienced developers are still developing in their Oracle 9i and 10g environments as though they live in the world of Oracle7. Every now and again they may accidentally make use of a more recent feature and of course they have read and heard about this and that new option, but Oracle7 is what’s at their fingertips.

By the, not too long ago, I found myself in that exact same position. Programming SQL and PL/SQL in a very backwards compatible way! Realizing that predicament, I embarked on a program to study and take in the Oracle 8i, 9i and more recently 10g stuff that somehow had escaped my notice. This then turned into a workshop for my colleagues at AMIS, initially three days, now four very full days. This Oracle 7Up Workshop allows experienced SQL and PL/SQL Developers to get acquainted with (most of) everything that was added in Oracle 8i, 9i and 10g that is of practical use. It is not a marketing-style new features overview, it is an serious discussion of important, useful, timesaving, performance enhancing functionality. We quickly realized how this training would not only benefit the staff at AMIS: we also offered it to our business partners. By now we have trained a substantial number of software developers, including Oracle DBAs, Oracle Application Developers and Java developers who wanted to better grasp the full potential of SQL in an Oracle database. Most of if not all attendant were able to apply knowledge and code samples from the training in their own jobs starting the day after the training.

Next week – on Thursday 20th april and Friday 21st April addressing SQL- and the week after – Thursday 28th and Friday 29th of April addressing PL/SQL- we have another edition of the Oracle 7Up Workshop (at our office in Nieuwegein, The Netherlands). And there are a few seats available for external participants. You can participate in one of the two blocks or attend both. Details on registration can be found here: AMIS Trainingen.

.... Read the rest of this entry »

Getting started with Spring-web-mvc and the Spring IDE-plugin – creating a simple web application

At the last KC (about Acegi Security) there was a discussion
about how easy it is making typo’s in Spring xml files. If you mistype
something your application won’t work and it can be difficult to track down
your error. Also typing all the class names is something you don’t want. A
former colleague told me about a plugin that does auto-completion and error
highlighting for your Spring configuration files (http://springide.org/)

Starting with Spring can be very boring, first you have to
learn all about acronyms like IOC, DI and AOP. Then there is a lot of talk
about POJO’s. What happened to the good old Hello World examples and then
explaining the details? Starting with a new framework is much nicer when you
have something working very quickly, the details are for later.

This article is a quick introduction to the web-part of the
Spring framework. You should have a Hello World application up and running in 15
minutes. And I’ll give a short introduction to the Spring-IDE plugin that makes
your live a lot easier..... Read the rest of this entry »