This set of labs guides the user through additional use of Daycart functionality with an emphasis on understanding performance and tuning issues for queries.
The first operation will be to load the demo tables into your local Oracle instance and create Daycart indexes. For this lab we use the NCI95 public dataset, which contains 126k structures and approximately 25k results from HIV testing in two tables. The files nci.sql and hiv.sql are available on the ftp server "mugserver".
Go ahead and execute the SQL scripts to create and populate the NCI and NCI_HIV tables.
The table descriptions are as follows:
CREATE TABLE NCI ( SMI VARCHAR2(428) NOT NULL, NSC NUMBER(6) NOT NULL, CAS_RN VARCHAR2(11) NOT NULL, CL_1 NUMBER(5), CL_2 NUMBER(3), CL_3 NUMBER(5,4)); NSC: NCI structure number. Primary key. SMI: Unique canonical SMILES string. CL_1: Cluster number: all structures in the same cluster have the same cluster number. CL_2: Size of cluster: number of members in this cluster. CL_3: Unexplained variance: variance of the cluster unexplained by this member. CAS_RN: CAS Registry number. CREATE TABLE NCI_HIV ( NSC NUMBER(6) NOT NULL HIV VARCHAR2(2) NOT NULL); NSC: NCI structure number. Primary key. HIV: HIV response (CI: confirmed inactive CM: confirmed moderately active CA: confirmed active)
Since the NCI table doesn't include an FP column you'll need to generate it.
/ramdisk is a RAM-based filesystem. This is a
quick-and-dirty way to demonstrate the effect on performance of minimizing
I/O bottlenecks in the Oracle database.
The caveat is that data in the /ramdisk filesystem does not persist after
a reboot or machine crash, so for these experiments it's best to do the
work and then remove the index and tablespace immediately thereafter to avoid
the possiblity of corrupting the database.
A simple sql script with contains(), tanimoto(), matches() etc. searches is reasonable. Using the count(1) function as the returned value eliminates screen I/O as a variable in the timings.