Issue creating domain index
what lob error? This is a domain index on a clob. I don't have any special settings.
ERROR at line 1:
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-20000: Oracle Text error:
DRG-50857: oracle error in drvxtab.create_index_tables
ORA-22853: invalid LOB storage option specification
ORA-06512: at "CTXSYS.DRUE", line 160
ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 364
CREATE INDEX myind ON
my_mv(my_text)
INDEXTYPE IS ctxsys.context
PARAMETERS('MEMORY 500m FILTER INSOFilterpref STORAGE bfile_storage')
PARALLEL 4;
I remember this error when dealing with InterMedia. Specifically with Maximo.
I believe you need to set and define your global lexer.
Another key was to grant 'all privileges' to ctxsys within Oracle.
There is definitely a lot more to this than what I mentioned.
There are entire books on setting this up and tuning it.
Similar Messages
-
Creating DOMAIN INDEX on INTERVAL PARTITIONING
Hi !
I hava a problem, and I hope someone can help me!
Two questions are asked below:
1. Main question: HOW CAN I SOLVE THIS PROBLEM, ARE THERE OTHER WAYS DOING THE SAME JOB (MAYBE FASTER) ?
2. Additionally: Is there a way to accelerate the deletion process
Step 1: Creating the table* For Information how I create the table:
CREATE TABLE LOC_EXAMPLE
COLUMN1 NUMBER
COLUMN2 NUMBER
COLUMN3 NUMBER
COLUMN4 NUMBER
START_TIME TIMESTAMP
GEOLOC MDSYS.SDO_GEOMETRY,
TABLESPACE DB_DATA
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT
NOLOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING
PARTITION BY RANGE (START_TIME)
INTERVAL (NUMTODSINTERVAL(1,'DAY'))
PARTITION PART_LOC_EXAMPLE VALUES LESS THAN (TO_DATE('01-01-2008','dd-MM-yyyy'))
ALTER TABLE LOC_EXAMPLE
ADD CONSTRAINT PK_LOC_EXAMPLE PRIMARY KEY (COLUMN2,COLUMN4)
DELETE FROM USER_SDO_GEOM_METADATA VALUE WHERE TABLE_NAME = 'LOC_EXAMPLE'
INSERT INTO USER_SDO_GEOM_METADATA VALUES ('LOC_EXAMPLE','GEOLOC', MDSYS.SDO_DIM_ARRAY( MDSYS.SDO_DIM_ELEMENT('X',-180,180,0.001111949), MDSYS.SDO_DIM_ELEMENT('Y',-90,90,0.001111949) ), 8307)
STEP 2: I TRY TO CREATE SPATIAL INDEX (ITS A DOMAIN INDEX IF I'M NOT WRONG) ON PARTITIONED TABLE*
(PARTITIONED TABLE is an extension of range partitioning)
CREATE INDEX LOC_EXAMPLE_idx ON LOC_EXAMPLE'(GEOLOC)
INDEXTYPE IS MDSYS.SPATIAL_INDEX LOCAL;
THE SECOND STEP IS NOT POSSIBLE AS THE ORACLE DOCUMENTATION SAYS:
When using interval partitioning, consider the following restrictions:
-You can only specify one partitioning key column, and it must be of NUMBER or DATE type.
-Interval partitioning is not supported for index-organized tables.
-You cannot create a domain index on an interval-partitioned table.
1) I THINK IT IS IMPOSSIBLE FOR ME TO PASS ON INTERVAL PARTITIONING (AMOUNT OF DATA IS REALY BIG).
This partitioning is also used to delete datas from database once a mounth (scheduled on the basis of the partitions).
Is there a way to accelerate the deletion process?
2) I NEED A SPATIAL INDEX! NO WAY TO PASS ON IT!
HOW CAN I SOLVE THIS PROBLEM, ARE THERE OTHER WAYS DOING THE SAME JOB (MAYBE FASTER) ?
Why is it not possible to create a domain index on interval partitioning, any reason?
Will this be possible anytime?
I would be grateful to read any advise ...!
Thanking you in anticipation,
AliThere is a forum here at OTN for spatial. Please delete the contents of this post and ask your question there. Thanks.
-
Creating DOMAIN INDEX (SPATIAL) on INTERVAL PARTITIONING
Hi !
I hava a problem, and I hope someone can help me!
Two questions are asked below:
1. Main question: HOW CAN I SOLVE THIS PROBLEM, ARE THERE OTHER WAYS DOING THE SAME JOB (MAYBE FASTER) ?
2. Additionally: Is there a way to accelerate the deletion process
Step 1: Creating the table For Information how I create the table:
CREATE TABLE LOC_EXAMPLE
COLUMN1 NUMBER
COLUMN2 NUMBER
COLUMN3 NUMBER
COLUMN4 NUMBER
START_TIME TIMESTAMP
GEOLOC MDSYS.SDO_GEOMETRY,
TABLESPACE DB_DATA
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT
NOLOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING
PARTITION BY RANGE (START_TIME)
INTERVAL (NUMTODSINTERVAL(1,'DAY'))
PARTITION PART_LOC_EXAMPLE VALUES LESS THAN (TO_DATE('01-01-2008','dd-MM-yyyy'))
ALTER TABLE LOC_EXAMPLE
ADD CONSTRAINT PK_LOC_EXAMPLE PRIMARY KEY (COLUMN2,COLUMN4)
DELETE FROM USER_SDO_GEOM_METADATA VALUE WHERE TABLE_NAME = 'LOC_EXAMPLE'
INSERT INTO USER_SDO_GEOM_METADATA VALUES ('LOC_EXAMPLE','GEOLOC', MDSYS.SDO_DIM_ARRAY( MDSYS.SDO_DIM_ELEMENT('X',-180,180,0.001111949), MDSYS.SDO_DIM_ELEMENT('Y',-90,90,0.001111949) ), 8307)
STEP 2: I TRY TO CREATE SPATIAL INDEX (ITS A DOMAIN INDEX IF I'M NOT WRONG) ON PARTITIONED TABLE
(PARTITIONED TABLE is an extension of range partitioning)
CREATE INDEX LOC_EXAMPLE_idx ON LOC_EXAMPLE'(GEOLOC)
INDEXTYPE IS MDSYS.SPATIAL_INDEX LOCAL;
THE SECOND STEP IS NOT POSSIBLE AS THE ORACLE DOCUMENTATION SAYS:
When using interval partitioning, consider the following restrictions:
-You can only specify one partitioning key column, and it must be of NUMBER or DATE type.
-Interval partitioning is not supported for index-organized tables.
-You cannot create a domain index on an interval-partitioned table.
1) I THINK IT IS IMPOSSIBLE FOR ME TO PASS ON INTERVAL PARTITIONING (AMOUNT OF DATA IS REALY BIG).
This partitioning is also used to delete datas from database once a mounth (scheduled on the basis of the partitions).
Is there a way to accelerate the deletion process?
2) I NEED A SPATIAL INDEX! NO WAY TO PASS ON IT!
HOW CAN I SOLVE THIS PROBLEM, ARE THERE OTHER WAYS DOING THE SAME JOB (MAYBE FASTER) ?
Why is it not possible to create a domain index on interval partitioning, any reason?
Will this be possible anytime?
I would be grateful to read any advise ...!
Thanking you in anticipation,
AliIs it possible to just use a normal range-partitioned table?
CREATE TABLE LOC_EXAMPLE
START_TIME TIMESTAMP
GEOLOC MDSYS.SDO_GEOMETRY,
PARTITION BY RANGE (START_TIME)
PARTITION P1 VALUES LESS THAN (TO_DATE('01-01-2008','dd-MM-yyyy'))
alter table loc_example add partition p2 VALUES LESS THAN (TO_DATE('02-01-2008','dd-MM-yyyy'));
alter table loc_example drop partition p1;
I understand it is not as perfect as interval partitioning, since
you have to drop an old partition/add a new one either manually
or by some script. But you should be able to create a spatial domain index
on it. -
Issues Creating Spatial Index (Beginner)
I am getting the error below:
CREATE INDEX HHLT.BUILDING_SPATIAL_IDX
ERROR at line 1:
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-13203: failed to read USER_SDO_GEOM_METADATA view
ORA-13203: failed to read USER_SDO_GEOM_METADATA view
ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 10
When I select run the following, I get:
select * from mdsys.sdo_geom_metadata_table;
SDO_OWNER SDO_TABLE_NAME
SDO_COLUMN_NAME
SDO_DIMINFO(SDO_DIMNAME, SDO_LB, SDO_UB, SDO_TOLERANCE)
SDO_SRID
SYS BUILDING
BUILDING_POLYGON
SDO_DIM_ARRAY(SDO_DIM_ELEMENT('X', 0, 820, .005), SDO_DIM_ELEMENT('Y', 0, 580, .
005))
This is my script:
=========================
create user HHLT identified by HHLT;
grant all privileges to HHLT;
alter session set current_schema = HHLT;
CREATE TABLE HHLT.BUILDING
BUILDING_ID VARCHAR2(3),
BUILDING_NAME VARCHAR2(50),
VERTICES_COUNT INT,
BUILDING_POLYGON MDSYS.SDO_GEOMETRY,
CONSTRAINT BUILDING_PK PRIMARY KEY (BUILDING_ID)
INSERT INTO USER_SDO_GEOM_METADATA
VALUES ('BUILDING', 'BUILDING_POLYGON',
SDO_DIM_ARRAY( SDO_DIM_ELEMENT('X', 0, 820, 0.005),
SDO_DIM_ELEMENT('Y', 0, 580, 0.005)), NULL);
COMMIT;
CREATE INDEX ELKORDY.BUILDING_SPATIAL_IDX
ON ELKORDY.BUILDING(BUILDING_POLYGON)
INDEXTYPE IS MDSYS.SPATIAL_INDEX;
==================================
What am I missing? Working from Windows 7 install.Dear Unnamed Person,
It looks like cross-schema issues to me.
You do all your work in the HHLT schema and then, at the end of your script you do this:
CREATE INDEX ELKORDY.BUILDING_SPATIAL_IDX
ON ELKORDY.BUILDING(BUILDING_POLYGON)
INDEXTYPE IS MDSYS.SPATIAL_INDEX;Yet in your post you are:
CREATE INDEX HHLT.BUILDING_SPATIAL_IDXSorry, which is it?
Also, when you select from the metadata table it tells you that the BUILDING table is in SYS schema (SYS is the owner) but not in HHLT or ELKORDY!
I suspect that:
alter session set current_schema = HHLT;Didn't connect as you expected - you are still the SYS user - so that when you did this:
INSERT INTO USER_SDO_GEOM_METADATA
VALUES ('BUILDING', 'BUILDING_POLYGON',
SDO_DIM_ARRAY( SDO_DIM_ELEMENT('X', 0, 820, 0.005),
SDO_DIM_ELEMENT('Y', 0, 580, 0.005)), NULL);It associated the metadata with the SYS owner and not the HHLT owner hence the error when creating the index.
I would recommend you.
1. Connect as the SYS schema.
2. Remove the metadata object;
3. Connect in a new session to the HHLT schema as the HHLT user;
5. Create a new metadata entry in user_sdo_geom_metadata when in HHLT schema;
6. Create the index (drop any existing broken index first).
regards
SImon -
Installation issue:create domain failed in configuration steps
Hello,
I am trying to install Oracle 11g BIEE in windows XP 32 bit machine.
Till configurtaion steps no problem.After that it takes some 1 hr in create domain step and at the end shows failed.
I searched in this forum, in one its said create a separate folder for temp and assign that as path in the
environment variable TEMP AND TMP
I did that still its same.
If i click continue then also same
Almost everything which comes after Create doman is failed.
Pls help,what should i do?
ThanksHello,
just one thing installing RCU when need to give the schema name i didn't give sys and gave a user who is normal user with dba privillege because of which i got some errors like insufficient privilleges like while running something like this...
"grant execute dbms_ouput to dev_mds"
and some plsql object creation failed like "Pl/sql object failed SD Clean up procedure",at the time when u click create button.
But at the end it showed the schema being created.
So i didn't bother much about that.
I cannot give sys user as i don't have my own db in my machine.
Is this a problem because of which now i am facing problem in configuration steps????????
Thanks -
Ora-29886 feature not supported for domain indexes ??
Could anyone tell me the reason for the following error
ora-29886 feature not supported for domain indexes
What are domain indexes ..??
Thanks in advance ..It would have been better if you posted the statement that caused the error.
If you are using something like MERGE INTO, it is not supported with with Domain Indexes. Workaround is to complete your insert with individual insert statements or drop the Domain Index before insert and recreate the index after insert
Domain indexes are built for specific applications (specific domain) like Oracle text, Oracle Spatial etc. So depending on what application you are running, you might be using domain indexes. You create domain indexes as you create b-tree indexes, but the difference is that you have to define the INDEXTYPE.
You can find domain indexes in DBA_SECONDARY_OBJECTS. Find the index on the table you are using, then check the definition of the index and see what it looks like. -
Creating domain for BI Publisher issue
Hello,
Im trying to create domain for BI Publisher 11.1.1.3.0.
When configuring JDBC there are two component schemas: BIP Schema and OWSM MDS Schema. For database I have MS SQL Server configured with required RCU schemas.
The strange part: when testing the configuration, one fails - the BIP Schema. In the result log I see a very strange ""SELECT 1 FROM DUAL"" test which is obviously for oracle and not MS SQL.
For the 2nd schema, the one with successful test, there is a valid test query.
Please help me understand what am I doing wrong, why is there an Oracle test query for a MS SQL database and finally why on earth only one test fails because for both i have the same database type.
The version of fusion middleware is the one that came with BI installer 11g (11.1.1.3.0)
If wonder why am I doing this manually it is because the BI installer hangs at step 11 Creating Domain for about 100 minutes and then exits with timeout. great programming!
Please give me any hint, advise i can use to make BI Publisher run.
thank you809239 wrote:
Hi Experts,
OBIEE 10.1.3.4.1.
I am able to login bi publisher though Administrator user. But am not able to login remaing users.
I am getting below error.
Oracle BI Publisher Enterprise
Reporting Login: Login failed: Please contact administrator for your username/password.
Error Details
Error Codes:
Please help above issue it is very urgent.
ThaksHi,
Refer to this post to make sure you have all the settings implemented correctly: ( http://onlineappsdba.com/index.php/2009/01/15/oracle-bi-publisher-admin-console-xmlpserver-login-issue-administratoradministrator/ ).
Also, check the log files to see if you can get more detailed error messages.
-Amith. -
Rights issue when creating context index.
Hi,
We have two users, "app" and "appsys" . with most permissions granted through roles.
"app" has just enough permissions for the application to run. No update/delete/etc on most tables, just select and (on a select few) insert rights.
"appsys" is the "crew" user, with enough rights for basic day-to-day administration and most upgrade scripts that come with new code releases.
Other than that, it's a pretty much default EE 11.2.0.1.0.
Therefore, my first preference was to have 'appsys' create the desired text index for use by 'app':
CREATE INDEX app.table_text_ix ON app.table (xml)
INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS('SYNC (EVERY "TRUNC(SYSDATE + 1) + 03/24") TRANSACTIONAL');
Have also tried the bare:
CREATE INDEX app.table_text_ix ON app.table (xml)
INDEXTYPE IS CTXSYS.CONTEXT;
Both give the same result:
Error at Command Line:1 Column:19
Error report:
SQL Error: ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-20000: Oracle Text error:
DRG-50857: oracle error in drvxtab.create_index_tables
ORA-01031: insufficient privileges
ORA-06512: at "CTXSYS.DRUE", line 160
ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 366
29855. 00000 - "error occurred in the execution of ODCIINDEXCREATE routine"
*Cause: Failed to successfully execute the ODCIIndexCreate routine.
*Action: Check to see if the routine has been coded correctly.
When using user app (temporarily granting relevant privileges):
ERROR at line 1:
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-20000: Oracle Text error:
DRG-50857: oracle error in drvddl.IndexCreate
ORA-27486: insufficient privileges
ORA-06512: at "CTXSYS.DRUE", line 160
ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 366
I've tried granting just about anything but the kitchen sink to either user, both direct and indirect, but it still won't let me. Even SYS seems to be missing something.
Or rather, I seem to be missing something. But what? I've read a few prior threads about this issue and tried most suggestions: still no go.
Things I've GRANTed, as per documentation:
- CTXAPP role
- execute on ctxsys.ctx_ddl
- RESOURCE
- CONNECT
Other privileges it already had OR that I've tried granting:
EXECUTE ANY PROCEDURE
CREATE SESSION
UNLIMITED TABLESPACE
CREATE TABLE
CREATE ANY TABLE
ALTER ANY TABLE
DROP ANY TABLE
CREATE CLUSTER
CREATE ANY INDEX
ALTER ANY INDEX
DROP ANY INDEX
CREATE SEQUENCE
CREATE PROCEDURE
CREATE ANY PROCEDURE
CREATE ANY JOBB
CREATE TRIGGER
CREATE ANY TRIGGER
CREATE TYPE
CREATE OPERATOR
CREATE INDEXTYPE
Have also tried the grant select on sys.all_users to public; solution from a previous thread.
So... I'm lost... what am I missing?I don't know if what you have posted is pseudo-code or what you actually ran. Table is not a valid name for a table. It is best to post a copy and paste of an actual run from SQL*Plus, including line numbers and errors. I suggest that you start with a very simple example, avoiding reserve names like table and xml, just creating a simple text index on a table with a varchar2 column, as the same user that owns the table, checking everything along the way. Once you get that working, then you can add the other things one at a time. I have provided a script for you to run and post the results of below, followed by a run of the script on my system to show what you should get.
-- script for you to run from SQL*Plus and post a copy and paste of the results of:
-- version:
SELECT * FROM v$version
-- check that ctxsys user exists:
SELECT username
FROM all_users
WHERE username = 'CTXSYS'
-- check that Oracle Text is installed properly:
SELECT *
FROM dba_registry
WHERE comp_id = 'CONTEXT'
-- create test user:
CREATE USER test IDENTIFIED BY test
-- grant privileges:
GRANT CONNECT, RESOURCE, CTXAPP TO test
-- connect:
CONNECT test/test
-- create table:
CREATE TABLE test.test_tab
(test_col VARCHAR2 (9))
-- insert test data:
INSERT INTO test.test_tab (test_col)
VALUES ('test data')
-- check that test data was inserted:
SELECT * FROM test.test_tab
-- create index:
CREATE INDEX test.test_idx
ON test.test_tab (test_col)
INDEXTYPE IS CTXSYS.CONTEXT
-- check for errors:
SELECT * FROM ctx_user_index_errors
-- check that index and domain index tables were created:
COLUMN object_name FORMAT A30
SELECT object_name, object_type
FROM user_objects
WHERE object_name LIKE '%TEST%'
-- check that tokens were created:
SELECT token_text FROM test.dr$test_idx$i
-- test query:
SELECT * FROM test.test_tab
WHERE CONTAINS (test_col, 'test data') > 0
/-- example of the results you should get:
SCOTT@orcl_11gR2> -- version:
SCOTT@orcl_11gR2> SELECT * FROM v$version
2 /
BANNER
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 64-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
5 rows selected.
SCOTT@orcl_11gR2> -- check that ctxsys user exists:
SCOTT@orcl_11gR2> SELECT username
2 FROM all_users
3 WHERE username = 'CTXSYS'
4 /
USERNAME
CTXSYS
1 row selected.
SCOTT@orcl_11gR2> -- check that Oracle Text is installed properly:
SCOTT@orcl_11gR2> SELECT *
2 FROM dba_registry
3 WHERE comp_id = 'CONTEXT'
4 /
COMP_ID
COMP_NAME
VERSION STATUS
MODIFIED NAMESPACE
CONTROL SCHEMA
PROCEDURE STARTUP
PARENT_ID
OTHER_SCHEMAS
CONTEXT
Oracle Text
11.2.0.1.0 VALID
30-MAR-2010 11:06:15 SERVER
SYS CTXSYS
VALIDATE_CONTEXT
1 row selected.
SCOTT@orcl_11gR2> -- create test user:
SCOTT@orcl_11gR2> CREATE USER test IDENTIFIED BY test
2 /
User created.
SCOTT@orcl_11gR2> -- grant privileges:
SCOTT@orcl_11gR2> GRANT CONNECT, RESOURCE, CTXAPP TO test
2 /
Grant succeeded.
SCOTT@orcl_11gR2> -- connect:
SCOTT@orcl_11gR2> CONNECT test/test
Connected.
TEST@orcl_11gR2> -- create table:
TEST@orcl_11gR2> CREATE TABLE test.test_tab
2 (test_col VARCHAR2 (9))
3 /
Table created.
TEST@orcl_11gR2> -- insert test data:
TEST@orcl_11gR2> INSERT INTO test.test_tab (test_col)
2 VALUES ('test data')
3 /
1 row created.
TEST@orcl_11gR2> -- check that test data was inserted:
TEST@orcl_11gR2> SELECT * FROM test.test_tab
2 /
TEST_COL
test data
1 row selected.
TEST@orcl_11gR2> -- create index:
TEST@orcl_11gR2> CREATE INDEX test.test_idx
2 ON test.test_tab (test_col)
3 INDEXTYPE IS CTXSYS.CONTEXT
4 /
Index created.
TEST@orcl_11gR2> -- check for errors:
TEST@orcl_11gR2> SELECT * FROM ctx_user_index_errors
2 /
no rows selected
TEST@orcl_11gR2> -- check that index and domain index tables were created:
TEST@orcl_11gR2> COLUMN object_name FORMAT A30
TEST@orcl_11gR2> SELECT object_name, object_type
2 FROM user_objects
3 WHERE object_name LIKE '%TEST%'
4 /
OBJECT_NAME OBJECT_TYPE
DR$TEST_IDX$I TABLE
DR$TEST_IDX$K TABLE
DR$TEST_IDX$N TABLE
DR$TEST_IDX$R TABLE
DR$TEST_IDX$X INDEX
TEST_IDX INDEX
TEST_TAB TABLE
7 rows selected.
TEST@orcl_11gR2> -- check that tokens were created:
TEST@orcl_11gR2> SELECT token_text FROM test.dr$test_idx$i
2 /
TOKEN_TEXT
DATA
TEST
2 rows selected.
TEST@orcl_11gR2> -- test query:
TEST@orcl_11gR2> SELECT * FROM test.test_tab
2 WHERE CONTAINS (test_col, 'test data') > 0
3 /
TEST_COL
test data
1 row selected.
TEST@orcl_11gR2> -
How to create a domain index on NCLOB Column
hi all,
My database version is 10.2.0.1.
Any body know how to create a domain index on nclob column.
SQL> alter table test add (nclob1 nclob);
Table altered.
SQL> CREATE INDEX test_nclob ON test (nclob1) indextype is ctxsys.context
2 /
CREATE INDEX test_nclob ON test (nclob1) indextype is ctxsys.context
ERROR at line 1:
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-20000: Oracle Text error:
DRG-10509: invalid text column: NCLOB1
ORA-06512: at "CTXSYS.DRUE", line 160
ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 364Regards
SinghAny body know how to create a domain index on nclob columnNot possible per design/documentation:
The column that you specify must be one of the following types: CHAR, VARCHAR, VARCHAR2, BLOB, CLOB, BFILE, XMLType, or URIType.
« -
Domain index query takes 12 hours to execute
Hi Friends,
My query which uses domain index takes 12 hours to execute. Can you please help me tuning this query?
select /*+ NO_UNNEST ORDERED index_ffs(Term idx_recanon_term_ysm1) parallel_index(Term, idx_recanon_term_ysm1, 8) */ term.rowid
from cmpgn.recanon_search_terms,cmpgn.recanon_term_ysm Term
where cmpgn.recanon_search_terms.search_type=3 and
contains(Term.RAW_TERM_TEXT,cmpgn.recanon_search_terms.search_text) > 0 and
Term.pod_id=11
Thanks in advance.
Regards
BalaFirst your driving table is recanon_search_terms to get the required search terms, then use them to query Oracle Text. What you are trying to do is to get a subset of table term first and than run every individual row of table term against the search terms. This approach will take a very long time.
Not sure what you want to do, but it looks something I have been working on previously. As far I can see there is a table with controlled terms which are matched against other raw terms in a text document using Oracle Text. The issue is that you do a join in the contains clause without knowing the number of query expressions formed. It can be that 7 thousand individual queries run at once, than use indexes of the other predicates, do some sorting, etc. which would explain the long time needed. It will probably run out of memory causing all sorts of issues.
As a quick fix try first following statement without hints.
Tell us how many rows you get, the distinct counts for pod_id and search_type and how long it takes.
CREATE TABLE test_table AS
select term.pod_id pod_id, cmpgn.recanon_search_terms.search_type search_type, term_primary_key, ....
from cmpgn.recanon_search_terms,cmpgn.recanon_term_ysm Term
where contains(Term.RAW_TERM_TEXT,cmpgn.recanon_search_terms.search_text) > 0
Create index test_idx on test_table(pod_id, search_type) and use test_table instead to get the results, just by providing pod_id and search_type without the join in the contains clause.
SELECT ..
FROM test_table
WHERE pod_id = X
AND search_type = Y
Maybe this approach is sufficient for your purpose. For sure, it will give you instant results. In that case a materialized view instead of the table could work for maintenance reasons; I had some issues with materialized views for above scenario.
However check very carefully the results. I would have some doubts that all rows in search_text form a valid query expression for Oracle Text. If search_text has just single tokens or phrases wrapping curly brackets around will probably resolve the issue.
Think about to form one query expression through a function call instead of a table join inside the contains clause. Sometimes to run a set of individual queries are faster than one big query.
select term.rowid --, form_query_exrpession(3) query_exrpession
from cmpgn.recanon_term_ysm Term
where contains(Term.RAW_TERM_TEXT, form_query_exrpession(3)) > 0
The above function will form one valid Oracle Text query expression by using the table recanon_search_terms inside the function. This approach normally helps, at least in debugging and fine-tuning. Avoid using bind variables first in order to identify highly skewed distribution of search_type.
The other performance issue is the additional predicate of pod_id = X, here the suggestion from radord works very well. If you want to get your hands dirty have a look at user_datastore in the Oracle Text documentation, this will give you all the freedom you want. -
OBIEE 11.1.1.7.0 installation failed- Create domain error
we are facing this issue while installing OBIEE 11.1.1.1.7.0 on CentOS 7 64 BIT.
Configuataion Action Creating Domain has failed. Please check logs for details.
checking the logs under oraInventory, the logs says-
Oracle.as.provisioning.execption.ASProvWorkFlowException: Error Executing workflow.
The server was running fine but we been facing this issue for couple of days now.
I hope someone can help us with this issue.
thank,
parikProblem : Oracle Database 11g is not certified on the current OSWhat's your problem? Message seems to be clear. Windows 2008 Release 2 (important here is Release 2) requires 11gR2,not yet released for any Windows platform.
http://www.oracle.com/technology/tech/windows/index.html
Werner -
Specifying nologging while creating spatial indexes
Hello
Is it possible to specify NOLOGGING parameter while creating spatial indexes? When i am trying to specify this i get the following error message
SQL> create index BUSH_sx on BUSH(BUSHLOCATION) indextype is mdsys.spatial_index nologging;
create index BUSH_sx on BUSH(BUSHLOCATION) indextype is mdsys.spatial_index nologging
ERROR at line 1:
ORA-29850: invalid option for creation of domain indexes
Even i cannot alter the index with NOLOGGING option. Does Oracle allow this option in spatial indexes?
Regards
samI am looking into the logging issues.
SDO_COMMIT_INTERVAL determines the number records in a commit chunk during index BUILD, I noted this was not documented raised doc BUG 6414510 for this
and SDO_DML_BATCH_SIZE manual entries....
Specifies the number of index updates to be processed in each batch of updates after a commit operation. The default value is 1000. For example, if you insert 3500 rows into the spatial table and then perform a commit operation, the updates to the spatial index table are performed in four batches of insert operations (1000, 1000, 1000, and 500).
The sdo_dml_batch_size parameter can improve application performance, because Spatial can preallocate system resources to perform multiple index updates more efficiently than successive single index updates; however, to gain the performance benefit, you must not perform commit operations after each insert operation or at intervals less than or equal to the sdo_dml_batch_size value. You should not specify a value greater than 10000 (ten thousand), because the cost of the additional memory and other resources required will probably outweigh any marginal performance increase resulting from such a value.
====================================
I have found if you are doing repeated inserts/updates etc of 100,000 plus records despite the above, there is an advantage or appears to be! ;-) for setting it to 50,000.
it can be adjusted for an index that has been built
update SDO_INDEX_METADATA_TABLE
set SDO_DML_BATCH_SIZE = <Desired Value>
where sdo_index_owner = <INDEX/SCHEMA Owner>
and sdo_index_name = 'INDEX_NAME';
Clearly every system will be different experiment on test systems only....
Another area which can generally impact DML is undo_retention holding blocks when
you just don't care.
good settings when you dont wish to hold it
Look at SQL> show parameter undo
undo_management string AUTO
undo_retention integer 1 <<<< One second
undo_tablespace string MAKE Sure its big enough
with 10.2.0.x seems to be an issue with setting it to 0 but I've not had time to investigate
will do later. Also at 10.2.0.2 VERY large DML can sometimes hit ORA-600's the reasons are complex if you do hit them open a service request with support. There is a patch to cope with 95% of the issues. The other 5% I'm in the process of nailing and for those the current workaround is
update SDO_INDEX_METADATA_TABLE
set SDO_DML_BATCH_SIZE = 1
where sdo_index_owner = <INDEX/SCHEMA Owner>
and sdo_index_name = 'INDEX_NAME';
========================================
Dont do this without checking the 600 with support....
========================================
rather rambling....regarding the redo watch this space... -
Creating an Index HTML in Dreamweaver?
I am new to Dreamweaver and was trying to up
load my web to the server. It seems most servers require an INDEX HTML as the opening p
age. However, dreamweaver does not create this. I have afolder with
the home page files in it. How do I make these pages the index. Its a frame s
et pageNo I do understand completely. It is now corrected. Was simply not aware
that DW requires an HTML named index. Some others automatically create an
index page as your first page. I have been in contact with my host server
and have now corrected. Now, when I go to my temp URL I see exactly what I
wish to see. Part of the issue was the way DW handles Frames pages (still
not sure I get that part?); although I do now have it working. I simply
pointed my server to a new location IE the home page and did not create an
index page. My home page is a Frame set page with links to other pages.
Once my domain has been transferred I'll be glad to share the site with you.
Perhaps you can provide additional info to a novice DW user. I have used
other web sites and have other webs published etc.. Just feel that DW
offers lots more capabilities and am still learning that program.
Thanks for your assistance and look forward to continued conversation and
assistance!
Rick -
Problem Queries on tables with multiple domain indexes
I recently came across an issue in which the development team added a second context index to a table; that is, there was a context index on "title", and a second one was created on "summary".
Text queries on the new index do not always return results -- In one example, I get 77 rows querying the title, and 5 querying the summary (which, for the purposes of this explanation, always includes the title).
e.g. contains (title,'matha',1)>0 --> 77 rows
contains (summary,'martha',1)>0 -->5 rows
Inspection of the tokenlists shows that the correct pkeys are associated with the expected tokens, and the index is up to date.
So -- when I was asked to take a look at this, I vaguely recalled some issues with this functionality -- but I can't find any reference to this. The closest thing I could find was reports of problems when multiple contains clauses exist within the same query -- and that is not what is happening here.
What I would like to do is recommend moving to a single index with a multi-column datastore, and some reference to a bug # would make the process much faster.
Does anyone recall this issue?
DB Version 9.2.0.7
Sun Solaris 10e.g. contains (title,'matha',1)>0 --> 77 rows
contains (summary,'martha',1)>0 -->5 rowsYou have searched for 'matha' without an 'r' in your first example and 'martha' with an 'r' in your second example. I don't know if this was just a typo in your post or if that could be the problem. If it is not the problem, can you post a reproducible test case or at least a copy and paste of an actual run of the two queries using the two contains clauses and the results of the count(token_text) for the search value from the dr$...$i domain index tables. I recall problems with two contains clauses in one query using an 'or' condition, but not with just one contains query where two context indexes exist. -
Creating an index in InDesign CS3 - is there any way to limit where and for what it looks?
I'm creating an index for a 300-page book using InDesign CS3 on both a PC with Windows XP home and a MacPro with OS X Leopard (I take this book back and forth between these two computers). I have created this as a book (.indb) file so I can use the Index panel with the book option checked to include all of the book chapters.
There are two things I was wondering how to do, if they can be done at all.
1 - I want the index to look for entries in the main pages only, not in the master pages.
2 - I'd like to be able to do only attributed text. For example, I'd like the index to find only the word people when it is bold and italic, and not all of the other places it may occur. Can I do this with a style also, paragraph and/or character?
Thanks so much,
MarcyRead http://help.adobe.com/en_US/InDesign/6.0/WS8721440D-5F68-4fd6-8115-CA3BEDACF001a.html (the online Help on indexes) -- it will probably answer a few questions.
One I do know immediately is your question on "picking up" stuff from master pages and only with formatting. InDesign does not make an index for you -- you have to (oh! manual labor!) mark the words that should appear in the index yourself. So just don't mark them on master pages, or when not bold and/or italic. You might be wondering about that little button "Mark all instances", well, it does what it say, and in your case you do not want to mark all instances.
The Capitalization issue is, AFAICR, somewhere in the Help; and so is your singular/plural stuff. The latter one is easy solved: if you mark a word to be indexed, ID asks you in a friendly dialog how it should be included, and that defaults to the current selected phrase, but you are free to edit the text in that dialog. ID does not mark the word or phrase; it inserts an invisible marker inside the to-be-indexed word that contains all information you enter in the Add Index Entry dialog, and it uses that to determine what page number to add. (That invisible marker is visible with "Show Invisible Characters", and can be cut, pasted and deleted at will -- so to remove a water melon, find the marker, and delete it.)
Maybe you are looking for
-
Error while deploying objects from Control Center Manager
I got the error "The Network Adapter could not establish the connection" while deploying my objects (dimensions, cubes, mappings etc) from Control Center Manager Oracle 10g R2. Any idea to ressolve it..........
-
MDS Error: unable to create user DBs in /var/folders/...
What does this error mean? I have tons of them in my console. I have also repaired my permissions with Disk Utility, which found nothing in /var. Oct 21 15:29:02 macpro trustevaluationagent[25914]: MDS Error: unable to create user DBs in /var/folders
-
Activating Photoshop CS1?
I've had a Photoshop CS1 disc for quite a while. Just recently I tried to install it on my new laptop, but it wouldn't let me activate the program, saying the activation server was no longer available. I looked around on the Adobe website for solut
-
Singleton Class using a constructor not a getInstance method
Hi, I have a class with a couple of contructors, the class is instantiated many times in the application. Is there any way by which I can return a single instance of the class when the contructor is called ?. I dont want to declare a get instance met
-
Why does favicon not always download on PC ... whereas it does on Mac?
Why does favicon not always download on PC ... whereas it does on Mac?