Simulating CTX_RULE Index Behavior With MySQL FULLTEXT
May 1, 2011
The logic between Oracle and MySQL's functionality is reversed in a way that ctx_rule will allow for logical operators within the columns index, allowing for plain text to be passed without any logic e.g
Oracle:
usa OR united states of america AND michigan
MySQL:
usa united state of america michigan
and MySQL expects it before hand.
In the above example, I have to figure out the operator logic before sending the credentials to MySQL e.g.
MATCH (location_rule) AGAINST ('+usa +"united states of america" +michigan' IN BOOLEAN MODE) AS score
I don't want or have the capability of figuring out the operators before hand with the user input
SELECT v.key$ FROM VERSION_TABLE v, DOCUMENT_TABLE d, CLASS_TABLE z WHERE v.documentKey = d.key$ AND d.classKey = z.key$ AND z.key$ IN (SELECT zz.key$ FROM CLASS_TABLE zz START WITH zz.name = 'esDTTemplate' CONNECT BY PRIOR zz.key$ = zz.parentKey) AND v.ESGROUP = 'SearchOperatorsMapping' ORDER BY d.name
Now I noticed that the subquery is never used to seed the join: indexes - if any - are used. Otherwise a full table scan is performed.In the example - if ESGROUP is indexed, then it's chosen to start the join evaluation. If not, a full table scan is performed.Is there any way to suggest to the optimizer to use the subquery in case there are no indexes - as a fallback ?
In the above example where VERSION_TABLE contains nearly two million records, the no index solution takes 60 secs. vs. less than 1 sec. in the index case.Wrapping the hierarchical query in a inline view leads to same result.
PS: the execution plan (without index) is: ------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time ------------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | | | 9 (100)| | | 1 | SORT ORDER BY | | 1 | 171 | 9 (23)| 00:00:01 | |* 2 | HASH JOIN SEMI | | 1 | 171 | 8 (13)| 00:00:01 |
Oracle database concepts 11gr2 manual states that "An incremental checkpoint is a type of thread checkpoint partly intended to avoid writing large numbers of blocks at online redo log switches. DBWn checks at least every three seconds to determine whether it has work to do. When DBWn writes dirty buffers, it advances the checkpoint position, causing CKPT to write the checkpoint position to the control file, but not to the data file headers."
As i have understand the DBWR write DIRTY BUFFER (that are under active checkpoint requests in the ACQ) to the datafiles from The Buffer Checkpoint Queues and after that the CKPT process may write the checkpoint RBA to the control files.[URL]...
The CKPT porcess write the chekpoint RBA to the controlfile after that the DBWR write the Dirty BUFFER in the datafiles, so as i understand at some point the datafiles containt block with higher RBA than the controle files. am i wrong ?
So if the instance craches before the CKPT record the chekpoint RBA in the controlfile what will be the recover behavior.Will the redo record be reapplied from the last recoded chekpoint RBA in the controlfile to the tail of the log ?
I am trying to change the default behavior of Hide/Show Region to show, after some attempts i got it partially working but now clicking the icon to toggle hide/show doesn't work also changed the icons and added type="" but its not working.
I need to migrate data from Mysql database to Oracle11g database.
a) is there any method available to import the all the sqls like table script,constraint scripts,data(insert ) script from Mysql.so that we can apply the sql directly to the oracle schema after making necessary changes(like datatype).
b) Is there any free tool available for the migration.
I`m migrating a mysql 5.0 database to Oracle 11g. I used Oracle's Sql developer and with a workaround i could convert tables, constraints, indexes, some triggers and created sequences.
My question is, what happen with stored procedures and functions, they didn't pass. I've been searching and i found here hey have to be rewritten. Is there any way to convert those objects ? I can't afford to do it manually because the mysql database has almost 400 of them and they aren't small.
I am migrating MySQL query's to oracle (sqlplus). Tell me what is the below code doing and equivalent for this code in oracle.
declare @start_date datetime select @start_date='$first_date' declare @end_date datetime select @end_date='$end_date' This is followed by select distinct ' ', column from my_table;
I tried a lot of ways (set @start_date etc)but nothing really works.
I need to created DB link between oracle (10g on linux) and mysql 5.0 to configure a job to fetch data after every hour. I need solution that does not involve:
1) We get a daily Oracle 11 Dump 2) We only want to import the current changes in a MySQL database .
For this we need:
a) Is there a tool, script or best practices to get only the differences (delta) ? b) How to import an Oracle dump or only teh differences into a MySQL database ?
When I try to connect using the mysql command line, I keep getting an error, I type this exactly:
SQL > Connect Enter user-name: system Enter password: (left blank b/c i can't type anything there) and when I press enter I get the error, null password given, login denied.
i tried for 3 days to setup a connection between my oracle database 11.2 (resides on 2003,64 bit Microsoft windows) and a mysql database (resides on 2003,32 bit Microsoft widows).
i used dg4odbc 64 bit which was installed on oracle server, my steps was as follows :
1- configure ODBC driver (MYSQL 3.51 odbc) on oracle server that connect to mysql database and the connection was tested successfully (the name of odbc dsn is DG4ODBC).
2- configure the listener.ora file (which resides on dg4odbc installation path) that contains the following :
4- configure that initdg4odbc.ora file that resides on the dg4odbc installation.
HS_FDS_CONNECT_INFO = DG4ODBC HS_FDS_TRACE_LEVEL = off
5- restart the gateway listener.
6- test DG4ODBC service by tnsping which was successful .when i try to get some data from mysql database by SELECT * FROM MDL_COURSE@DG4ODBC query,the query take some time (15 second !!) and return
ORA-12154: TNS:could not resolve the connect identifier specified
I am on 11.2.0.3 Enterprise Edition. We are using the new feature "Composite Domain Index" for a Domain index on a very large table (>250.000.000 rows). It really works with mixed queries. We added two number columns using FILTER BY.We have lots of DML on this table. Therefore, we are executing synchronize and optimize once the week. The synch behaves pretty normal. But "optimize_index" takes a very very long time to complete. I have switsched on 'logging' for the optimize process. The $I table takes some time but is finished normally. But the optimization of the $S table (that is the table created for the CDI feature) is running over 12 hours now - and far from being finished. From the logfile, I can see that it optimizes 1000 rows every 20 minutes. Here is the output of the logfile:
Oracle Text, 11.2.0.3.0 14:33:05 06/26/12 begin logging 14:33:05 06/26/12 event 14:33:05 06/26/12 process $N for optimize: SEQDEV.GEN_GES_DESCRIPTION_CTX_I 14:33:16 06/26/12 14:33:16 06/26/12 [code]....
I haven't found a recommendation from Oracle not to use "optimize_index" for Domain Indexes with CDI. But in my case, it would be much faster just to drop and recreate the Domain Index in question.
I have a huge table (about 60 gb) partition over range. The index on this table is global index created on 4 columns together. I have a query which is running very slowly. The explain plan is showing the use of this global index.Explain plan is not showing pstart and pend because the index is global.
I am facing the error "ORA-01502: index or partition of such index is in unusable state " while loading the text data using sql loader with direct path (direct = Y ,rows = 10000) option. Table consists an composite non unique index. If I query the dba indexes for the effected index it shows the index status as VALID. There was no maintaince done on the effected table or index. I have tried loading the same data using conventional path but didn't found any issues for the same.
where @var is user supplied input at runtime...We had a index on a.c2 . The CBO would use this index to generate an opitimised query plan.We found some records from table "b" were dropping due to inner join. So we made a change in join. It'd be like
a.c1(+)=b.c1 and nvl(a.c2,@var)=@var
This query is no longer using the index, instead its doing a full table scan causing the query to slowdown.I have tried creating index on nvl(a.c2,'31-dec-9999')
But the CBO won't use it.Anyway to create index on this col so that full table scan can be avoided?
We have occurrences of enq : TX - index contentions in the database. Using the SQL ID, we have identified the INSERT statement and the table which they are trying to insert.
This table has almost 25 different indexes, some of which are unique as well.I am wondering how to identify the actual index causing issue, out of these 25 indexes.
Is there any way to pin point to the name of index which is causing the lock?My plan is, once the index is identified, I would like to check the extents and inittrans and other attributes of this index to fix.
our system has always been running on mysql database and recently we have switched to oracle. As the current system is coded using mysql query syntax, when i run this program using oracle database, i got a error. The language that I'm using is JSP.
this is the error message:
The following query could not run on oracle. To convert these mysql queries to oracle compatible queries.
SELECT productID,productName FROM products order by productName;
select newsID,newsDate,newsHeadLine1 from news order by newsDate Desc limit 3
SELECT fuji_products.productID, productName_Display FROM products,products_availability where products_availability.productID=products.productID and (product_status='enabled' or product_status='all') AND category='12'
SELECT catID, catSub1 from category where catSub = '"+ prodCat +"' AND catSub1 is not null group by catSub1 order by catSub1
I need to migrate data from Mysql database to Oracle11g database.
a) is there any method available to import the all the sqls like table script,constraint scripts,data(insert ) script from Mysql.so that we can apply the sql directly to the oracle schema after making necessary changes(like datatype).
b) Is there any free tool available for the migration.