This may be a little off topic, but I was on a team to help resolve a performance issue with Moodle using Oracle for the backend database. The following is part of the solution that was found.
Changing the CLOB datatype to VARCHAR2(4000) in the m_config database table provided the most help. The following links were the resources I found to point this out.
https://tracker.moodle.org/browse/MDL-16955
http://moodle.org/mod/forum/discuss.php?d=87509#p389413
Using SQLDeveloper, I performed the following actions to the data after stopping the Apache Web server.
create table m_config_original as (select * from m_config); drop table m_config; CREATE TABLE M_CONFIG ( ID NUMBER(10,0) NOT NULL ENABLE, NAME VARCHAR2(255 BYTE) NOT NULL ENABLE, VALUE VARCHAR2(4000 BYTE) NOT NULL ENABLE ); insert into m_config (select * from m_config_original);
Restart the Apache web server
With this single change, the pages displayed in 2/3 less time based on
the original display time.  This was a significant amount – 15 seconds
down to 5 seconds.
Additional Notes:
Before applying the changes to the m_config table, I needed to determine
if the oci8 driver was the main problem.  I was able to verify that the
OCI8 driver was not the issue by running the following test page on the
moodle server.  Here is the PHP code:
<?php
# Sample code for make connection with Oracle Database and send simple DDL,DML and query commands from oci8 extension.
# Database instance: fuju
# host name :  fuju.exzilla.net
# lintener port number : 1521
# user : scott
# Password : tiger
# You can connect to database server from this program without setting tnsnames.ora.
# fuju at exizilla dot net, Jan10,2002
# Modified from original of " http://www.php.net/manual/en/function.ocilogon.php "
print "<HTML><PRE>";
# Sample connection string, use your own values before testing
# $db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = fuju.exzilla.net)(PORT = 1521)))(CONNECT_DATA=(SID=fuju)))";
$c1 = ocilogon("username","password",$db);
$c2 = ocilogon("username","password",$db);
function create_table($conn)
{ $stmt = ociparse($conn,"create table hellotable (hellocol varchar2(64))");
ociexecute($stmt);
echo $conn." created hellotable\n\n";
}
function drop_table($conn)
{ $stmt = ociparse($conn,"drop table hellotable");
ociexecute($stmt);
echo $conn." dropped hellotable\n\n";
}
function insert_data($conn)
{ $stmt = ociparse($conn,"insert into hellotable
values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
ociexecute($stmt,OCI_DEFAULT);
echo $conn." inserted hellotable\n\n";
}
function delete_data($conn)
{ $stmt = ociparse($conn,"delete from hellotable");
ociexecute($stmt,OCI_DEFAULT);
echo $conn." deleted hellotable\n\n";
}
function commit($conn)
{ ocicommit($conn);
echo $conn." committed\n\n";
}
function rollback($conn)
{ ocirollback($conn);
echo $conn." rollback\n\n";
}
function select_data($conn)
{ $stmt = ociparse($conn,"select * from hellotable");
ociexecute($stmt,OCI_DEFAULT);
echo $conn."----selecting\n\n";
while (ocifetch($stmt))
echo $conn." <".ociresult($stmt,"TEST").">\n\n";
echo $conn."----done\n\n";
}
# start Main program
echo "<h3> Start :: Simple oci8 extension functions test </h3><p><hr><p>";
create_table($c1);
insert_data($c1);   // Insert a row using c1
insert_data($c2);   // Insert a row using c2
select_data($c1);   // Results of both inserts are returned
select_data($c2);
rollback($c1);      // Rollback using c1
select_data($c1);   // Both inserts have been rolled back
select_data($c2);
insert_data($c2);   // Insert a row using c2
commit($c2);        // commit using c2
select_data($c1);   // result of c2 insert is returned
delete_data($c1);   // delete all rows in table using c1
select_data($c1);   // no rows returned
select_data($c2);   // no rows returned
commit($c1);        // commit using c1
select_data($c1);   // no rows returned
select_data($c2);   // no rows returned
drop_table($c1);
print "</PRE></HTML>";
echo "<hr><h3> End :: Simple oci8 extension functions test </h3>";
?>
This test confirmed that the OCI8 driver was functioning correctly and
was not the problem.
With this change, performance improved by reducing the time to display pages by 67%!
