Performance problem of creating index with LOB/CLOB content
Hello
I have a problem with indexing performance with a table containing columns of text
also a clob and a lob column.
Indexing with 20,000 lines takes about 1 hour on 11.2.0.4 with the last batch of patches 12 on
win x 64.
on a 11.2.0.1, the process is done in a few minutes.
So what can I do to find out where is the problem?
I use filter auto and basic lexer.
Operating system is W 2008 R2 SP and latest patches. OS lang is English.
DB is installed with AL32UTF8 and German and English language packs.
also watched and ctx_user_index_errors and pending and there is no error or waiting in lines.
After the index is created, everything works fine. during the creation of index no other user is connected to the database.
so why 11.2.0.1 is so much faster than 11.2.0.4?
some advice for me?
Thank you!
Hello
so I solved all my problems.
So I made two changes:
1. I declared the variable theNotiz2 for recording the output for the raw text of the column NOTIZ (is a clob), add the output to the Out-Clob parameter
2. I used the same variable for the--> this blob field caused an error with line with lob is not locked... so I said a second variable for this and that solved the problem.
normally, I think it should work with 1 variable... but is an acceptable workaround.
Performance now is OK because the procedure, I can set on which the documents I want to do a search or not.
Second thing, but has nothing to do with Oracle: my frontend application makes a ZIP for each insert in a column lob and if the ctxhx does not index the content, the MDC, and before calling the conversion of plain text, so I have to make a decompression of the blob...
so for now, all problems solved. Thank you for your support.
Tags: Database
Similar Questions
-
Create indexes with NOLOGGING option
Hello
Can you please provide solution on the following scenario?
If I create indexes with NOLOGGING Tablespace that is created with the LOGGING option, option can you please let me know what are the effects on the database?
If I create indexes using NOLOGGING on Tables that are created with the LOGGING option, can you please let me know that it is to increase performance during the creation / rebuild indexes?
Thank you
Published by: user12088323 on December 28, 2010 12:45
Published by: user12088323 on December 28, 2010 12:47user12088323 wrote:
The database is in log mode archive. I would like to create indexes with NOLOGGING option on the tables to increase performance. The tables are created with the LOGGING option. Can you please let me know it's to create a bad effect on the database? If so, please explain.Thank you
Published by: user12088323 on December 28, 2010 16:37
NOLOGGING will cease to produce data AGAIN... for which you want to execute the instructions.
Nothing wrong... it is created by ORACLE ;-)read this and cross with your process. You can do it with nologging option.
http://www.Oracle.com/technetwork/database/RDB/0804-NOLOGGING-option-130004.PDF
hope you understood
-
Cannot create Index with an If statement
Hello:
I would run the code to create an index on a given table, but only if the index does not exist. Here's what I have so far...
DECLARE
c_Count NUMBER;
BEGIN
SELECT COUNT (*) FROM c_Count
OF DBA_INDEXES
WHERE TABLE_NAME = 'SOME_TABLE_NAME '.
AND INDEX_NAME = "SOME_INDEX_NAME."
AND OWNER = 'SOME_OWNER. '
AND TABLE_OWNER = "SOME_OWNER";
IF c_Count = 0 THEN
CREATE INDEXES SOME_OWNER. SOME_INDEX ON SOME_OWNER. UNE_TABLE (SOME_KEY);
END IF;
END;
The SELECT INTO statement works well alone.
Boredom comes with the IF statement. I get the following error message:
PLS-00103: encountered the symbol "CREATE" when waiting for one of the following values: begin case declare exit for goto if loop...
This is the typical error saying that the syntax is incorrect, and that the parser was expecting something else after the IF-THEN statement. Any ideas on what may be a problem? Thanks in advance.
JerryHello
You must use EXECUTE IMMEDIATE to the DDL in PL/SQL.
DECLARE c_Count NUMBER; BEGIN SELECT COUNT(*) INTO c_Count FROM DBA_INDEXES WHERE TABLE_NAME = 'SOME_TABLE_NAME' AND INDEX_NAME = 'SOME_INDEX_NAME' AND OWNER = 'SOME_OWNER' AND TABLE_OWNER = 'SOME_OWNER'; IF c_Count = 0 THEN EXECUTE IMMEDIATE 'CREATE INDEX SOME_OWNER.SOME_INDEX ON SOME_OWNER.SOME_TABLE(SOME_KEY)'; END IF; END;
Kind regards
-
On Oracle 11.2, I observed below
How to find the true picture of this index column?create index ind_jperson_1 on d_jperson(convict_ref); create index ind_jperson_2 on d_jperson(driver_ref DESC); select index_name,table_name,column_name,column_position,descend from USER_IND_COLUMNS where table_name='D_JPERSON' INDEX_NAME TABLE_NAME COLUMN_NAME COLUMN_POSITION DESCEND IND_JPERSON_2 D_JPERSON SYS_NC00023$ 1 DESC IND_JPERSON_1 D_JPERSON CONVICT_REF 1 ASC
Hello
DBA_IND_EXPRESSIONS can help you find the real column name.
And it is an expected behavior in Oracle. Have you noticed anything else pre 11.
Concerning
Anurag -
Failed to create index with imdp
I am trying to import an image with the following command:
Impdp user/pass DIRECTORY = SCHEMAS DUMPFILE = fump.dmp = originally_schema REMAP_SCHEMA = originally_schema:new_schema TABLE_EXISTS_ACTION = DATA_PUMP_DIR replace old = REMAP_TABLESPACE: new
I don't know how the dump has been exported.
Source DB version: 11.2.0.4
Destination DB version: 11.2.0.1
Everything works fine until it comes to the creation of index:
Processing object type SCHEMA_EXPORT/TABLE/INDEX/DOMAIN_INDEX/INDEX
ORA-39083: Type what INDEX failed to create object error:
ORA-06550: line 2, column 1:
PLS-00306: wrong number or types of arguments in the call to "CREATE_INDEX.
ORA-06550: line 2, column 1:
PL/SQL: Statement ignored
Because sql is:
BEGIN
ctxsys.driimp.create_index('I_SRC_NAME','SOURCES',User,'ID','2','NAME','1','1020','32','8130','33',, NULL, NULL, 0,'Y','ON COMMIT','12582912',, NULL, null);
ctxsys.driimp.set_object('DATASTORE','DIRECT_DATASTORE',0);
ctxsys.driimp.set_object ('TYPE ',' CHAR_)
Hope you can help me.
& then you cannot use V11.2.0.4 expdp use impdp since V11.2.0.1
expdp should include VERSION = 11.2.0.1
-
CREATE INDEX with ON DUPLICATE
Hello
I use Oracle10g Express (v10.2.0). What is given the equivalent query in Oracle for SQL Server query below?
CREATE UNIQUE INDEX uix_NumberUnique ON UserInfo(UserID, Number)
WITH (IGNORE_DUP_KEY = ON)
I appreciate your inputs.
Thank you
JonathanHere is an example
SQL> create table t (no integer primary key); Table created. SQL> exec dbms_errlog.create_error_log('T','T_ERR') PL/SQL procedure successfully completed. SQL> insert into t select no from ( select 1 no from dual union all select 2 no from dual union all select 1 no from dual ) log errors into t_err('Insert Error') reject limit unlimited; 2 3 4 5 6 7 8 2 rows created. SQL> select * from t 2 / NO ---------- 1 2 SQL> exec dev_util.print_table('select * from t_err') ---------------------------------------------------------------------------------------------------- Field Name Field Value ---------------------------------------------------------------------------------------------------- ORA_ERR_NUMBER$ : 1 ORA_ERR_MESG$ : ORA-00001: unique constraint (ARBORU.SYS_C00407493) violated ORA_ERR_ROWID$ : ORA_ERR_OPTYP$ : I ORA_ERR_TAG$ : Insert Error NO : 1 PL/SQL procedure successfully completed. SQL>
-
problem of creating user with SYSTEM default tablespace
Hi guru
When I am creating the user with table space default 'SYSTEM' I get the following error message
and when I change EXAMPLE its created as follows table spaceSQL> create user chetan 2 indentified by c 3 default tablsespace SYSTEM 4 temporary tablespace TEMP 5 quota 20 m on SYSTEM 6 password expire; indentified by c * ERROR at line 2: ORA-00922: missing or invalid option
so my question is. Is it not possible to create a new user with systemtablesapce?SQL> create user chetan 2 identified by c 3 default tablespace EXAMPLE 4 temporary tablespace TEMP 5 quota 15m on EXAMPLE 6 password expire; User created.
Thanks in advance
Chetanyou have a typo on line 2:
SQL> create user chetan 2 indentified by c
identified ?
so my question is. Is it not possible to create a new user with systemtablesapce?
Yes, you can
SQL> create user vivek identified by l default tablespace system 2 ; User created.
-
question about a view that I have created to solve performance problems
Dear alll;
I have an interesting problem. I created a view to help solve some performance problems, I've had with my query
See below
and I tried test the view using the following syntax and I get the following errorscreate or replace view view_test as Select trunc(c.close_date, 'YYYY-MM-DD') as close_date, t.names from tbl_component c, tbl_joborder t where c.t_id = t.p_id and c.type = 'C' group by trunc(c.close_date, 'YYYY-MM-DD'), t.names ;
However, I get the below error messagesselect k.close_date, k.names from view_test k where k.names = 'Kay' and k.close_date between to_date('2010-01-01', 'YYYY-MM-DD') and to_date('2010-12-31', 'YYYY-MM-DD')
I Googled it and tried a lot of things online but I can't solve the problem unfortunately, and I don't know why.ora-o1898: too many precision specifiers
What you trying to accomplish with TRUNC:
SQL> select trunc(sysdate, 'YYYY-MM-DD') from dual; select trunc(sysdate, 'YYYY-MM-DD') from dual * ERROR at line 1: ORA-01898: too many precision specifiers
I think you meant simply TRUNC (c.close_date)
-
Performance problem when inserting in an indexed table space with JDBC
We have a table named 'feature' that has a "sdo_geometry" column, and we created the spatial index on this column,
CREATE TABLE (ID, desc varchar, sdo_gemotry oshape) feature
CREATE INDEX feature_sp_idx ON feature (oshape) INDEXTYPE IS MDSYS. SPATIAL_INDEX;
Then we executed following SQL to insert some 800 records in this table (we tried this using the DB Viewer and)
our Java application, both of them were using JDBC driver to connect to the database oracle 11 g 2).
insert into feature (id, desc, oshape) values (1001, xxx, xxxxx);
insert into a values (id, desc, oshape) feature (1002, xxx, xxxxx);
...........................
insert into a values (id, desc, oshape) feature (1800, xxx, xxxxx);
We met the same problem as this topic
Performance of the insert with spatial index
It takes almost 1 dry for inserting a record, compared with 50 records inserted per second without spatial index.
which is 50 x slow performance when you perform the insertion with the spatial index.
However, when we copy and paste these scripts inserted in Oracle Client(same test and same table with spatial index), we got a completely different performance results:
more than 50 records inserted in 1 seconds, as fast as the insertion without having to build the spatial index.
Is it because that the Oracle Client not using JDBC? Perhaps JDBC has been something bad when updating of these tables indexed on the space.
Edited by: 860605 09/19/2011 18:57
Edited by: 860605 09/19/2011 18:58
Published by: 860605 on 19/09/2011 19:00JDBC normally use autocommit. So each insert can leads to a commit.
I know not all customer Oracle. In sqlplus, insert is just an insert,
and you run "commit" to commit your changes explicitly.
So maybe that's the reason. -
Problem with CREATE INDEX script
Hello world!
I want to create a 3D Spatial Index. So I added a few lines (PARAMETERS ('sdo_indx_dims = 3')) in the following script, I get the error
PLS-00103: encountered the symbol "SETTINGS" then wait for the following :), * & = - + <>.
PLS-00103: encountered the symbol "SDO_INDX_DIMS" then wait for the following :), * & = - + <>.
Everything works well, if I remove the PARAMETERS ('sdo_index_dims = 3').
I know that I need a few symbols, but I'm not good in programming
Thanks for the tips!
-create spatial indexes
--
procedure create_index
newIndex user_indexes.index_name%type;
Start
list_spatial_indexed_tables;
-Find all tables containing columns and a corresponding line in user_sdo_geom_metadata
- and without a spatial index
for rec in spatial_index_cursor
loop
newIndex: = rec.table_name | '_RTREE_IDX ';
Execute ('create index' | newIndex |) "on" |
Rec.table_name | ' (' | rec.column_name |)
indextype') is mdsys.spatial_index ('sdo_indx_dims = 3') SETTINGS ');
end loop;
list_tables_missing_sdo_data ("spatial index cannot be created");
end create_index;Hello
in a string, you must make to a single quote, two quotes, then do this:
-- create spatial indexes -- procedure create_index is newIndex user_indexes.index_name%type; begin list_spatial_indexed_tables; -- Find all tables containing spatial columns and a corresponding row in user_sdo_geom_metadata -- and without a spatial index for rec in spatial_index_cursor loop newIndex := rec.table_name || '_RTREE_IDX'; run ('create index ' || newIndex || ' on ' || rec.table_name || '(' || rec.column_name || ') indextype is mdsys.spatial_index PARAMETERS (''sdo_indx_dims=3'')'); end loop; list_tables_missing_sdo_data ('spatial index can not be created'); end create_index;
If the quotes to the parameters clause must be doubled.
Herald tiomela
Superconsult.nl -
Performance problem on the SQL query that does not use the primary key index
Hello!
I have some performance issues on a single SQL query (Oracle 10 g).
I could solve the problem by using the INDEX indicator, but I would like to know WHY this is happening.
* Tables *.
create table jobs)
ID number (5) not null,
name varchar2 (100),
primary key constraint Job_PK (id)
)
/
-Record count: 298
create table Comp)
integer ID not null,
name varchar2 (100),
primary key constraint Comp_PK (id)
)
/
-Record count: 193
-Relation m: n
create table JobComp)
integer ID not null,
id_job integer not null,
id_comp integer not null,
primary key constraint JobComp_PK (id),
unique key constraint JobComp_UK (id_job, id_comp),
Constraint JobComp_FK_Job foreign key (id_job) refers to Job (id),
Constraint JobComp_FK_Comp foreign key (id_comp) makes reference Comp (id)
)
/
create index JobComp_IX_Comp on JobComp (Cod_Comp)
/
create index JobComp_IX_Job on JobComp (Cod_Job)
/
-Record count: 6431
* Ask *.
When I run this query, the execution plan shows the index using (JobComp_PK and JobComp_IX_Comp).
No problem.
Select JobComp.*
of JobComp
Join jobs
on Job.id = JobComp.id_job
where JobComp.id_comp = 134
/
-runs in 0.20 sec
But when I add the field 'name' of the work table the plan uses full access table to the table of work
Select JobComp.*, Job.name
of JobComp
Join jobs
on Job.id = JobComp.id_job
where JobComp.id_comp = 134
/
-runs in the 2.70 dry
With the help of the index
Select / * + INDEX (Job Job_PK) * /.
JobComp.*, Job.name
of JobComp
Join jobs
on Job.id = JobComp.id_job
where JobComp.id_comp = 134
/
-runs in 0.20 sec
* Doubt *.
This behavior is correct?
PS. : I tried to recalculate the statistics, but nothing changes:
analyze the job calculation table statistics.
/
change the statistical calculation of index Job_PK reconstruction;
/
Start
dbms_utility.analyze_schema (sys_context ('userenv', 'current_schema'), 'CALCULATE');
end;
/
[of]
Gustavo EhrhardtGus.EHR wrote:
Hello.
I'm sorry for the plan unformatted.
The execution time of the querys "without field name' and 'with the field name with suspicion" are equal.
He has no problem caching, because I get the plans of the sequence different from the querys and repeated the performance. The result is always the same.I don't think that there is no problem with oracle crossing LOOP IMBRIQUEE to the HASH JOIN when you include the field name and this should be the expected behavior. But it seems that your WORKING table has a degree of parallelism set against what is causing the query to run in parallel (as JOB table is now available with full table scan, instead of indexed access earlier). It could be that the parallel execution is contributor to extra Runtime.
(a) do you know why the degree of parallelism on the WORK table has been defined? Do you need it?You can see if the following query provides a better response time?
select /*+ NOPARALLEL(JOB) */ JobComp.*, Job.Name from JobComp join Job on Job.id = JobComp.id_job where JobComp.id_comp = 134
-
Creating index LOB after move comand
Hello
I'm done move the tables to a different tablespace. I also rebuild the index. I just wanted to ask if re-create a lobsegment the same thing with the other indices. What other command and more.
ALTER index rebuild tablespace ts_new _name index. »
Thank you>
. We have a database of test and the pattern is CHEVY. CHEVY has a table named STOR1 with lob on the tablespace TS1 table column. I want to do is move the table to another TS Let's say TS1 >You want to move the tables in the tablespace even or an another tablespace as by what you wrote both the name of tablespaces are the same "TS1 *.» But I suppose you want to move to a different tablespace. So I gave the a name * TS2 *, to the other tablespace.
Now, when the fire the command below
SQL > ALTER TABLE STOR1 MOVE TABLESPACE TS2;
This command will move the table to new table space but won't move the CLOB segment and it will always be in the original tablespace. This is because the LOB data is stored outside the table.
Now, to control the storage space of the CLOB column by issuing the following sql:
SELECT index_name, nom_tablespace FROM user_indexes WHERE table_name = 'STOR1 '.
To move different tablespace CLOB column, we issue after a command.
SQL > ALTER TABLE STOR1 MOVE LOB (TEST_NAME) STORE DID (TABLESPACE TS2);
In above example, TEST_NAME is the column CLOB we want to spend again tablespace and tablespace TS2 target. Above command will pass successfully the LOB segments to the new tablespace. We can verify this by launching sql even once again.
SQL > SELECT index_name, nom_tablespace FROM user_indexes WHERE table_name = 'STOR1 ';
HTH
Anand -
Every time I try and open things on my computer, like internet explorer, windows player media, Aim, or my music etc. etc. files I get this message "this file has no program associated with it for performing this action. create an association in the control panel of binding together.
I don't know what that means. He started to do so after we have some malicious and unwanted software on our computer. I thought it was because of the problems, but it didn't disappear after the computer has been fixed. Can I run programs as an administrator. But how do I get it back, just double click and the program opens as usual?
Hi Justalilkink,
See also the post made by SpiritX on January 24, 2010 17:32 in the link http://social.answers.microsoft.com/Forums/en/vistafiles/thread/086ab3bb-d764-4fb1-a6f3-205bff708e63
Diana
Microsoft Answers Support Engineer
Visit our Microsoft answers feedback Forum and let us know what you thinkIf this post can help solve your problem, please click the 'Mark as answer' or 'Useful' at the top of this message. Marking a post as answer, or relatively useful, you help others find the answer more quickly.
-
Problem of indexing with Google Drive sync folder
Indexing is working in all areas on my Windows 7 computer, except for my folder of Google Sync Drive. I have already ruled out a problem with google reader. No there. Seems to be an indexing problem associated with this folder. Any suggestions to fix this problem of indexing?
Hello
Welcome to the Microsoft Community Forums. I understand that you are facing problem of indexing with Google Sync Drive folder.
You did changes to the computer before the show?
I suggest the link and follow the steps in troubleshooting.
Improve Windows searches using the index: frequently asked questions.
Refer to how to solve problems with search and indexing?
If the problem persists after you perform the steps in troubleshooting from the link above and if you have problem in Windows, please do not hesitate to answer us, we will be happy to help you.
Thank you.
-
Oracle 11.2 - perform parallel DML on a table that is not partitioned with LOB column
Hello
Since I wanted to demonstrate the new enhancements of Oracle 12 c on SECUREFICHIERS, I tried to use PDML declarations on a table that is not partitioned with LOB column, in Oracle 11 g and Oracle 12 c releases. The Oracle 11.2 SECUREFICHIERS and large objects Developer Guide January 2013 said clearly:
Parallel execution of the following DML operations on tables with LOB columns is supported. These operations performed in parallel run only mode when it is run on a partitioned table. The DML statements on tables not partitioned with LOB columns continue to run in serial execution mode.
- INSERT SELECT AS
- CREATE TABLE AS SELECT
- DELETE
- UPDATE
- MERGE (conditionally UPDATE and INSERT)
- Multi-table INSERT
So, I created and filled a simple table with a BLOB column:
SQL> CREATE TABLE T1 (A BLOB); Table created.
Then, I tried to see the execution of a parallel ABOLITION plan:
SQL> EXPLAIN PLAN FOR 2 delete /*+parallel (t1,8) */ from t1; Explained.
SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Plan hash value: 3718066193 ------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib | ------------------------------------------------------------------------------------------------------- | 0 | DELETE STATEMENT | | 2048 | 2 (0)| 00:00:01 | | | | | 1 | DELETE | T1 | | | | | | | | 2 | PX COORDINATOR | | | | | | | | | 3 | PX SEND QC (RANDOM)| :TQ10000 | 2048 | 2 (0)| 00:00:01 | Q1,00 | P->S | QC (RAND) | | 4 | PX BLOCK ITERATOR | | 2048 | 2 (0)| 00:00:01 | Q1,00 | PCWC | | | 5 | TABLE ACCESS FULL| T1 | 2048 | 2 (0)| 00:00:01 | Q1,00 | PCWP | | PLAN_TABLE_OUTPUT -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------- Note ----- - dynamic sampling used for this statement (level=2)
And I ended up executing the statement.
SQL> commit; Commit complete. SQL> alter session enable parallel dml; Session altered. SQL> delete /*+parallel (t1,8) */ from t1; 2048 rows deleted.
As we can see, the statement was executed in parallel:
SQL> select * from v$pq_sesstat; STATISTIC LAST_QUERY SESSION_TOTAL ------------------------------ ---------- ------------- Queries Parallelized 1 1 DML Parallelized 0 0 DDL Parallelized 0 0 DFO Trees 1 1 Server Threads 5 0 Allocation Height 5 0 Allocation Width 1 0 Local Msgs Sent 55 55 Distr Msgs Sent 0 0 Local Msgs Recv'd 55 55 Distr Msgs Recv'd 0 0 11 rows selected.
Is this normal? It is not supposed to be supported on Oracle 11 g with no partitioned table containing the LOB column...
Thank you for your help.
Michael
Hello
The explain plan shows that only the query is run in parallel but not delete it.
Concerning
Maurice
Maybe you are looking for
-
Since the upgrade to Mac OS Sierra &; screensavers
I upgraded to macOs Sierra of El Capitan & my screen saver will come after the computer idle for some time. I have reset a twice, if I go to the screensaver, that's where. Thank you
-
Hello, I have the tension between say (5-volts to 5 volts) to scan asbetween 01:55 to step size of 1 and between-2 and 2 to a 0.5 step size, then a 1 beyond 2 step size.01:58 range may change. (user input)can someone help me find a way to do it. conc
-
I use teststand to do a self test system, and I want teststand just run once, but each time when I run a file of sequence, it popup a dialog box asking to enter the serial number of UUT, the testmodel used T is SequentialModel.Seq .when I change the
-
I am trying to install Windows Media Player 11 and make me an error message saing I have insufficient disk space to Exchange files or have a corrupted .cab file. I don't have a problem with low disk space, so I think it has to do with the CAB file.
-
Original title: WMP11 missing icons My WMP11 icons are missing. WMP11 plays and works well. Only the icons are missing in the quick launch of office and almost everywere else. My "Hide inactive icons" is always disabled. How can I restore them? WinXP