ChemOffice.Com - CambridgeSoft
ChemOffice.Com - CambridgeSoft
ChemOffice.Com - CambridgeSoft
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
If the Cartridge does not raise an exception, then<br />
the CsCartridge.__E<br />
table will<br />
contain the rowid-s of those records containing<br />
invalid chemical data in their indexed fields.<br />
The rid field of this table contains the rowid of the<br />
indexed record, and the text field may contain<br />
additional information. A SQL statement, which<br />
joins this table with the indexed table lists the<br />
erroneous records.<br />
For example, if the following is true:<br />
• the user's schema is ‘cs_notebook’<br />
• the indexed table name is ‘eln_structures’<br />
• the name of the index used by the cartridge is<br />
'sx'<br />
• the 'key' field is a good way of identify a record,<br />
then:<br />
SELECT eln_structures.key from<br />
eln_structures,<br />
CsCartridge.CS_NOTEBOOK_SX_E<br />
where eln_structures.rowid =<br />
CsCartridge.CS_NOTEBOOK_SX_E .rid<br />
will retrieve the identifying fields of those records,<br />
which are not indexed because of an error.<br />
Performance<br />
The MoleculeContains operator is implemented<br />
both as an index scan, and as a function. The query<br />
optimizer decides which implementation to use.<br />
If the WHERE condition contains more selective<br />
elements then the MoleculeContains operator,<br />
like a reference to a unique key, then Oracle will<br />
retrieve the only matching record, and then apply<br />
the function implementation, which will perform<br />
an atom-by-atom matching. When the index scan is<br />
executed, the cartridge creates a complicated query<br />
accessing different tables. The performance of that<br />
query can be dramatically improved by occasionally<br />
executing an ANALYZE INDEX statement on the<br />
INDEX created by the cartridge:<br />
ANALYZE INDEX mx;<br />
Executing this statement will calculate statistics on<br />
the tables created and maintained by the cartridge,<br />
and these statistics are used by the Oracle query<br />
optimizer. This command should be executed<br />
periodically depending on the frequency of the<br />
update of the table.<br />
Troubleshooting<br />
If there is a serious problem with the cartridge, it is<br />
sometimes appropriate to rerun the<br />
CsCartridge.sql script, which will re-install the<br />
cartridge software. After running the script every<br />
indexed table the cartridge index should be<br />
dropped, and re-created again. In addition, update<br />
every record in the table by executing the following<br />
SQL statement:<br />
UPDATE tab SET fld=fld;<br />
COMMIT;<br />
This is necessary for only those tables where the<br />
index was created without the<br />
PARAMETERS('CsCartridge') clause.<br />
If the problem persists, then the problem should be<br />
reported to <strong>CambridgeSoft</strong>.<br />
Checking the presence of the<br />
cartridge<br />
If the following query returns no result, then the<br />
cartridge is not present in the Oracle database.<br />
SELECT username from all_users<br />
where username = 'CSCARTRIDGE'<br />
Checking the version of the<br />
cartridge<br />
This following statement yields a string containing<br />
<strong>ChemOffice</strong> Enterprise Workgroup & Databases 2005 CS Oracle Cartridge • 197<br />
Performance