Now you find my new wordpress Blog at ...
Read the rest of this entry ... (1 words left)
Read the rest of this entry ... (1 words left)
Hi,
Last week i decided to move this blog to a wordpress www.wordpress.com based blog.
Wordpress supports static pages, categories and has a lot of wunderfull themes and functionality.
I reorganize the page. My target is to concentrate the content on Basics of Tuning, CBO, ...;
The new site is under construction and will be available as soon i have the right structure
and when i am finished with manually migration of content
Greetings
Karl
PS.:Bloghi was a good platform - a lot of reliable functionality and a very good editor.
Hi,
this is not the first story about avoiding the use of RDBMS with all it's consequences :
http://www.thedailywtf.com/forums/64256/ShowPost.aspx
My question really is why Databases have a real bad reputation in the development community?
Greetings
Karl
I was inspired by Tom Kytes Blog Entries about NULLs in indexes. Only if all Columns of an index are set to NULL they are not part of the index;
Read the rest of this entry ... (546 words left)
Hi, Applications do not live as data islands. The more an application integrates data of other applications of a company the better is. Even we live in the Year 2006 the most common way to import data from other systems is the flat file. Via SQL*LOADER the data is loaded into an Import table which is a table presentation of the flat file. Then the Processing of data starts to apply the imported data to the applications tables.
Read the rest of this entry ... (875 words left)
Hi, unfortunately in the current project the customer has on development site databases on Windows Server but on production site databases on AIX based UNIX servers. Usually this is no problem when the Oracle versions are the same. Some Oracle Database objects are still OS dependent like the directory objects. Oracle Directory objects are an encapsulation of the real directories in the file system of the OS. Grants on Oracle directory objects controls the user access.
Read the rest of this entry ... (459 words left)
Hi,
do you think execution plans are only the compiled access plan on which
data will retrieved hopefully with low costs and good response time?
Execution plans can also have influence on the result set of your SQL!
Happended day ago in my current project. A milestone was put on a
separate database. After first tests we detected some lists were not
sorted. We support paged lists. On database side a window of rows sorted by a column will be retrieved - enriched with country coded texts.
We were surprised because we did not expect from the sorted window to get unsorted output. Here the SQL:
SELECT
Company.Legalname,
Company.*,
V1.VALUE AS Industry,
V2.VALUE AS Industrysubtype,
V3.VALUE AS Companystatetext,
V4.VALUE AS Bgsdescription,
V5.VALUE AS Legalform,
V6.VALUE AS Region,
V7.VALUE AS Countrytext
FROM Isis.Industrytext V1,
Isis.Industrysubtypetext V2,
Isis.Companystatetext V3,
Isis.Bgscodetext V4,
Isis.Legalformtext V5,
Isis.Regiontext V6,
Isis.Countrytext V7,
(SELECT /*+ FIRST_ROWS */
Iq.*,
FROM (SELECT Company.*
FROM (SELECT *
FROM Isis.Company
WHERE Company.Isis_Prefered = 1) Company
WHERE Company.Companystate <> 5
AND Upper(TRIM(Company.City)) LIKE Upper(TRIM('
ORDER BY Company.Legalname ASC) Iq
WHERE Rownum <= 15) Company
WHERE z_r_n >= 1
AND (V1.Key(+) = Company.Industrykey AND V1.Locale(+) = 'en-GB' AND
V2.Key(+) = Company.Industrysubtypekey AND V2.Locale(+) = 'en-GB' AND
V3.Key(+) = Company.Companystate AND V3.Locale(+) = 'en-GB' AND
V4.Key(+) = Company.Bgscode AND V4.Locale(+) = 'en-GB' AND
V5.Key(+) = Company.Legalformkey AND V5.Locale(+) = 'en-GB' AND
V6.Key(+) = Company.Regionkey AND V6.Locale(+) = 'en-GB' AND
V7.Key(+) = Company.Countryisocode AND V7.Locale(+) = 'en-GB')
Read the rest of this entry ... (970 words left)
Read the rest of this entry ... (1843 words left)
Read the rest of this entry ... (187 words left)
Read the rest of this entry ... (661 words left)
Hello,
As i heard about the availability of the Patchset 6 (9.2.0.7) of the Oracle 9.2 Database Server i was very surprised. I thought Patchset 5/9.2.0.6 would be the last Patchset and ... that all errors would have been finally patched ;-).
For Analysis i scanned the bugs HTML document, pasted and prepared the bugs info with an editor and transformed it with awk. Now it had the right format for excel and then what else did you expect - I stored all the data in an 9.2 database (Patchset 3/9.2.0.4 ;-));
With the data in the database you could answer a lot of questions. I reduced that to two questions:
SQL> SELECT COUNT(*) FROM Buglist;
COUNT(*)
----------
10256
SQL>
SQL> SELECT COUNT(*), bl.FixedInRelease FROM Buglist bl group by bl.FixedInRelease;
COUNT(*) FIXEDINRELEASE
---------- ----------------
1347 9.2.0.2
1053 9.2.0.3
1554 9.2.0.4
2547 9.2.0.5
2188 9.2.0.6
1567 9.2.0.7
6 rows selected
SQL>
The number of bugs was increasing and had its peak level at Patchset 9.2.0.5/9.2.0.6.
Read the rest of this entry ... (1257 words left)
hi,
I heard an amount about the new Features of the Oracle 10G server. A little bit set in my opinion is the Revolution of it's new Metering model concerning the performance monitoring.
Up to Oracle 9 there were decisively two (most famous ;-)) methods to get on to performance bottlenecks.
Statspack - goodies
Extended trace event 10046 - goodies
Extended trace event 10046 - not so good
Both
approaches do not support time lines to monitor - all metering data is
aggregated. So you see not the timing of the real peaks in statement
execution or some waiting gaps due to for example slow log switches.
Oracle 10G - the new approach
It
seems the fact that Oracle closed the gap between the global approach
and the session-oriented approach. The thousands of Html Pages of the
new database control makes blind to see which really essential step of
Oracle performance engineering innovative this is. Here the a subset of
the description of the new features (copied from metalink note
Note:276103.1).
New Time Model:
In Oracle10g the database introduces a different way of store
statistics and metrics regarding the time consumed by the different
sessions connected. Without it, it would not be possible for the database to clearly identify the root cause
of the problem in an acceptable timeframe. The following describes in
detail the characteristics. Active Session History (ASH): One of the
components of the AWR repository is the Active Session History (ASH) which collects every second samples of all the sessions that are in status "waiting" from v$sessions (inactive sessions are not captured).
This features allows to report a resource costing SQL query with it's wait events (look at V$ACTIVE_SESSION_HISTORY) and with it's time line and with it's effective execution plans and with it’s session context. The data is kept in the Oracle repository (DBA_HIST-Views)
All data is kept in tables and so easy to report. SQL's are identified by a unique SQL_ID and completely stored (CLOB) in the repository - to aggregate - to format - to export.
The
new Database Control allows a graphical view on this data. And what
looks so colorful and easy to maintain is the new oracle approach - it
makes you even more independent from expensive performance tools of
other non oracle providers!
Good job Oracle - Please continue!
Carl
UPDATE : found a document which goes into deep of Oracle 10G new tuning model.
Automatic Performance Diagnosis with Oracle Database 10g Release 2
Carl
Carl
Do you like the full featured supplied PL/SQL Package DBMS_OUTPUT? It seems to be the package which ranks in top position with it's limitations ;-)
At
the current project I developed a source code generator generating a
table api with special demand for an OR-Mapper. For some easy usage the
code templates are printed to output, stored as CLOB. After 255 digits
line buffer exceeds i made this experience :
SET SERVEROUTPUT ON
DECLARE Read the rest of this entry ... (549 words left)
l_Str VARCHAR2(1024) := '01234567890123456789012345678901234567890123456789';
l_Xl_Str VARCHAR2(1024);
BEGIN
-- constructing STRING WITH 255 chars
l_Xl_Str := l_Str || Chr(10) || l_Str || Chr(10) || l_Str || Chr(10) ||
l_Str || Chr(10) || l_Str || Chr(10);
Dbms_Output.Put_Line('LENGTH : ' || Length(l_Xl_Str));
Dbms_Output.Put_Line(l_Xl_Str);
Read the rest of this entry ... (79 words left)