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... »
Archive for August, 2009
At least one case where rebuilding indexes helps…
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/ »
Custom repeat_interval for dbms_scheduler
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'); »
Poor man’s parallel DML
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... »
How does connection re-direction occur in RAC? (Part 1)
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... »
Port checker
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))) ... »
Are you actually *using* Oracle partitioning?
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... »