[11g R2] Update-Select with BITMAP CONVERSION TO ROWIDS = very slow
Hi all,
I have to deal with some performance issues in our database.
The query below takes between 30 minutes and 60 minutes to complete (30 minutes during the batch process and 1h when I executed the query with SQLPLUS):
SQL_ID 4ky65wauhg1ub, child number 0
UPDATE fiscpt x SET (x.cimld) = (SELECT COUNT (*)
FROM fiscpt f WHERE f.comar = x.comar AND
f.coint = x.coint AND f.nucpt = x.nucpt AND
f.codev != x.codev AND f.cimvt != 0) WHERE x.comar IN
('CBOT', 'CME', 'EUREX', 'FOREX', 'LIFFE', 'METAL', 'OCC')
Plan hash value: 697684605
| Id | Operation | Name | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time | A-Rows | A-Time | Buffers | Reads | OMem | 1Mem | Used-Mem |
| 0 | UPDATE STATEMENT | | 1 | | | 773K(100)| | 0 |00:22:22.30 | 36M| 7629 | | | |
| 1 | UPDATE | FISCPT | 1 | | | | | 0 |00:22:22.30 | 36M| 7629 | | | |
| 2 | INLIST ITERATOR | | 1 | | | | | 179K|00:00:00.37 | 1221 | 3 | | | |
|* 3 | INDEX RANGE SCAN | FISCPT1 | 7 | 154K| 4984K| 5 (0)| 00:00:01 | 179K|00:00:00.23 | 1221 | 3 | | | |
| 4 | SORT AGGREGATE | | 179K| 1 | 33 | | | 179K|01:02:58.45 | 35M| 3020 | | | |
|* 5 | TABLE ACCESS BY INDEX ROWID | FISCPT | 179K| 1 | 33 | 4 (25)| 00:00:01 | 63681 |01:02:57.80 | 35M| 3020 | | | |
| 6 | BITMAP CONVERSION TO ROWIDS | | 179K| | | | | 121K|01:02:52.71 | 35M| 885 | | | |
| 7 | BITMAP AND | | 179K| | | | | 87091 |01:02:52.25 | 35M| 885 | | | |
| 8 | BITMAP CONVERSION FROM ROWIDS| | 179K| | | | | 179K|00:00:03.31 | 241K| 0 | | | |
|* 9 | INDEX RANGE SCAN | FISCPT2 | 179K| 1547 | | 1 (0)| 00:00:01 | 1645K|00:00:02.23 | 241K| 0 | | | |
| 10 | BITMAP CONVERSION FROM ROWIDS| | 179K| | | | | 148K|01:02:44.98 | 35M| 885 | | | |
| 11 | SORT ORDER BY | | 179K| | | | | 2412M|00:52:19.70 | 35M| 885 | 1328K| 587K| 1180K (0)|
|* 12 | INDEX RANGE SCAN | FISCPT1 | 179K| 1547 | | 2 (0)| 00:00:01 | 2412M|00:22:11.22 | 35M| 885 | | | |
Query Block Name / Object Alias (identified by operation id):
1 - UPD$1
3 - UPD$1 / X@UPD$1
4 - SEL$1
5 - SEL$1 / F@SEL$1
Predicate Information (identified by operation id):
3 - access(("X"."COMAR"='CBOT' OR "X"."COMAR"='CME' OR "X"."COMAR"='EUREX' OR "X"."COMAR"='FOREX' OR "X"."COMAR"='LIFFE' OR "X"."COMAR"='METAL' OR
"X"."COMAR"='OCC'))
5 - filter("F"."CIMVT"<>0)
9 - access("F"."COINT"=:B1 AND "F"."NUCPT"=:B2)
12 - access("F"."COMAR"=:B1)
filter(("F"."CODEV"<>:B1 AND "F"."COMAR"=:B2))
Column Projection Information (identified by operation id):
2 - (upd=6; cmp=2,3,4,5) "SYS_ALIAS_4".ROWID[ROWID,10], "X"."COMAR"[VARCHAR2,5], "X"."COINT"[VARCHAR2,11], "X"."NUCPT"[VARCHAR2,8], "X"."CODEV"[VARCHAR2,3],
"X"."CIMLD"[NUMBER,22]
3 - "SYS_ALIAS_4".ROWID[ROWID,10], "X"."COMAR"[VARCHAR2,5], "X"."COINT"[VARCHAR2,11], "X"."NUCPT"[VARCHAR2,8], "X"."CODEV"[VARCHAR2,3], "X"."CIMLD"[NUMBER,22]
4 - (#keys=0) COUNT(*)[22]
5 - "F".ROWID[ROWID,10], "F"."COMAR"[VARCHAR2,5], "F"."COINT"[VARCHAR2,11], "F"."NUCPT"[VARCHAR2,8], "F"."CODEV"[VARCHAR2,3], "F"."CIMVT"[NUMBER,22]
6 - "F".ROWID[ROWID,10]
7 - STRDEF[BM VAR, 10], STRDEF[BM VAR, 10], STRDEF[BM VAR, 32496]
8 - STRDEF[BM VAR, 10], STRDEF[BM VAR, 10], STRDEF[BM VAR, 32496]
9 - "F".ROWID[ROWID,10]
10 - STRDEF[BM VAR, 10], STRDEF[BM VAR, 10], STRDEF[BM VAR, 32496]
11 - (#keys=1) "F".ROWID[ROWID,10]
12 - "F".ROWID[ROWID,10]
Note
- dynamic sampling used for this statement (level=2)We intentionally don't gather statistics on the FISCPT table.
There are no indexes on the column updated so the slowness is not due to updating of indexes:
SQL> select index_name, column_name from user_ind_columns where table_name='FISCPT';
INDEX_NAME COLUMN_NAM
FISCPT1 NUCPT
FISCPT1 CODEV
FISCPT1 RGCID
FISCPT1 DATRA
FISCPT2 COINT
FISCPT2 NUCPT
FISCPT3 NUFIS
FISCPT1 COINT
FISCPT1 COMAR
9 ligne(s) sÚlectionnÚe(s).
SQL> select count(1) from FISCPT;
COUNT(1)
179369If I replace the UPDATE-SELECT statement by a SELECT, the query runs in few seconds:
SQL> SELECT COUNT (*)
2 FROM fiscpt f, fiscpt x
3 WHERE f.comar = x.comar
4 AND f.coint = x.coint
5 AND f.nucpt = x.nucpt
6 AND f.codev != x.codev
7 AND f.cimvt != 0
8 and x.comar IN ('CBOT', 'CME', 'EUREX', 'FOREX', 'LIFFE', 'METAL', 'OCC');
COUNT(*)
63681
EcoulÚ : 00 :00 :00.75
SQL> select * from table(dbms_xplan.display_cursor());
PLAN_TABLE_OUTPUT
SQL_ID 5drbpdmdv0gv1, child number 0
SELECT COUNT (*) FROM fiscpt f, fiscpt x
WHERE f.comar = x.comar AND f.coint = x.coint
AND f.nucpt = x.nucpt AND f.codev != x.codev
AND f.cimvt != 0 and x.comar IN ('CBOT', 'CME', 'EUREX', 'FOREX',
'LIFFE', 'METAL', 'OCC')
Plan hash value: 1326101771
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | | | | 2477 (100)| |
| 1 | SORT AGGREGATE | | 1 | 53 | | | |
|* 2 | HASH JOIN | | 107K| 5557K| 4720K| 2477 (1)| 00:00:30 |
| 3 | INLIST ITERATOR | | | | | | |
|* 4 | TABLE ACCESS BY INDEX ROWID| FISCPT | 107K| 3460K| | 1674 (1)| 00:00:21 |
|* 5 | INDEX RANGE SCAN | FISCPT1 | 154K| | | 873 (0)| 00:00:11 |
|* 6 | INDEX FAST FULL SCAN | FISCPT1 | 154K| 3021K| | 337 (0)| 00:00:05 |
Predicate Information (identified by operation id):
2 - access("F"."COMAR"="X"."COMAR" AND "F"."COINT"="X"."COINT" AND
"F"."NUCPT"="X"."NUCPT")
filter("F"."CODEV"<>"X"."CODEV")
4 - filter("F"."CIMVT"<>0)
5 - access(("F"."COMAR"='CBOT' OR "F"."COMAR"='CME' OR "F"."COMAR"='EUREX' OR
"F"."COMAR"='FOREX' OR "F"."COMAR"='LIFFE' OR "F"."COMAR"='METAL' OR "F"."COMAR"='OCC'))
6 - filter(("X"."COMAR"='CBOT' OR "X"."COMAR"='CME' OR "X"."COMAR"='EUREX' OR
"X"."COMAR"='FOREX' OR "X"."COMAR"='LIFFE' OR "X"."COMAR"='METAL' OR "X"."COMAR"='OCC'))
Note
- dynamic sampling used for this statement (level=2)The optimizer parameters are at their default values.
The database is an 11.2.0.1 and the OS is a Linux Red hat.
can someone help me to tune this query please?
Thanks Tubby for your reply,
We don't gather statistics at all on this table because it's a process table: on the production database we may have several processes which insert/delet/update rows into this table so we prefer to rely on Dynamic Sampling instead of gathering statistics each time a process need to access this table.
I don't dynamic sampling is the problem here because when i use the level 10 the execution plan is the same:
SQL> alter session set optimizer_dynamic_sampling=10;
Session modifiÚe.
EcoulÚ : 00 :00 :00.00
SQL> explain plan for
2 UPDATE fiscpt x
3 SET (x.cimld) =
4 (SELECT COUNT (*)
5 FROM fiscpt f
6 WHERE f.comar = x.comar
7 AND f.coint = x.coint
8 AND f.nucpt = x.nucpt
9 AND f.codev != x.codev
10 AND f.cimvt != 0)
11 WHERE x.comar IN ('CBOT', 'CME', 'EUREX', 'FOREX', 'LIFFE', 'METAL', 'OCC');
ExplicitÚ.
EcoulÚ : 00 :00 :01.04
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
Plan hash value: 697684605
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | UPDATE STATEMENT | | 179K| 5780K| 896K (20)| 02:59:23 |
| 1 | UPDATE | FISCPT | | | | |
| 2 | INLIST ITERATOR | | | | | |
|* 3 | INDEX RANGE SCAN | FISCPT1 | 179K| 5780K| 5 (0)| 00:00:01 |
| 4 | SORT AGGREGATE | | 1 | 33 | | |
|* 5 | TABLE ACCESS BY INDEX ROWID | FISCPT | 1 | 33 | 4 (25)| 00:00:01 |
| 6 | BITMAP CONVERSION TO ROWIDS | | | | | |
| 7 | BITMAP AND | | | | | |
| 8 | BITMAP CONVERSION FROM ROWIDS| | | | | |
|* 9 | INDEX RANGE SCAN | FISCPT2 | 1794 | | 1 (0)| 00:00:01 |
| 10 | BITMAP CONVERSION FROM ROWIDS| | | | | |
| 11 | SORT ORDER BY | | | | | |
|* 12 | INDEX RANGE SCAN | FISCPT1 | 1794 | | 2 (0)| 00:00:01 |
Predicate Information (identified by operation id):
3 - access("X"."COMAR"='CBOT' OR "X"."COMAR"='CME' OR "X"."COMAR"='EUREX' OR
"X"."COMAR"='FOREX' OR "X"."COMAR"='LIFFE' OR "X"."COMAR"='METAL' OR
"X"."COMAR"='OCC')
5 - filter("F"."CIMVT"<>0)
9 - access("F"."COINT"=:B1 AND "F"."NUCPT"=:B2)
12 - access("F"."COMAR"=:B1)
filter("F"."CODEV"<>:B1 AND "F"."COMAR"=:B2)
Note
- dynamic sampling used for this statement (level=10)I have tested the query you provided and the execution plan is almost the same (A FILTER clause is added but the COST isthe same):
SQL> explain plan for
2 UPDATE fiscpt x
3 SET (x.cimld) =
4 (SELECT COUNT (*)
5 FROM fiscpt f
6 WHERE f.comar = x.comar
7 AND f.coint = x.coint
8 AND f.nucpt = x.nucpt
9 AND f.codev != x.codev
10 AND f.cimvt != 0
11 and f.comar IN ('CBOT', 'CME', 'EUREX', 'FOREX', 'LIFFE', 'METAL', 'OCC')
12 )
13 WHERE x.comar IN ('CBOT', 'CME', 'EUREX', 'FOREX', 'LIFFE', 'METAL', 'OCC');
ExplicitÚ.
EcoulÚ : 00 :00 :00.01
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
Plan hash value: 1565986742
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | UPDATE STATEMENT | | 154K| 4984K| 773K (20)| 02:34:41 |
| 1 | UPDATE | FISCPT | | | | |
| 2 | INLIST ITERATOR | | | | | |
|* 3 | INDEX RANGE SCAN | FISCPT1 | 154K| 4984K| 5 (0)| 00:00:01 |
| 4 | SORT AGGREGATE | | 1 | 33 | | |
|* 5 | FILTER | | | | | |
|* 6 | TABLE ACCESS BY INDEX ROWID | FISCPT | 1 | 33 | 4 (25)| 00:00:01 |
| 7 | BITMAP CONVERSION TO ROWIDS | | | | | |
| 8 | BITMAP AND | | | | | |
| 9 | BITMAP CONVERSION FROM ROWIDS| | | | | |
|* 10 | INDEX RANGE SCAN | FISCPT2 | 1547 | | 1 (0)| 00:00:01 |
| 11 | BITMAP CONVERSION FROM ROWIDS| | | | | |
| 12 | SORT ORDER BY | | | | | |
|* 13 | INDEX RANGE SCAN | FISCPT1 | 1547 | | 2 (0)| 00:00:01 |
Predicate Information (identified by operation id):
3 - access("X"."COMAR"='CBOT' OR "X"."COMAR"='CME' OR "X"."COMAR"='EUREX' OR
"X"."COMAR"='FOREX' OR "X"."COMAR"='LIFFE' OR "X"."COMAR"='METAL' OR "X"."COMAR"='OCC')
5 - filter(:B1='CBOT' OR :B2='CME' OR :B3='EUREX' OR :B4='FOREX' OR :B5='LIFFE' OR
:B6='METAL' OR :B7='OCC')
6 - filter(("F"."COMAR"='CBOT' OR "F"."COMAR"='CME' OR "F"."COMAR"='EUREX' OR
"F"."COMAR"='FOREX' OR "F"."COMAR"='LIFFE' OR "F"."COMAR"='METAL' OR
"F"."COMAR"='OCC') AND "F"."CIMVT"<>0)
10 - access("F"."COINT"=:B1 AND "F"."NUCPT"=:B2)
13 - access("F"."COMAR"=:B1)
filter("F"."CODEV"<>:B1 AND ("F"."COMAR"='CBOT' OR "F"."COMAR"='CME' OR
"F"."COMAR"='EUREX' OR "F"."COMAR"='FOREX' OR "F"."COMAR"='LIFFE' OR
"F"."COMAR"='METAL' OR "F"."COMAR"='OCC') AND "F"."COMAR"=:B2)
Note
- dynamic sampling used for this statement (level=2)I have executed this statement for 50 minutes and it is still running now
Furthermore, I have used the tuning advisor but it has not found any recommendation.
is it normal that oracle takes 1hour to update 175k rows?
Similar Messages
-
Please explain plan with 'BITMAP CONVERSION TO ROWIDS'
Hi,
in my 9.2.0.8 I've got plan like :
Plan
SELECT STATEMENT CHOOSECost: 26,104
7 TABLE ACCESS BY INDEX ROWID UMOWY Cost: 26,105 Bytes: 41 Cardinality: 1
6 BITMAP CONVERSION TO ROWIDS
5 BITMAP AND
2 BITMAP CONVERSION FROM ROWIDS
1 INDEX RANGE SCAN UMW_PRD_KPD_KOD Cost: 406 Cardinality: 111,930
4 BITMAP CONVERSION FROM ROWIDS
3 INDEX RANGE SCAN UMW_PRD_KPR_KOD Cost: 13,191 Cardinality: 111,930 as far as I know Oracle is trying to combine two indexes , so if I create multicolumn index the plan should be better right ?
Generally all bitmap conversions related to b-tree indexes are trying to combine multiple indexes to deal with or/ index combine operations right ?
And finally what about AND_EQUAL hint is that kind of alternative for that bitmap conversion steps ?
Regards
Gregas far as I know Oracle is trying to combine two indexes , so if I create multicolumn index the plan should be better right ?Only you can really tell - but if this is supposed to be a "precision" query the optimizer thinks you don't have a good index into the target data. Don't forget to consider the benefits of compressed indexes if you do follow this route.
Generally all bitmap conversions related to b-tree indexes are trying to combine multiple indexes to deal with or/ index combine operations right ?Bitmap conversions when there are no real bitmap indexes involved are always about combining multiple b-tree index range scans to minimise the number of reads from the table.
And finally what about AND_EQUAL hint is that kind of alternative for that bitmap conversion steps ?AND_EQUAL was an older mechanism for combining index range scans to minimise visits to the table - it was restricted to a maximum of 5 indexes per table - the indexes had to be single column, non-unique, and the predicates had to be equality. The access method is deprecated in 10g. (See the following note, and the comments in particular, for more details: http://jonathanlewis.wordpress.com/2009/05/08/ioug-day-4/ )
Regards
Jonathan Lewis -
Oracle 11g performance issue ( BITMAP CONVERSION TO ROWIDS)
I have two instance of oracle 11g.
in both instance i fired same query.
one instance returns the result in 1sec but other instance returns the result in 10 sec
following is explain plan for bot instance
instance 1
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 143 | 59 (2)| 00:00:01 |
| 1 | HASH GROUP BY | | 1 | 143 | 59 (2)| 00:00:01 |
| 2 | VIEW | VM_NWVW_2 | 1 | 143 | 59 (2)| 00:00:01 |
| 3 | HASH UNIQUE | | 1 | 239 | 59 (2)| 00:00:01 |
| 4 | NESTED LOOPS | | | | | |
| 5 | NESTED LOOPS | | 1 | 239 | 58 (0)| 00:00:01 |
PLAN_TABLE_OUTPUT
| 6 | NESTED LOOPS | | 1 | 221 | 57 (0)| 00:00:01 |
| 7 | NESTED LOOPS | | 1 | 210 | 55 (0)| 00:00:01 |
| 8 | NESTED LOOPS | | 1 | 184 | 54 (0)| 00:00:01 |
| 9 | NESTED LOOPS | | 1 | 158 | 53 (0)| 00:00:01 |
| 10 | NESTED LOOPS | | 1 | 139 | 52 (0)| 00:00:01 |
| 11 | NESTED LOOPS | | 1 | 105 | 50 (0)| 00:00:01 |
|* 12 | INDEX RANGE SCAN | year_field | 1 | 29 | 2 (0)| 00:00:01 |
| 13 | SORT AGGREGATE | | 1 | 8 | | |
| 14 | INDEX FULL SCAN (MIN/MAX)| idx_bf_creation_date | 1 | 8 | 2 (0)| 00:00:01 |
|* 15 | TABLE ACCESS BY INDEX ROWID| OHRT_bugs_fact | 1 | 76 | 48 (0)| 00:00:01 |
|* 16 | INDEX RANGE SCAN | idx_bf_creation_date | 76 | | 1 (0)| 00:00:01 |
PLAN_TABLE_OUTPUT
|* 17 | TABLE ACCESS BY INDEX ROWID | OHRT_all_time_dimension | 1 | 34 | 2 (0)| 00:00:01 |
|* 18 | INDEX UNIQUE SCAN | unique_alltime_bug_instance_id | 1 | | 1 (0)| 00:00:01 |
| 19 | TABLE ACCESS BY INDEX ROWID | OHRT_all_time_dimension | 1 | 19 | 1 (0)| 00:00:01 |
|* 20 | INDEX UNIQUE SCAN | unique_alltime_bug_instance_id | 1 | | 1 (0)| 00:00:01 |
|* 21 | INDEX RANGE SCAN | bugseverity_instance_id_ref_id | 1 | 26 | 1 (0)| 00:00:01 |
|* 22 | INDEX UNIQUE SCAN | unique_alltime_bug_instance_id | 1 | 26 | 1 (0)| 00:00:01 |
| 23 | INLIST ITERATOR | | | | | |
|* 24 | TABLE ACCESS BY INDEX ROWID | OHMT_ANL_BUCKET | 1 | 11 | 2 (0)| 00:00:01 |
|* 25 | INDEX UNIQUE SCAN | SYS_C0053213 | 5 | | 1 (0)| 00:00:01 |
|* 26 | INDEX RANGE SCAN | FK_BUCKET_TYPE | 6 | | 0 (0)| 00:00:01 |
|* 27 | TABLE ACCESS BY INDEX ROWID | OHMT_ANL_BUCKET | 1 | 18 | 1 (0)| 00:00:01 |
instance 2
Plan
SELECT STATEMENT ALL_ROWS Cost: 22 Bytes: 142 Cardinality: 1
32 HASH GROUP BY Cost: 22 Bytes: 142 Cardinality: 1
31 VIEW VIEW SYS.VM_NWVW_2 Cost: 22 Bytes: 142 Cardinality: 1
30 HASH UNIQUE Cost: 22 Bytes: 237 Cardinality: 1
29 NESTED LOOPS
27 NESTED LOOPS Cost: 21 Bytes: 237 Cardinality: 1
25 NESTED LOOPS Cost: 20 Bytes: 219 Cardinality: 1
21 NESTED LOOPS Cost: 18 Bytes: 208 Cardinality: 1
19 NESTED LOOPS Cost: 17 Bytes: 183 Cardinality: 1
17 NESTED LOOPS Cost: 16 Bytes: 157 Cardinality: 1
14 NESTED LOOPS Cost: 15 Bytes: 138 Cardinality: 1
11 NESTED LOOPS Cost: 13 Bytes: 104 Cardinality: 1
3 INDEX RANGE SCAN INDEX REPORTSDB.year_field Cost: 2 Bytes: 29 Cardinality: 1
2 SORT AGGREGATE Bytes: 8 Cardinality: 1
1 INDEX FULL SCAN (MIN/MAX) INDEX REPORTSDB.idx_bf_creation_date Cost: 3 Bytes: 8 Cardinality: 1
10 TABLE ACCESS BY INDEX ROWID TABLE REPORTSDB.OHRT_bugs_fact Cost: 13 Bytes: 75 Cardinality: 1
9 BITMAP CONVERSION TO ROWIDS
8 BITMAP AND
5 BITMAP CONVERSION FROM ROWIDS
4 INDEX RANGE SCAN INDEX REPORTSDB.idx_OHRT_bugs_fact_2product Cost: 2 Cardinality: 85
7 BITMAP CONVERSION FROM ROWIDS
6 INDEX RANGE SCAN INDEX REPORTSDB.idx_bf_creation_date Cost: 2 Cardinality: 85
13 TABLE ACCESS BY INDEX ROWID TABLE REPORTSDB.OHRT_all_time_dimension Cost: 2 Bytes: 34 Cardinality: 1
12 INDEX UNIQUE SCAN INDEX (UNIQUE) REPORTSDB.unique_alltime_bug_instance_id Cost: 1 Cardinality: 1
16 TABLE ACCESS BY INDEX ROWID TABLE REPORTSDB.OHRT_all_time_dimension Cost: 1 Bytes: 19 Cardinality: 1
15 INDEX UNIQUE SCAN INDEX (UNIQUE) REPORTSDB.unique_alltime_bug_instance_id Cost: 1 Cardinality: 1
18 INDEX UNIQUE SCAN INDEX (UNIQUE) REPORTSDB.unique_alltime_bug_instance_id Cost: 1 Bytes: 26 Cardinality: 1
20 INDEX RANGE SCAN INDEX REPORTSDB.bugseverity_instance_id_ref_id Cost: 1 Bytes: 25 Cardinality: 1
24 INLIST ITERATOR
23 TABLE ACCESS BY INDEX ROWID TABLE OPSHUB.OHMT_ANL_BUCKET Cost: 2 Bytes: 11 Cardinality: 1
22 INDEX UNIQUE SCAN INDEX (UNIQUE) OPSHUB.SYS_C0040939 Cost: 1 Cardinality: 5
26 INDEX RANGE SCAN INDEX OPSHUB.FK_BUCKET_TYPE Cost: 0 Cardinality: 6
28 TABLE ACCESS BY INDEX ROWID TABLE OPSHUB.OHMT_ANL_BUCKET Cost: 1 Bytes: 18 Cardinality: 1
in both explain plan only difference is
9 BITMAP CONVERSION TO ROWIDS
8 BITMAP AND
5 BITMAP CONVERSION FROM ROWIDS
but is bitmap degrading performance lot?
or suggest me what other parameter i can see so 2nd instance gives me better performace.I see more differences.
In plan 1:
* 16 INDEX RANGE SCAN idx_bf_creation_date 76 1 (0) 00:00:01
in Plan 2:
1 INDEX FULL SCAN (MIN/MAX) INDEX REPORTSDB.idx_bf_creation_date Cost: 3 Bytes: 8 Cardinality: 1
So this is not about "bitmap" good/bad, it about the access strategy which changed due to differences in data statistics etc. To analyze more, I'd help a LOT if those plans would be formated in a good and same way, use around it to do so. -
Explain plan change after partitioning - Bitmap conversion to rowid
hi gurus,
before partitioning the table using range paritioning,
for the query,
SELECT MEDIUMID
FROM MEDIUM_TB
WHERE CMREFERENCEID =8
AND CONTENTTYPEID = 8
AND CMSTATUSID = 5
AND SUBTYPEID = 99
A. before partitioning
SELECT STATEMENT, GOAL = ALL_ROWS 2452 882 16758
SORT ORDER BY 2452 882 16758
TABLE ACCESS BY INDEX ROWID DBA1 MEDIUM_TB 2451 882 16758
BITMAP CONVERSION TO ROWIDS
BITMAP AND
BITMAP CONVERSION FROM ROWIDS
INDEX RANGE SCAN DBA1 MEDIUM_TB_IX07 242 94423
BITMAP CONVERSION FROM ROWIDS
INDEX RANGE SCAN DBA1 MEDIUM_TB_IX02 1973 94423
B. after partitioning
the explain plan changed to
SELECT STATEMENT, GOAL = ALL_ROWS 33601 796 15124
TABLE ACCESS BY GLOBAL INDEX ROWID DBA1 MEDIUM_TB 33601 796 15124
INDEX RANGE SCAN DBA1 MEDIUM_TB_IX07 300 116570 as you can see in the plan, the paln cost is very high after partitioning and the query is taking more time.
index MEDIUM_TB_IX02 is not used in the second plan and also the plan method BITMAP CONVERSION.
fyi, there is all the indexes are b-tree based and global indexes.
what could be reason for the plan change?
please help
thanks,
charlesuser570138 wrote:
SELECT STATEMENT, GOAL = ALL_ROWS 2452 882 16758
SORT ORDER BY 2452 882 16758
TABLE ACCESS BY INDEX ROWID DBA1 MEDIUM_TB 2451 882 16758
BITMAP CONVERSION TO ROWIDS
BITMAP AND
BITMAP CONVERSION FROM ROWIDS
INDEX RANGE SCAN DBA1 MEDIUM_TB_IX07 242 94423
BITMAP CONVERSION FROM ROWIDS
INDEX RANGE SCAN DBA1 MEDIUM_TB_IX02 1973 94423
If you supplied proper execution plans we might be able to offer some advice.
Use dbms_xplan.
A list of the index definitions might also help
Regards
Jonathan Lewis -
This is the plan used for my query in my prod database.
10.2.0.3
In dev same oracle version, the plan is not doing bitmap conversion.
prod query time: 4minutes
dev query time:20 seconds
how can i tell oracle to stop bitmap conversing on me?
BTW, i have no bitmap index, weird.
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1934 | 267K| 3025 (1)| 00:00:37 |
| 1 | SORT ORDER BY | | 1934 | 267K| 3024 (25)| 00:00:37 |
| 2 | UNION-ALL | | | | | |
| 3 | MAT_VIEW ACCESS BY INDEX ROWID | MV_SONG | 92 | 14076 | 2304 (1)| 00:00:28 |
| 4 | BITMAP CONVERSION TO ROWIDS | | | | | |
| 5 | BITMAP AND | | | | | |
| 6 | BITMAP CONVERSION FROM ROWIDS| | | | | |
|* 7 | INDEX RANGE SCAN | IDX_MV_SONG_USCFALB | | | 417 (2)| 00:00:06 |
| 8 | BITMAP CONVERSION FROM ROWIDS| | | | | |
| 9 | SORT ORDER BY | | | | | |
|* 10 | DOMAIN INDEX | MV_SON_TITLE_FULLT_IDX | | | 1827 (0)| 00:00:22 |
| 11 | MAT_VIEW ACCESS BY INDEX ROWID | MV_SONG | 1842 | 253K| 720 (1)| 00:00:09 |
|* 12 | INDEX RANGE SCAN | IDXF_MV_SONG_SONTUSFALB | 737 | | 3 (0)| 00:00:01 |
----------------------------------------------------------------------------------------------------In dev same oracle version, the plan is not doing bitmap conversion.
prod query time: 4minutes
dev query time:20 secondsIs the amount of data in both databases the same?
If you want to switch off this behaviour you can change the value of the BTREE_BITMAP_PLANS parameter. (Actually it might not be an underscore parameter in 10.2 - I wouldn't know, I'm still on 9i). Of course, the usual caveats about tweaking underscore paarmters apply.
Niall Litchfield wrote an interesting article on this pararmeter aa couple of years back. You should read it.
Cheers, APC -
hi,my name is kutan.since i updated ios7 on my ipad;internet got very slow,i can not open facetime no more,i can not download or update anything from apple store! so this is just redicilous! please any help?
It is hardly Apple's fault that Epson can't/won't update their driver, but at least Epson suggest that you use the Gutenprint driver, which in any case is far better that what Epson offer.
You can get it here:
http://gimp-print.sourceforge.net/
You can download the latest version from here:
http://sourceforge.net/projects/gimp-print/
Have you downloaded the recent Apple update to Epson drivers?
http://support.apple.com/kb/DL1398 -
After updating to 10.6.8 internet browsing very slow
After doing the update 10.6.8 internet browsing became very slow on safari, chorme and firefox. Is there a solution to this problem.
Had the same problem
I then added some DNS servers to my network configuration and now speed is back to normal (pre 10.6.8)
This is how to add DNS servers
Find some IP address of a DNS server either from your Internet Provider or use one or more of these:
http://theos.in/windows-xp/free-fast-public-dns-server-list/
Test one or more DNS IP addresses by using nslookup
Open terminal (cmd + space type terminal)
In the terminal type
nslookup nasa.org 12.13.14.15
where 12.13.14.15 is the DNS IP server address you want to test
If it works it will respond:
Server: 192.168.1.1
Address: 192.168.1.1#53
Name: nasa.org
Address: 208.73.210.48
Now add one or more valid DNS IP address to the network settings:
In Systems settings / Network / Advanced choose the DNS tab
Press the + button and type the IP address of a valid DNS server
Press OK and then Apply
Now your browser should be back to its usual speed :-) -
have 2009 time capsule with 6 month old iMac very slow ...cox said to replace with new router or extreme with new wifi ???? confused
Replace the Time Capsule with a new one or replace your router with an Airport Extreme Base Station that has faster Wi-Fi. Or you could just connect your old Time Capsule using an Ethernet connection from the Time Capsule to the computer's Ethernet port.
-
Since I've up-dated iPad 2 with IOS7, the typing is very slow. What should I do ?
Since I've up-dated iPad 2 with IOS7, the typing is very slow. What should I do ?
(A) Reset all settings
Settings>General>Reset>Reset All Settings
Note: Data will not be affected but settings will be reset.
(B) Go to Settings>iCloud>Turn off Documents & Data>Restart your iPad. -
After recent updates, selecting with mouse in GTK3 apps failing
I can't pin this problem down, but it maybe seems to affect only GTK3 applications such as Bluefish, SpaceFM, Remmina, etc.
After a while, I can't use a mouse drag to select text - the cursor just stays put. However, double-left clicking can still select all the text.
I'm using a fully updated system with the GTK3 theme package: clearlooks-phenix-gtk-theme-git 3.0.15.0.g8ed3afb-1
The problem started 2 - 3 days ago I reckon.
Hope that somebody else has a better idea about what might be going on!
Edit: PS: Restarting the applications makes things work as expected again - for a while.
Last edited by ninian (2013-06-24 17:04:37)ninian wrote:
KairiTech wrote:I started experiencing the exact same symptoms at about the same time as you with Bluefish but I'm using a modified version of the omg-suite theme from the AUR.
Phew, I'm not alone then! Makes editing with Bluefish very frustrating indeed.
I should also have mentioned that I'm using Openbox, Tint2, and Parcellite as a "desktop environment".
Openbox here too but no panel or taskbar. -
Query with parameter as Array (UDT) very slow
Hi.
I have following Problem. I try to use Oracle Instant Client 11 and ODP.NET to pass Arrays in SELECT statements as Bind Parameters. I did it, but it runs very-very slow. Example:
- Inittial Query:
SELECT tbl1.field1, tbl1.field2, tbl2.field1, tbl2.field2 ... FROM tbl1
LEFT JOIN tbl2 ON tbl1.field11=tbl2.field0
LEFT JOIN tbl3 ON tbl2.field11=tbl3.field0 AND tbll1.field5=tbl3.field1
...and another LEFT JOINS
WHERE
tbl1.field0 IN ('id01', 'id02', 'id03'...)
this query with 100 elements in "IN" on my database takes 3 seconds.
- Query with Array bind:
in Oracle I did UDT: create or replace type myschema.mytype as table of varchar2(1000)
than, as described in Oracle Example I did few classes (Factory and implementing IOracleCustomType) and use it in Query,
instead of IN ('id01', 'id02', 'id03'...) I have tbl1.field0 IN (select column_value from table(:prmTable)), and :prmTable is bound array.
this query takes 190 seconds!!! Why? I works, but the HDD of Oracle server works very hard, and it takes too long.
Oracle server we habe 10g.
PS: I tried to use only 5 elements in array - the same result, it takes also 190 seconds...
Please help!I did (some time ago and it was a packaged procedure) something like
Procedure p(p_one in datatype,p_two in datatype,p_dataset out sys_refcursor) is
the_sql varchar2(32000);
the_cursor sys_refcursor;
begin
the_sql = 'WITH NOTIFICACAO AS( ' ||
' SELECT ' ||
' t1.cd_consultora, ' ||
' where t1.dt_notificacao_cn >= to_date(''01/09/2006'',''dd/mm/yyyy'') ' || -- note the ''
' where rownum <= :W_TO_REC) ' || -- parameter 1
' where r_linha >= :W_FROM_REC '; -- parameter 2
open the_cursor for the_sql using p_one,p_two; -- just by the book
end p;if I remember correctly
Regards
Etbin -
Mac Pro with OS mountain lion working very slow
I have a MacBook Pro with OSX 10.8.2. the mac is working very slow. It takes a lot of time to boot. Much longer than windows PC. Applications are also running very slow. How to speed up the mac and improve its performance? Plz help!!!
We're a workstation/tower forum.
Having more RAM has little or diminishing affect unless you are runnning apps that need and can use it (graphics being one, such as CS5 and later).
Many laptop owners and desktop like SSD for shorter boot (Mac always boots fast, quicker than Windows, use both).
If it were me I would
Backup of coure, TimeMachine and maybe one other method or set is useful, then do a clean install and reload the OS and let it do all the updates.
Most of the time after a lot of digging around and questions and answers, it gets down to "Did you install xyz" and a list of 3rd party programs, drivers and apps that you added that aren't part of the core OS or from Apple. Whether Norton (notorious) or some "cleaner" program or even something you need but which may not be compatible with or needed with OS X and Mountain Lion.
You can also set aside 100GB and run Windows natively as well as a guest VM OS.
Along with monitoring RAM, disk activity, I've seen RAM DIMMs that were 'loose' or not fully seated - even though Lion OS ran well the second that they tried to install Windows 7 on their MacBook Pro it had errors and could not complete. They had upgraded the RAM on their own. Just odd that OS X was that immune and insensitive.
But this is best off where others with the very same topic can be found in Mountain Lion and MacBook Pro forums. (we get way too many MBP in Mac Tower Pro) MacBook Pro
https://discussions.apple.com/community/notebooks/macbook_pro
https://discussions.apple.com/community/mac_os/
http://www.apple.com/support/macbookpro -
IPhone 3GS updated to 5.0.1 now running very slow?
I updated my iphone 3GS to the new system 5.0.1 and now it is very slow and sometimes I have to tap an app several times to get it to respond? Do I need to go back to the old version and can you?
I'll go backwards with my response.
Having restored my phone and reset all settings, operated phone as a new phone, didn't sync anything back onto it, etc., I installed only Tune in radion and it didn't play. I wiggled the dock cable about -the volume indicator kept changing and for a brief moment sound played. But, not for long.
I am thinking that there's something wrong with the dock connector.
Previously I had:
Checked all settings, plus switched off Bluetooth - didn't work.
cleaned headphone socket and switch on side which mutes sound - didn't work.
Restored the phone, without restoring any of my backed up data. Tested phone as a new phone - didn't work. Tried:
voice memo - this was fine
changing ring tones - this was fine
playing a song from iTunes store - not ok.
As a New Phone, installed one App - Tune In Radio - no sound. Get speaker icon at bottom, but no indication of its setting. When I click on sound mute on/off switch at side of phone, above volume controls, I see volume level, but can't control it.
Reset all settings, so had to switch of bluetooth again and re-enter WIFI. No affect on sound.
I've tried the above with and without headphones.
So, after much time wasting, my Music App and Tune in radio apps don't work, but ringtones and voice memo works. -
Very slow I Pad 2 since going to os6 many problems with loading apps. I have kept apps updated, looks like lots of bugs, are lacking, a mess over all just trying to do simple tasks getting on net,loading apps. Mud would move faster. So you know I have had only Apple since Apple has been.
Very slow I Pad 2 since going to os6 many problems with loading apps. I have kept apps updated, looks like lots of bugs, are lacking, a mess over all just trying to do simple tasks getting on net,loading apps. Mud would move faster. So you know I have had only Apple since Apple has been.
-
Some time ago I opened a link in an email from a friend and later found out that his email address had been hijacked. The site the link took me to seemed innocuous, but ever since it seems that from time to time that my internet connection is very slow, as if there is not enough band width. Is it possible that my computer is infected with some sort of malware? How can I determine that? If it is infected how can the malware be removed?
Here is the report.
Problem description:
I clicked on a link in a email from a hacked email account and since then my internet connection runs very slow at times. I am concerned that my iMac may be infected with some sort of Malware
EtreCheck version: 2.1.6 (109)
Report generated January 21, 2015 at 12:26:10 PM MST
Download EtreCheck from http://etresoft.com/etrecheck
Click the [Support] links for help with non-Apple products.
Click the [Details] links for more information about that line.
Click the [Adware] links for help removing adware.
Hardware Information: ℹ️
iMac (21.5-inch, Late 2009) (Technical Specifications)
iMac - model: iMac10,1
1 3.06 GHz Intel Core 2 Duo CPU: 2-core
12 GB RAM Upgradeable
BANK 0/DIMM0
4 GB DDR3 1067 MHz ok
BANK 1/DIMM0
4 GB DDR3 1067 MHz ok
BANK 0/DIMM1
2 GB DDR3 1067 MHz ok
BANK 1/DIMM1
2 GB DDR3 1067 MHz ok
Bluetooth: Old - Handoff/Airdrop2 not supported
Wireless: en1: 802.11 a/b/g/n
Video Information: ℹ️
NVIDIA GeForce 9400 - VRAM: 256 MB
iMac 1920 x 1080
System Software: ℹ️
OS X 10.10.1 (14B25) - Time since boot: 1:8:36
Disk Information: ℹ️
WDC WD5000AAKS-40V2B0 disk0 : (500.11 GB)
EFI (disk0s1) <not mounted> : 210 MB
Macintosh HD (disk0s2) / : 499.25 GB (398.65 GB free)
Recovery HD (disk0s3) <not mounted> [Recovery]: 650 MB
PIONEER DVD-RW DVRTS09
USB Information: ℹ️
Apple Inc. Built-in iSight
Apple Internal Memory Card Reader
Apple Computer, Inc. IR Receiver
Apple Inc. BRCM2046 Hub
Apple Inc. Bluetooth USB Host Controller
Gatekeeper: ℹ️
Mac App Store and identified developers
Kernel Extensions: ℹ️
/Library/Extensions
[loaded] com.symantec.kext.SymAPComm (12.7.1f4 - SDK 10.8) [Support]
[loaded] com.symantec.kext.filesecurity (12.7f4 - SDK 10.8) [Support]
[loaded] com.symantec.kext.fw (5.3.1f4 - SDK 10.8) [Support]
[loaded] com.symantec.kext.internetSecurity (5.4f4 - SDK 10.8) [Support]
[loaded] com.symantec.kext.ips (3.9.2f1 - SDK 10.8) [Support]
[loaded] com.symantec.kext.pf (5.7.1f4 - SDK 10.8) [Support]
/System/Library/Extensions
[not loaded] com.seagate.driver.PowSecDriverCore (5.2.4 - SDK 10.4) [Support]
/System/Library/Extensions/Seagate Storage Driver.kext/Contents/PlugIns
[not loaded] com.seagate.driver.PowSecLeafDriver_10_4 (5.2.4 - SDK 10.4) [Support]
[not loaded] com.seagate.driver.PowSecLeafDriver_10_5 (5.2.4 - SDK 10.5) [Support]
[not loaded] com.seagate.driver.SeagateDriveIcons (5.2.4 - SDK 10.4) [Support]
Launch Agents: ℹ️
[running] com.brother.LOGINserver.plist [Support]
[loaded] com.google.keystone.agent.plist [Support]
[loaded] com.symantec.errorreporter-periodicagent.plist [Support]
[loaded] com.symantec.nis.application.plist [Support]
[running] com.symantec.uiagent.application.plist [Support]
Launch Daemons: ℹ️
[loaded] com.adobe.fpsaud.plist [Support]
[running] com.fitbit.galileod.plist [Support]
[loaded] com.google.keystone.daemon.plist [Support]
[running] com.sec.faxdb.plist [Support]
[running] com.symantec.deepsight-extractor.plist [Support]
[loaded] com.symantec.errorreporter-periodic.plist [Support]
[loaded] com.symantec.liveupdate.daemon.ondemand.plist [Support]
[loaded] com.symantec.liveupdate.daemon.plist [Support]
[invalid?] com.symantec.MissedTasks.plist [Support]
[not loaded] com.symantec.nav.migrateqtf.plist [Support]
[invalid?] com.symantec.Sched501-1.plist [Support]
[running] com.symantec.sharedsettings.plist [Support]
[running] com.symantec.symdaemon.plist [Support]
[invalid?] com.symantec.symSchedDaemon.plist [Support]
User Launch Agents: ℹ️
[loaded] com.adobe.ARM.[...].plist [Support]
[invalid?] com.google.GoogleContactSyncAgent.plist [Support]
User Login Items: ℹ️
Microsoft AU Daemon Application (/Applications/Microsoft AutoUpdate.app/Contents/MacOS/Microsoft AU Daemon.app)
Fitbit Connect Menubar Helper Application (/Applications/Fitbit Connect.app/Contents/MacOS/Fitbit Connect Menubar Helper.app)
Internet Plug-ins: ℹ️
o1dbrowserplugin: Version: 5.38.6.0 - SDK 10.8 [Support]
Default Browser: Version: 600 - SDK 10.10
Flip4Mac WMV Plugin: Version: 2.3.8.1 [Support]
AdobePDFViewerNPAPI: Version: 11.0.10 - SDK 10.6 [Support]
FlashPlayer-10.6: Version: 16.0.0.257 - SDK 10.6 [Support]
Silverlight: Version: 5.1.30317.0 - SDK 10.6 [Support]
Flash Player: Version: 16.0.0.257 - SDK 10.6 [Support]
iPhotoPhotocast: Version: 7.0
googletalkbrowserplugin: Version: 5.38.6.0 - SDK 10.8 [Support]
QuickTime Plugin: Version: 7.7.3
AdobePDFViewer: Version: 11.0.10 - SDK 10.6 [Support]
CouponPrinter-FireFox_v2: Version: Version 1.1.6 [Support]
GarminGpsControl: Version: 2.9.3.0 Release [Support]
NortonInternetSecurityBF: Version: 1.11.0 - SDK 10.6 [Support]
JavaAppletPlugin: Version: 15.0.0 - SDK 10.10 Check version
User internet Plug-ins: ℹ️
Google Earth Web Plug-in: Version: 7.1 [Support]
Safari Extensions: ℹ️
Norton Internet Security [Installed]
3rd Party Preference Panes: ℹ️
Flash Player [Support]
Flip4Mac WMV [Support]
Norton\nQuickMenu [Support]
Time Machine: ℹ️
Skip System Files: NO
Mobile backups: OFF
Auto backup: NO - Auto backup turned off
Volumes being backed up:
Macintosh HD: Disk size: 499.25 GB Disk used: 100.60 GB
Destinations:
Seagate Backup Plus Drive [Local]
Total size: 1.00 TB
Total number of backups: 15
Oldest backup: 2013-08-01 22:49:49 +0000
Last backup: 2014-11-06 19:34:10 +0000
Size of backup disk: Adequate
Backup size 1.00 TB > (Disk used 100.60 GB X 3)
Top Processes by CPU: ℹ️
5% WindowServer
1% Fitbit Connect Menubar Helper
0% fontd
0% AppleSpell
0% launchservicesd
Top Processes by Memory: ℹ️
580 MB com.apple.dock.extra
322 MB SymDaemon
206 MB Google Chrome
168 MB spindump
155 MB mds_stores
Virtual Memory Information: ℹ️
7.46 GB Free RAM
2.59 GB Active RAM
1.51 GB Inactive RAM
1.05 GB Wired RAM
2.56 GB Page-ins
0 B Page-outs
Diagnostics Information: ℹ️
Jan 21, 2015, 11:23:52 AM /Library/Logs/DiagnosticReports/rpcsvchost_2015-01-21-112352_[redacted].cpu_res ource.diag [Details]
Jan 21, 2015, 11:18:14 AM Self test - passed
Maybe you are looking for
-
How to move pdf files into iCloud drive folder
Now that we can have a folder called, say "personal" with pages, numbers and other files in - how can I get my pdf files that are currently in iBooks into these iCloud drive folders. I don't even know where the pdfs from iBooks are! Certainly not in
-
What's in YOUR Pictures folder?
Is there any problem with using the Pictures folder in the Finder to hold every image on your Mac without any hierarchy or additional folders for order? Is it wrong or dangerous to simply dump thousands of images here without any attempt at file mana
-
What is the difference between 9i standard edition and enterprise edition
hi, who can tell me what is the difference between ora 9i standard edition and enterprise edition?? relevant http links are also appreciated. thank you! regards, iron teung.
-
Freezing after 10.7.5 update
I've got a Mid 2010 Macbook Pro 17 inch with 8GB of RAM and a 512G SSD. Was running like a champ. However, when I updated to 10.7.5, I've had repeated issues with apps freezing. At first, it was only happening with Eclipse, which seemed to be reso
-
firefox 26 doesn't work with comcast email. won't keep me signed in; won't show whole inbox in either full or lite; won't allow me to get to preferences; drop downs only work with arrows. I could just keep going. Earlier this week they worked fine.