14.01.2015 Views

ChemOffice.Com - CambridgeSoft

ChemOffice.Com - CambridgeSoft

ChemOffice.Com - CambridgeSoft

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!