Archive for August, 2009

Can’t add a service already registered with the listener

Thursday, August 27th, 2009

This morning, while testing on a two node 10.2.0.3 EE SLES 10 cluster, I found that using srvctl to remove a service from the clusterware does not necessarily stop the service and de-register it from the listener. I’m not sure if this is officially documented, but it will be now…at least in my... »

Posted in Oracle, RAC | No Comments »

At least one case where rebuilding indexes helps…

Tuesday, August 25th, 2009

We found that after deleting 250 million “lower” rows from a table with a monotonically increasing sequence, our MIN range scans were incredibly slow. Richard Foote describes this much more clearly than I can this morning, so all this post will be is a link to his blog about it. Enjoy… http://richardfoote.wordpress.com/2008/07/01/deleted-index-entries-part-v-trouble/ »

Posted in Oracle, Performance | No Comments »

Custom repeat_interval for dbms_scheduler

Monday, August 24th, 2009

Nothing fancy today, just a simple test case regarding the subject line create or replace function mytime return date as begin return sysdate + 5 / 1440; end; / create table foo (c date); create or replace procedure test_interval as begin insert into foo values(sysdate); commit; end; / exec dbms_scheduler.create_job('myjob','plsql_block',job_action=>'begin test_interval; end;',repeat_interval => 'mytime'); exec dbms_scheduler.enable('myjob'); »

Posted in Oracle | No Comments »

Poor man’s parallel DML

Sunday, August 23rd, 2009

We were recently required to get rid of 250 million rows in a partitioned audit table. While the table is partitioned, we have global indexes that would be rendered unusable after dropping or truncating a partition. The UPDATE GLOBAL INDEXES clauses I have never found to be immensely useful, as all it... »

Posted in Oracle, Performance, Python | No Comments »

How does connection re-direction occur in RAC? (Part 1)

Monday, August 17th, 2009

I have always been curious as to how a connection request is redirected in a RAC. In other words, let’s assume we have a two node cluster with a given service that only runs on one of the nodes. In this case the reqman service runs only on linux1. In our URL, we only... »

Posted in Oracle, RAC | No Comments »

Port checker

Monday, August 17th, 2009

This was useful when we testing a migration between database servers. import socket import sys for i in range(1,5): try: HOST = "foo" + str(i) PORT = 2484 print HOST + " " + str(PORT) sock = socket.socket() sock.connect((HOST, int(PORT))) ... »

Posted in Linux, Python | No Comments »

Are you actually *using* Oracle partitioning?

Monday, August 3rd, 2009

Partitioning is sometimes sold as the panacea to all performance problems. Anyone who has added local indexes on a column other than the one on which the table was partitioned quickly finds out this isn’t always the case. Keep in mind that partitioning is not only about improving performance, but also increasing availability and... »

Posted in Oracle, Performance | No Comments »

Switch to our mobile site