The whole delete and recreate indexes is one of those issues like "Which type
of computer is better?". Each person you ask will have a different opinion.
Here is a great link on the issue:
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:6601312252730
On the index "corruption" issue. Are you using a DICTIONARY managed
tablespace and are you regularly analyzing and gathering statistics? As long
as statistics are gathered regularly then the database should have no problems
using the correct index.
If you do wish to rebuild an index instead of deleting them you could just
alter them to recreate
SELECT 'ALTER INDEX ' || INDEX_NAME || ' REBUILD;' FROM USER_INDEXES WHERE
INDEX_NAME LIKE 'AI%';
One idea for BMC to eliminate the issue is if they provide a flag to mark a
field in an index as case insensitive. They could make the field use a
function based index (i.e. CREATE INDEX xxxx ON T1 (UPPER(C8)); ) all queries
would then use the same function to access the data (i.e. SELECT C1 FROM T1
WHERE UPPER(C8) = UPPER('value to search for'); ). The data would still be
stored as the user entered it, but searches would be case insensitive.
Fred
-----Original Message-----
From: Action Request System discussion list(ARSList)
[mailto:[email protected]] On Behalf Of Jose Huerta
Sent: Wednesday, February 08, 2012 6:52 AM
To: [email protected]
Subject: Re: Case sensitive In ITSM problem management
** Indexes in remedy are mainly text indexes. Normally other applications index
keys (primary and foreign) and search fields. Since in Remedy keys are text
based, almost all indexes are text based.
With my script I duplicate only text based indexes (no date or number). But
this means almost all indexes.
I recommend to not delete case sensitive indexes by three reasons:
1.- Indexes are maintained by ARS. I always try to not touch the ARS managed
objects, since it is unsupported.
2.- I maintain an easy rollback by turning off the login trigger. It is
unsupported, so it can come the day when something goes wrong and it is because
of the case insensitive mode.
3.- Some apps (like SQL Developer, BI, or others) can connect to the database
and force a sort-where mode. If they force the case sensitive mode, all case
insensitive indexes will be useless.
Since we have a lot of indexes in Remedy and almost all are duplicated this
means an increase in database size.
Non indexed queries run slower. I think that this is because the system must
apply the conversion function to all registers at the table to perform the
comparison. And this is an extra load. The fact is that if a search cost 10
seconds, with case insensitive costs 12 seconds. But this applies only to
non-indexed. Our DBA scans non-indexes queries to look for a pattern and
propose new indexes.
Finally, the oracle index corruption statement: I don't know if index are
corrupted or not. But we experience a problem: After some months, Oracle don't
use case insensitive indexes and starts performing full text scans. Don't know
why. The recommendation from one DBA was to drop and create all indexes. He
talked about "index corruption". I don't know if indexes where corrupted or
not, but dropping and creating them again solved the problem. So our DBA has a
programmed maintenance task of dropping and creating all indexes each two
months.
Regards,
Jose M. Huerta
Project Manager
Movil: 661 665 088
Telf.: 971 75 03 24
Fax: 971 75 07 94
SM2 Baleares S.A.
C/Rita Levi
Edificio SM2 Parc Bit
07121 Palma de Mallorca
-----Original Message-----
From: Action Request System discussion list(ARSList)
[mailto:[email protected]] On Behalf Of Rod Harris
Sent: Wednesday, February 08, 2012 6:30 AM
To: [email protected]
Subject: Re: Case sensitive In ITSM problem management
** Hi Jose,
You are right in saying that Remedy defaults to case sensitive indexes for
Oracle and to avoid performance issues when case insensitive you must maintain
case insensitive indexes outside of Dev Studio/Remedy.
Likewise I agree that performance on indexed queries will be indistinguishable
between the two sensitive/insensitive if the index is used.
I'm interested in the reasons why you're quoting a large increase in database
size and decrease in performance on non indexed queries. Is it because in your
technique you are recommending duplicating indexes, one for each mode?
I'm also interested in your statement that the insensitive indexes become
corrupt over time.
For Remedy it only does inserts/deletes one database row at a time so it is
difficult to see any performance differences in these operations so it should
rarely be a consideration.
Rod Harris
-----Original Message-----
From: Action Request System discussion list(ARSList)
[mailto:[email protected]] On Behalf Of Jose Huerta
Sent: Wednesday, February 08, 2012 5:34 AM
To: [email protected]
Subject: Re: Case sensitive In ITSM problem management
** In this post I cover how to turn the oracle database to case insensitive
recreating all indexes.
http://theremedyforit.com/2011/12/case-insensitive-in-remedy/
The result in our case, in performance term is:
- Searches involving an indexed field -> Same performance as case sensitive.
- Searches involving a non indexed field -> Performance degraded 10 % - 40 %.
- Database size increase by 10 % - 20 %
- Insert performance degraded theoretically (we are sure that it is degraded,
but the response time of our Oracle server remains equal).
Regards,
Jose M. Huerta
Project Manager
Movil: 661 665 088
Telf.: 971 75 03 24
Fax: 971 75 07 94
Error! Filename not specified.
SM2 Baleares S.A.
C/Rita Levi
Edificio SM2 Parc Bit
07121 Palma de Mallorca
_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"