Optimizer ignoring the advice? or instant messages, something wrong...
I have an update that updates records of 500-600 k. This is part of the very sensitive process in order to lock the execution plan im using tips. Advice was my last resort. Anyway, when I explained the plan he uses HASH JOIN. It uses in the production as well. but in the load test, explain plan shows the JOIN by HASH, but when running, I think that it displays the variable bing and don't LOOP IMBRIQUEE? don't know why? If I remove hint USE_HASH explain shows nested loop... I created outline to see what oracle will do, and using its similar (same not) advice,... I use tips in the wrong way or optimizer something wrong? If the plan uses HASHJOIN its been in 10 minutes if this plan uses the NESTEDLOOP we had to kill the process after 30-40 minutes. What is happening in our environment loadtest, works in prod (wants to say that there is not a problem, it's not today)UPDATE
(SELECT / * +)
QB_NAME (MAIN_EDR)
USE_HASH (@SUBQ_MMT mmt0)
ATTACK (rec0 mmt0)
INDEX_RS (@SUBQ_MMT mmt0 PSP_MONEY_MOVEMENT_TRANSAC_FK3)
INDEX_RS (rec0 PSP_ENTRY_DETAIL_RECORD_I2)
UNNEST (@SUBQ_MMT)
MERGE (@MAIN_EDR)
*/
REC0. ENTRY_DETAIL_RECORD_SEQ,
REC0.trace_number,
REC0. N_A_C_H_A_FILE_FK,
REC0. RECORD_DATA,
REC0. Version
REC0. MODIFIER_ID,
REC0. MODIFIED_DATE
OF PSP_ENTRY_DETAIL_RECORD rec0
WHERE
REC0. N_A_C_H_A_FILE_FK is null
AND rec0.initiation_date =: p_offload_date
- AND REC0. RECORD_DATA IS NOT NULL
AND rec0. N_A_C_H_A_FILE_TYPE =: p_nacha_file_type
AND EXISTS (SELECT / * + qb_name (SUBQ_MMT) * /)
' T '
OF PSP_MONEY_MOVEMENT_TRANSACTION mmt0
WHERE REC0. MONEY_MOVEMENT_TRANSACTION_FK = MMT0. MONEY_MOVEMENT_TRANSACTION_SEQ
AND mmt0.offload_batch_fk =: p_offload_batch_id)
ORDER BY rec0. LEGAL_NAME, rec0.COMPANY_fk, REC0. N_A_C_H_A_BATCH_TYPE, REC0. RECORD_DATA, REC0. AMOUNT, REC0. ENTRY_DETAIL_RECORD_SEQ
) CBC
SET
TRACE_NUMBER = decode (nvl(record_data,'0'),'0 ', null, seq_trace_number.nextval);
N_A_C_H_A_FILE_FK =: v_nacha_file_id,
VERSION = VERSION + 1,
MODIFIER_ID =: p_user_id,
MODIFIED_DATE =: v_utc_date
SQL > SELECT * FROM table (DBMS_XPLAN. DISPLAY);
Hash value of plan: 2695729968
----------------------------------------------------------------------------------------------------
| ID | Operation | Name | Lines | Bytes | TempSpc | Cost (% CPU). Time | Pstart. Pstop |
----------------------------------------------------------------------------------------------------
| 2 ¾ UPDATE STATEMENT. 13004. 4330K | 31595 (1) | 00:06:20 |
| 1. UPDATE | PSP_ENTRY_DETAIL_RECORD |
| 2. SEQUENCE | SEQ_TRACE_NUMBER |
| 3. SORT ORDER BY | 13004. 4330K | 9064K | 31595 (1) | 00:06:20 |
|* 4 | SEMI HASH JOIN | 13004. 4330K | 3560K | 30644 (1) | 00:06:08 |
| 5. RANGE OF SINGLE PARTITION | 13004. 3403K | 20532 (1) | 00:04:07 | KEY |
|* 6 | TABLE ACCESS BY LOCAL INDEX ROWID | PSP_ENTRY_DETAIL_RECORD | 13004. 3403K | 20532
|* 7 | INDEX RANGE SCAN | PSP_ENTRY_DETAIL_RECORD_I2 | 429K | | 1772 (1) | 00:0
| 8. TABLE ACCESS BY INDEX ROWID | PSP_MONEY_MOVEMENT_TRANSACTION | 194K | 13 M |
|* 9 | INDEX RANGE SCAN | PSP_MONEY_MOVEMENT_TRANSAC_FK3 | 194K | | 2168 (1) | 0
----------------------------------------------------------------------------------------------------
Information of predicates (identified by the operation identity card):
---------------------------------------------------
4 - access("REC0".") MONEY_MOVEMENT_TRANSACTION_FK "= 'MMT0'." MONEY_MOVEMENT_TRANSACTION_SEQ')
6 - filter("REC0".") N_A_C_H_A_FILE_FK' IS NULL AND 'REC0 '. ' N_A_C_H_A_FILE_TYPE ' =: P_NACHA_FILE_TYPE.
7 - access("REC0".") INITIATION_DATE '= TO_TIMESTAMP (:P_OFFLOAD_DATE)).
9 - access("MMT0".") OFFLOAD_BATCH_FK "(=:P_OFFLOAD_BATCH_ID)"
24 selected lines.
But during the actual performance, it changes the nested loop join...
-----------------------------------------------------------------------------------------------------------------------
| ID | Operation | Name | E - lines. OMem | 1Mem | Used Mem.
-----------------------------------------------------------------------------------------------------------------------
| 1. UPDATE | PSP_ENTRY_DETAIL_RECORD |
| 2. SEQUENCE | SEQ_TRACE_NUMBER |
| 3. SORT ORDER BY | 1. 73728 | 73728 |
|* 4 | TABLE ACCESS BY LOCAL INDEX ROWID | PSP_ENTRY_DETAIL_RECORD | 1 | | | |
| 5. NESTED LOOPS | 1 | | | |
| 6. UNIQUE FATE | 1. 73728 | 73728 |
| 7. TABLE ACCESS BY INDEX ROWID | PSP_MONEY_MOVEMENT_TRANSACTION | 1 | | | |
|* 8 | INDEX RANGE SCAN | PSP_MONEY_MOVEMENT_TRANSAC_FK3 | 1 | | | |
| 9. RANGE OF SINGLE PARTITION | 226K | |
| * 10 | INDEX RANGE SCAN | PSP_ENTRY_DETAIL_RECORD_I2 | 226K | |
-----------------------------------------------------------------------------------------------------------------------
AFTER THE CREATION OF SKETCH
SQL > SELECT * from user_outline_hints;
NAME NŒUD STADIUM JOIN_POS HINT
------------------------------ ---------- ---------- ---------- ------------------------------------
BDU 1 1 0 USE_HASH (@"SALT$ 798CEC2A" "MMT0"@"SUBQ_MMT")
BDU 1 1 0 LEADING (@"SALT$ 798CEC2A" "REC0"@"MAIN_EDR" "MMT0"@"SUBQ_MMT")
1 1 2 INDEX_RS_ASC BDUS (@"SALT$ 798CEC2A" "MMT0"@"SUBQ_MMT" ("PSP_MONEY_MOVEMENT_TRANSACTI)
1 1 1 INDEX_RS_ASC BDUS (@"SALT$ 798CEC2A" "REC0"@"MAIN_EDR" ("PSP_ENTRY_DETAIL_RECORD".) "EN
BDU 1 1 0 OUTLINE(@"MAIN_EDR")
BDU 1 1 0 OUTLINE(@"UPD$1")
BDU 1 1 0 OUTLINE(@"SUBQ_MMT")
BDU 1 1 0 MERGE(@"MAIN_EDR")
BDU 1 1 0 OUTLINE(@"SEL$0E53DE07")
BDU 1 1 0 UNNEST(@"SUBQ_MMT")
BDU 1 1 0 OUTLINE_LEAF(@"SEL$798CEC2A")
NAME NŒUD STADIUM JOIN_POS HINT
------------------------------ ---------- ---------- ---------- ------------------------------------
1 1 ALL_ROWS BDUS 0
BDU 1 1 0 OPTIMIZER_FEATURES_ENABLE ('10.2.0.3')
BDU 1 1 0 IGNORE_OPTIM_EMBEDDED_HINTS
14 selected lines.
Published by: user8846248 on December 17, 2009 12:18
Published by: user8846248 on December 17, 2009 12:20
I guess you have a point there. I always had the feeling that boards are very little documented. If they had the proper documentation, people won't make some common mistakes. I understand better advice after reading your blog/book is better than the documentation. Thanks for the good work and please continue.
Tags: Database
Similar Questions
-
Is it possible to play different sounds for the emails and instant messages?
Hello
I was wondering if it was possible to play different sounds for the emails and instant messages. I use Thunderbird quite often with emails and instant messages imported from Gtalk.
I think it would be very convenient to be able to distinguish the two sounds, because they do not involve the same things.
Thank you very much.
Olivier Hubert.
There are only six modules of cat, three of them are on notifications. Choose the one you think will do the job for you. https://addons.Mozilla.org/en-us/Thunderbird/Extensions/chat/?sort=popular
-
The case of the history of instant messaging and chat that disappears
I use Skype desktop client on my Windows 7 pc with no problems for a long time. Since a few weeks back, I met a problem when connected: a message flashes on my screen and active become Skype icon in the taskbar, but when I go to the client computer, it does not display the message or any chat history. The text "see the messages of" is visible, but it's empty. The only way to receive messages is to have the sender of the specific group or contact highlighted in the application.
Messages and history indicate with precision on my iPad version of Skype.
I use the latest version of Skype (6.10) and I did not any changes to the settings of my story (forever).
I ran the SkypeLogView.exe as suggested in previous conversations and it has not registered any historical cats since November 4.
Please help me to restore the correct settings for the receipt of messages and to maintain history in the desktop client for now and in the future. I don't like lost history.
Have you recently received a file named "invoice - pdf.exe" or similar?
http://community.Skype.com/T5/security-privacy-trust-and/invoice-xxxxxx-PDF-virus/m-p/2057677#M23667
-
I use Oracle 10 g R2.
I want advice to a view, but they are not honored.
CREATE VIEW V AS SELECT DT.UNIQUE_ID, DT.INFO_ID AS BATCH_REFERENCE, DT.INSTRUCTION_ID AS TR_REFERENCE, DT.TOTAL_TRANSACTION_NO AS NO_OF_TRANSACTIONS, FROM MY_PAYMENT DT JOIN MY_STATUS ST ON DT.BATCH_STATUS = ST.STATUS;
Now when I run the query below, then tips are ignored. However if I switch the indicator INDEX directly in the SELECT above in the view definition, tips are honored.
SELECT /*+ INDEX(V.DT) */ * FROM V
Can you help me?
Elya wrote:
So, what is the purpose underlying using a HINT to force an index scan?
In fact, the work of collecting statistics takes more than 16 hours to complete. The reason why most of the time, the generated plan are not optimized to the lack of up-to-date statistics.
In this case try to sidestep the real problem for help is not a good idea for me. Any ways, you will need to use the GLOBAL INDICATION when you use the VIEW.
Oracle it documented in detail. You can read it here
http://docs.Oracle.com/CD/B19306_01/server.102/b14211/hintsref.htm#i22065
Below is a simple example using the table EMP and DEPT.
Here's the view
SQL > create view v
2 as
3 select d.dname, e.ename
e emp 4 join dept d
5 we e.deptno = d.deptno;Created view.
Now plan for the query with and without suspicion
SQL > explain the plan for
2. Select e.ename, d.dname from emp e join dept d e.deptno = d.deptno;He explained.
SQL > select * from table (dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------
Hash value of plan: 14164142----------------------------------------------------------------------------------------
| ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time |
----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 11. 242. 4 (25) | 00:00:01 |
| 1. THE MERGE JOIN. | 11. 242. 4 (25) | 00:00:01 |
| 2. TABLE ACCESS BY INDEX ROWID | DEPT | 4. 52. 1 (0) | 00:00:01 |
| 3. INDEX SCAN FULL | DEPT_PK | 4. | 1 (0) | 00:00:01 |
|* 4 | JOIN TYPE. | 11. 99. 3 (34) | 00:00:01 |
| 5. TABLE ACCESS FULL | EMP | 11. 99. 2 (0) | 00:00:01 |
----------------------------------------------------------------------------------------Information of predicates (identified by the operation identity card):
---------------------------------------------------4 - access("E".") DEPTNO "=" D ". ("' DEPTNO ')
filter ("E". "DEPTNO"="D" "." " DEPTNO')18 selected lines.
SQL > explain the plan for
2 Select / * + INDEX (emp_pk e) * / e.ename, d.dname e emp join dept d on e.deptno = d.deptno;He explained.
SQL > select * from table (dbms_xplan.display);
PLAN_TABLE_OUTPUT
-----------------------------------------------------------------------------------------
Hash value of plan: 2399836226-----------------------------------------------------------------------------------------
| ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time |
-----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 11. 242. 3 (34) | 00:00:01 |
| 1. THE MERGE JOIN. | 11. 242. 3 (34) | 00:00:01 |
| 2. TABLE ACCESS BY INDEX ROWID | DEPT | 4. 52. 1 (0) | 00:00:01 |
| 3. INDEX SCAN FULL | DEPT_PK | 4. | 1 (0) | 00:00:01 |
|* 4 | JOIN TYPE. | 11. 99. 2 (50) | 00:00:01 |
| 5. TABLE ACCESS BY INDEX ROWID | EMP | 11. 99. 1 (0) | 00:00:01 |
| 6. INDEX SCAN FULL | EMP_PK | 11. | 1 (0) | 00:00:01 |
-----------------------------------------------------------------------------------------Information of predicates (identified by the operation identity card):
---------------------------------------------------4 - access("E".") DEPTNO "=" D ". ("' DEPTNO ')
filter ("E". "DEPTNO"="D" "." " DEPTNO')19 selected lines.
Now plan for the query on the view with and without suspicion
SQL > explain the plan for
2 Select * from v;He explained.
SQL > select * from table (dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------
Hash value of plan: 14164142----------------------------------------------------------------------------------------
| ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time |
----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 11. 242. 4 (25) | 00:00:01 |
| 1. THE MERGE JOIN. | 11. 242. 4 (25) | 00:00:01 |
| 2. TABLE ACCESS BY INDEX ROWID | DEPT | 4. 52. 1 (0) | 00:00:01 |
| 3. INDEX SCAN FULL | DEPT_PK | 4. | 1 (0) | 00:00:01 |
|* 4 | JOIN TYPE. | 11. 99. 3 (34) | 00:00:01 |
| 5. TABLE ACCESS FULL | EMP | 11. 99. 2 (0) | 00:00:01 |
----------------------------------------------------------------------------------------Information of predicates (identified by the operation identity card):
---------------------------------------------------4 - access("E".") DEPTNO "=" D ". ("' DEPTNO ')
filter ("E". "DEPTNO"="D" "." " DEPTNO')18 selected lines.
We now use GLOBAL TABLE HINT
SQL > explain the plan for
2 select / * + INDEX (@SEL$ 2 emp_pk e) * / * v;He explained.
SQL > select * from table (dbms_xplan.display);
PLAN_TABLE_OUTPUT
-----------------------------------------------------------------------------------------
Hash value of plan: 2399836226-----------------------------------------------------------------------------------------
| ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time |
-----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 11. 242. 3 (34) | 00:00:01 |
| 1. THE MERGE JOIN. | 11. 242. 3 (34) | 00:00:01 |
| 2. TABLE ACCESS BY INDEX ROWID | DEPT | 4. 52. 1 (0) | 00:00:01 |
| 3. INDEX SCAN FULL | DEPT_PK | 4. | 1 (0) | 00:00:01 |
|* 4 | JOIN TYPE. | 11. 99. 2 (50) | 00:00:01 |
| 5. TABLE ACCESS BY INDEX ROWID | EMP | 11. 99. 1 (0) | 00:00:01 |
| 6. INDEX SCAN FULL | EMP_PK | 11. | 1 (0) | 00:00:01 |
-----------------------------------------------------------------------------------------Information of predicates (identified by the operation identity card):
---------------------------------------------------4 - access("E".") DEPTNO "=" D ". ("' DEPTNO ')
filter ("E". "DEPTNO"="D" "." " DEPTNO')19 selected lines.
SQL >
-
"Read" notice on the application of instant messaging, a question?
IM Apple allows you to send a notice as a snapshot message was 'delivered '. I understand what it means. Recently, the opinion has changed to 'read '. I do not understand how the IM application knows whether or not the message has been read. I usually leave my IM window open when I use this app. It is therefore impossible to know whether or not I've read a message. I guess that more than others to do this. So that the 'read' notice means?
Messages has an option in the preferences/Messages/accounts, which allows the recipient to send read receipts.
-
I want the cc2015 of ch, but something wrong! QAQ
Exit Code: 34 Please see specific errors below for troubleshooting. For example, ERROR: -------------------------------------- Summary -------------------------------------- - 1 fatal error(s), 0 error(s) FATAL: Payload 'Camera Profiles Installer 9.0.0.23 {3F023875-4A52-4605-9DB6-A88D4A813E8D}' information not found in Media_db. -------------------------------------------------------------------------------------
Maybe this link helps: Exit Code: 34
-
ignore the global settings of advice
Hi all
I know that I can put "ignore the advice" for the current session.
Is it possible to put it globally for all sessions?
ALTER session set '_optimizer_ignore_hints' = TRUE;
works for me, at the level of the session or the instance:
orclz > alter system set '_optimizer_ignore_hints' = false;
Modified system.
orclz > select / * + full (emp) * / * from emp where empno = 1000;
no selected line
Execution plan
----------------------------------------------------------
Hash value of plan: 3956160932
--------------------------------------------------------------------------
| ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1. 38. 3 (0) | 00:00:01 |
|* 1 | TABLE ACCESS FULL | EMP | 1. 38. 3 (0) | 00:00:01 |
--------------------------------------------------------------------------
Information of predicates (identified by the operation identity card):
---------------------------------------------------
1 - filter ("EMPNO" = 1000)
orclz > alter system set '_optimizer_ignore_hints' = TRUE;
Modified system.
orclz > select * from emp where empno = 1000;
no selected line
Execution plan
----------------------------------------------------------
Hash value of plan: 2949544139
--------------------------------------------------------------------------------------
| ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time |
--------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1. 38. 1 (0) | 00:00:01 |
| 1. TABLE ACCESS BY INDEX ROWID | EMP | 1. 38. 1 (0) | 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | PK_EMP | 1. | 0 (0) | 00:00:01 |
--------------------------------------------------------------------------------------
Information of predicates (identified by the operation identity card):
---------------------------------------------------
2 - access ("EMPNO" = 1000)
orclz > select / * + full (emp) * / * from emp where empno = 1000;
no selected line
Execution plan
----------------------------------------------------------
Hash value of plan: 2949544139
--------------------------------------------------------------------------------------
| ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time |
--------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1. 38. 1 (0) | 00:00:01 |
| 1. TABLE ACCESS BY INDEX ROWID | EMP | 1. 38. 1 (0) | 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | PK_EMP | 1. | 0 (0) | 00:00:01 |
--------------------------------------------------------------------------------------
Information of predicates (identified by the operation identity card):
---------------------------------------------------
2 - access ("EMPNO" = 1000)
orclz >
orclz >
Post edited by: JohnWatson
Update: corrected the police.
-
Blocking of Instant Messaging Services
From the outset, I would like to say thank you to all who take the time to read this message.
We seek to improve our current content filters for some of our partner sites. Fortunately, at each location we run the routers that support the latest version 12.4 mainline and up to 15T 7 of 12.4 T of output.
At the moment we use NBAR to filter P2P traffic and a variety of URL broadband bandwidth hogs. Support IM seem somewhat NBAR capabilities corresponding to this day, but I see that the Application Firewall service is now support IM application to a higher degree.
http://www.Cisco.com/en/us/docs/iOS/12_4t/12_4t4/ht_fw_im.html
By reading the documentation, I noticed that the server IP addresses or FQDNs must be identified for the process to function properly. I have difficulties to locate all possible host names or IP addresses for servers AIM, MSN and YAHOO and was curious to know what other definition of a similar security policy used. I use a very basic to match regular crackdown on * yahoo *, for instance, but my understanding of the process is that it will block all communications to the server defined, which would mean that efforts to communicate with servers Web of Yahoo would be blocked.
Thanks again for your time and any help is greatly appreciated.
UPDATE *.
I have implemented this in a few places and it works exactly as expected. Using a regular expression base for the corresponding server setting allows the router to classify the IM traffic to these servers without interfering with Web traffic to servers that share the same domain name.
Take a look at these links regarding the blocking of instant messaging traffic:
http://doc.pfSense.org/index.php/FAQ_how_do_I_block_instant_messengers
http://forums.OpenDNS.com/comments.php?DiscussionID=570
Please rate if useful.
Concerning
Farrukh
-
Disable Instant Messaging on Jabber
Is there a way to disable only the feature of instant messaging on Jabber? I want to see the State and make calls, but simply not Messaging. Is this possible?
Yes, you can turn on/off IM on CUPS/IM & P, bear in mind, this is a global setting.
-
Why the optimizer ignores Index Fast full Scan when much lower cost?
Summary (tracking details below) - to improve the performance of a query on more than one table, I created an index on a table that included all the columns referenced in the query. With the new index in place the optimizer is still choosing a full Table Scan on an Index fast full scan. However, by removing the one query tables I reach the point where the optimizer suddenly use the Index Fast Full Scan on this table. And 'Yes', it's a lot cheaper than the full Table Scan it used before. By getting a test case, I was able to get the motion down to 4 tables with the optimizer still ignoring the index and table of 3, it will use the index.
So why the optimizer not chooses the Index Fast Full Scan, if it is obvious that it is so much cheaper than a full Table Scan? And why the deletion of a table changes how the optimizer - I don't think that there is a problem with the number of join permutations (see below). The application is so simple that I can do, while remaining true to the original SQL application, and it still shows this reversal in the choice of access path. I can run the queries one after another, and he always uses a full Table Scan for the original query and Index fast full scan for the query that is modified with a table less.
Watching trace 10053 output for the two motions, I can see that for the original query 4 table costs alone way of ACCESS of TABLE UNIQUE section a full Table Scan. But for the modified query with a table less, the table now has a cost for an Index fast full scan also. And the end of the join cost 10053 does not end with a message about exceeding the maximum number of permutations. So why the optimizer does not cost the IFFS for the first query, when it does for the second, nearly identical query?
This is potentially a problem to do with OUTER joins, but why? The joins between the tables do not change when the single extra table is deleted.
It's on 10.2.0.5 on Linux (Oracle Enterprise Linux). I did not define special settings I know. I see the same behavior on 10.2.0.4 32-bit on Windows (XP).
Thank you
John
Blog of database Performance
DETAILS
I've reproduced the entire scenario via SQL scripts to create and populate the tables against which I can then run the queries. I've deliberately padded table so that the length of the average line of data generated is similar to that of the actual data. In this way the statistics should be similar on the number of blocks and so forth.
System - uname - a
Database - v$ versionLinux mysystem.localdomain 2.6.32-300.25.1.el5uek #1 SMP Tue May 15 19:55:52 EDT 2012 i686 i686 i386 GNU/Linux
Original query (complete table below details):Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Prod PL/SQL Release 10.2.0.5.0 - Production CORE 10.2.0.5.0 Production TNS for Linux: Version 10.2.0.5.0 - Production NLSRTL Version 10.2.0.5.0 - Production
Execution of display_cursor after the execution plan:SELECT episode.episode_id , episode.cross_ref_id , episode.date_required , product.number_required , request.site_id FROM episode LEFT JOIN REQUEST on episode.cross_ref_id = request.cross_ref_id JOIN product ON episode.episode_id = product.episode_id LEFT JOIN product_sub_type ON product.prod_sub_type_id = product_sub_type.prod_sub_type_id WHERE ( episode.department_id = 2 and product.status = 'I' ) ORDER BY episode.date_required ;
Updated the Query:SQL_ID 5ckbvabcmqzw7, child number 0 ------------------------------------- SELECT episode.episode_id , episode.cross_ref_id , episode.date_required , product.number_required , request.site_id FROM episode LEFT JOIN REQUEST on episode.cross_ref_id = request.cross_ref_id JOIN product ON episode.episode_id = product.episode_id LEFT JOIN product_sub_type ON product.prod_sub_type_id = product_sub_type.prod_sub_type_id WHERE ( episode.department_id = 2 and product.status = 'I' ) ORDER BY episode.date_required Plan hash value: 3976293091 ----------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | ----------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | | | | 35357 (100)| | | 1 | SORT ORDER BY | | 33333 | 1920K| 2232K| 35357 (1)| 00:07:05 | | 2 | NESTED LOOPS OUTER | | 33333 | 1920K| | 34879 (1)| 00:06:59 | |* 3 | HASH JOIN OUTER | | 33333 | 1822K| 1728K| 34878 (1)| 00:06:59 | |* 4 | HASH JOIN | | 33333 | 1334K| | 894 (1)| 00:00:11 | |* 5 | TABLE ACCESS FULL| PRODUCT | 33333 | 423K| | 103 (1)| 00:00:02 | |* 6 | TABLE ACCESS FULL| EPISODE | 299K| 8198K| | 788 (1)| 00:00:10 | | 7 | TABLE ACCESS FULL | REQUEST | 3989K| 57M| | 28772 (1)| 00:05:46 | |* 8 | INDEX UNIQUE SCAN | PK_PRODUCT_SUB_TYPE | 1 | 3 | | 0 (0)| | ----------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 3 - access("EPISODE"."CROSS_REF_ID"="REQUEST"."CROSS_REF_ID") 4 - access("EPISODE"."EPISODE_ID"="PRODUCT"."EPISODE_ID") 5 - filter("PRODUCT"."STATUS"='I') 6 - filter("EPISODE"."DEPARTMENT_ID"=2) 8 - access("PRODUCT"."PROD_SUB_TYPE_ID"="PRODUCT_SUB_TYPE"."PROD_SUB_TYPE_ID")
Execution of display_cursor after the execution plan:SELECT episode.episode_id , episode.cross_ref_id , episode.date_required , product.number_required , request.site_id FROM episode LEFT JOIN REQUEST on episode.cross_ref_id = request.cross_ref_id JOIN product ON episode.episode_id = product.episode_id WHERE ( episode.department_id = 2 and product.status = 'I' ) ORDER BY episode.date_required ;
Creating the table and Population:SQL_ID gbs74rgupupxz, child number 0 ------------------------------------- SELECT episode.episode_id , episode.cross_ref_id , episode.date_required , product.number_required , request.site_id FROM episode LEFT JOIN REQUEST on episode.cross_ref_id = request.cross_ref_id JOIN product ON episode.episode_id = product.episode_id WHERE ( episode.department_id = 2 and product.status = 'I' ) ORDER BY episode.date_required Plan hash value: 4250628916 ---------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | ---------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | | | | 10515 (100)| | | 1 | SORT ORDER BY | | 33333 | 1725K| 2112K| 10515 (1)| 00:02:07 | |* 2 | HASH JOIN OUTER | | 33333 | 1725K| 1632K| 10077 (1)| 00:02:01 | |* 3 | HASH JOIN | | 33333 | 1236K| | 894 (1)| 00:00:11 | |* 4 | TABLE ACCESS FULL | PRODUCT | 33333 | 325K| | 103 (1)| 00:00:02 | |* 5 | TABLE ACCESS FULL | EPISODE | 299K| 8198K| | 788 (1)| 00:00:10 | | 6 | INDEX FAST FULL SCAN| IX4_REQUEST | 3989K| 57M| | 3976 (1)| 00:00:48 | ---------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 2 - access("EPISODE"."CROSS_REF_ID"="REQUEST"."CROSS_REF_ID") 3 - access("EPISODE"."EPISODE_ID"="PRODUCT"."EPISODE_ID") 4 - filter("PRODUCT"."STATUS"='I') 5 - filter("EPISODE"."DEPARTMENT_ID"=2)
1 create tables
2. load data
3 create indexes
4. collection of statistics
10053 sections - original query-- -- Main table -- create table episode ( episode_id number (*,0), department_id number (*,0), date_required date, cross_ref_id varchar2 (11), padding varchar2 (80), constraint pk_episode primary key (episode_id) ) ; -- -- Product tables -- create table product_type ( prod_type_id number (*,0), code varchar2 (10), binary_field number (*,0), padding varchar2 (80), constraint pk_product_type primary key (prod_type_id) ) ; -- create table product_sub_type ( prod_sub_type_id number (*,0), sub_type_name varchar2 (20), units varchar2 (20), padding varchar2 (80), constraint pk_product_sub_type primary key (prod_sub_type_id) ) ; -- create table product ( product_id number (*,0), prod_type_id number (*,0), prod_sub_type_id number (*,0), episode_id number (*,0), status varchar2 (1), number_required number (*,0), padding varchar2 (80), constraint pk_product primary key (product_id), constraint nn_product_episode check (episode_id is not null) ) ; alter table product add constraint fk_product foreign key (episode_id) references episode (episode_id) ; alter table product add constraint fk_product_type foreign key (prod_type_id) references product_type (prod_type_id) ; alter table product add constraint fk_prod_sub_type foreign key (prod_sub_type_id) references product_sub_type (prod_sub_type_id) ; -- -- Requests -- create table request ( request_id number (*,0), department_id number (*,0), site_id number (*,0), cross_ref_id varchar2 (11), padding varchar2 (80), padding2 varchar2 (80), constraint pk_request primary key (request_id), constraint nn_request_department check (department_id is not null), constraint nn_request_site_id check (site_id is not null) ) ; -- -- Activity & Users -- create table activity ( activity_id number (*,0), user_id number (*,0), episode_id number (*,0), request_id number (*,0), -- always NULL! padding varchar2 (80), constraint pk_activity primary key (activity_id) ) ; alter table activity add constraint fk_activity_episode foreign key (episode_id) references episode (episode_id) ; alter table activity add constraint fk_activity_request foreign key (request_id) references request (request_id) ; -- create table app_users ( user_id number (*,0), user_name varchar2 (20), start_date date, padding varchar2 (80), constraint pk_users primary key (user_id) ) ; prompt Loading episode ... -- insert into episode with generator as (select rownum r from (select rownum r from dual connect by rownum <= 1000) a, (select rownum r from dual connect by rownum <= 1000) b, (select rownum r from dual connect by rownum <= 1000) c where rownum <= 1000000 ) select r, 2, sysdate + mod (r, 14), to_char (r, '0000000000'), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' || to_char (r, '000000') from generator g where g.r <= 300000 / commit ; -- prompt Loading product_type ... -- insert into product_type with generator as (select rownum r from (select rownum r from dual connect by rownum <= 1000) a, (select rownum r from dual connect by rownum <= 1000) b, (select rownum r from dual connect by rownum <= 1000) c where rownum <= 1000000 ) select r, to_char (r, '000000000'), mod (r, 2), 'ABCDEFGHIJKLMNOPQRST' || to_char (r, '000000') from generator g where g.r <= 12 / commit ; -- prompt Loading product_sub_type ... -- insert into product_sub_type with generator as (select rownum r from (select rownum r from dual connect by rownum <= 1000) a, (select rownum r from dual connect by rownum <= 1000) b, (select rownum r from dual connect by rownum <= 1000) c where rownum <= 1000000 ) select r, to_char (r, '000000'), to_char (mod (r, 3), '000000'), 'ABCDE' || to_char (r, '000000') from generator g where g.r <= 15 / commit ; -- prompt Loading product ... -- -- product_id prod_type_id prod_sub_type_id episode_id padding insert into product with generator as (select rownum r from (select rownum r from dual connect by rownum <= 1000) a, (select rownum r from dual connect by rownum <= 1000) b, (select rownum r from dual connect by rownum <= 1000) c where rownum <= 1000000 ) select r, mod (r, 12) + 1, mod (r, 15) + 1, mod (r, 300000) + 1, decode (mod (r, 3), 0, 'I', 1, 'C', 2, 'X', 'U'), dbms_random.value (1, 100), NULL from generator g where g.r <= 100000 / commit ; -- prompt Loading request ... -- -- request_id department_id site_id cross_ref_id varchar2 (11) padding insert into request with generator as (select rownum r from (select rownum r from dual connect by rownum <= 1000) a, (select rownum r from dual connect by rownum <= 1000) b, (select rownum r from dual connect by rownum <= 1000) c where rownum <= 10000000 ) select r, mod (r, 4) + 1, 1, to_char (r, '0000000000'), 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890123456789' || to_char (r, '000000'), 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789012345678' || to_char (r, '000000') from generator g where g.r <= 4000000 / commit ; -- prompt Loading activity ... -- -- activity activity_id user_id episode_id request_id (NULL) padding insert into activity with generator as (select rownum r from (select rownum r from dual connect by rownum <= 1000) a, (select rownum r from dual connect by rownum <= 1000) b, (select rownum r from dual connect by rownum <= 1000) c where rownum <= 10000000 ) select r, mod (r, 50) + 1, mod (r, 300000) + 1, NULL, NULL from generator g where g.r <= 100000 / commit ; -- prompt Loading app_users ... -- -- app_users user_id user_name start_date padding insert into app_users with generator as (select rownum r from (select rownum r from dual connect by rownum <= 1000) a, (select rownum r from dual connect by rownum <= 1000) b, (select rownum r from dual connect by rownum <= 1000) c where rownum <= 10000000 ) select r, 'User_' || to_char (r, '000000'), sysdate - mod (r, 30), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' || to_char (r, '000000') from generator g where g.r <= 1000 / commit ; -- prompt Episode (1) create index ix1_episode_cross_ref on episode (cross_ref_id) ; -- prompt Product (2) create index ix1_product_episode on product (episode_id) ; create index ix2_product_type on product (prod_type_id) ; -- prompt Request (4) create index ix1_request_site on request (site_id) ; create index ix2_request_dept on request (department_id) ; create index ix3_request_cross_ref on request (cross_ref_id) ; -- The extra index on the referenced columns!! create index ix4_request on request (cross_ref_id, site_id) ; -- prompt Activity (2) create index ix1_activity_episode on activity (episode_id) ; create index ix2_activity_request on activity (request_id) ; -- prompt Users (1) create unique index ix1_users_name on app_users (user_name) ; -- prompt Gather statistics on schema ... -- exec dbms_stats.gather_schema_stats ('JB')
10053 - updated the Query*************************************** SINGLE TABLE ACCESS PATH ----------------------------------------- BEGIN Single Table Cardinality Estimation ----------------------------------------- Table: REQUEST Alias: REQUEST Card: Original: 3994236 Rounded: 3994236 Computed: 3994236.00 Non Adjusted: 3994236.00 ----------------------------------------- END Single Table Cardinality Estimation ----------------------------------------- Access Path: TableScan Cost: 28806.24 Resp: 28806.24 Degree: 0 Cost_io: 28738.00 Cost_cpu: 1594402830 Resp_io: 28738.00 Resp_cpu: 1594402830 ******** Begin index join costing ******** ****** trying bitmap/domain indexes ****** Access Path: index (FullScan) Index: PK_REQUEST resc_io: 7865.00 resc_cpu: 855378926 ix_sel: 1 ix_sel_with_filters: 1 Cost: 7901.61 Resp: 7901.61 Degree: 0 Access Path: index (FullScan) Index: PK_REQUEST resc_io: 7865.00 resc_cpu: 855378926 ix_sel: 1 ix_sel_with_filters: 1 Cost: 7901.61 Resp: 7901.61 Degree: 0 ****** finished trying bitmap/domain indexes ****** ******** End index join costing ******** Best:: AccessPath: TableScan Cost: 28806.24 Degree: 1 Resp: 28806.24 Card: 3994236.00 Bytes: 0 ***************************************
*************************************** SINGLE TABLE ACCESS PATH ----------------------------------------- BEGIN Single Table Cardinality Estimation ----------------------------------------- Table: REQUEST Alias: REQUEST Card: Original: 3994236 Rounded: 3994236 Computed: 3994236.00 Non Adjusted: 3994236.00 ----------------------------------------- END Single Table Cardinality Estimation ----------------------------------------- Access Path: TableScan Cost: 28806.24 Resp: 28806.24 Degree: 0 Cost_io: 28738.00 Cost_cpu: 1594402830 Resp_io: 28738.00 Resp_cpu: 1594402830 Access Path: index (index (FFS)) Index: IX4_REQUEST resc_io: 3927.00 resc_cpu: 583211030 ix_sel: 0.0000e+00 ix_sel_with_filters: 1 Access Path: index (FFS) Cost: 3951.96 Resp: 3951.96 Degree: 1 Cost_io: 3927.00 Cost_cpu: 583211030 Resp_io: 3927.00 Resp_cpu: 583211030 Access Path: index (FullScan) Index: IX4_REQUEST resc_io: 14495.00 resc_cpu: 903225273 ix_sel: 1 ix_sel_with_filters: 1 Cost: 14533.66 Resp: 14533.66 Degree: 1 ******** Begin index join costing ******** ****** trying bitmap/domain indexes ****** Access Path: index (FullScan) Index: IX4_REQUEST resc_io: 14495.00 resc_cpu: 903225273 ix_sel: 1 ix_sel_with_filters: 1 Cost: 14533.66 Resp: 14533.66 Degree: 0 Access Path: index (FullScan) Index: IX4_REQUEST resc_io: 14495.00 resc_cpu: 903225273 ix_sel: 1 ix_sel_with_filters: 1 Cost: 14533.66 Resp: 14533.66 Degree: 0 ****** finished trying bitmap/domain indexes ****** ******** End index join costing ******** Best:: AccessPath: IndexFFS Index: IX4_REQUEST Cost: 3951.96 Degree: 1 Resp: 3951.96 Card: 3994236.00 Bytes: 0 ***************************************
I mentioned that it is a bug related to the ANSI SQL standard and transformation probably.
As suggested/asked in my first reply:
1. If you use a no_query_transformation then you should find that you get the use of the index (although not in the plan you would expect)
2. If you use the traditional Oracle syntax, then you should not have the same problem. -
Instant Messaging within the apple network
Is there any software for instant messaging for Apple systems? I have several computers in my network apple, is there a demand (outside iMessage) that supports instant messaging within a network? Thank you!
Hello
To be clear, the app is called Messages.
It comes with two accounts - the iMessages one who needs your for add an Apple ID and the Hello we need everybody to be also using Hello.
Hello accounts are also in iChat app in older versions of the operating system.
@mac.com, @me.com related identifiers iCloud and @icloud.com are also valid aliases AIM
You add these in their entirety in option AIM/AOL
Messages can also connect to a Jabber server.
Google Email ID will work with GoogleTalk Jabber server they are running.
Yahoo ID can also be used (if everyone has one).
The downside of this in the Messages is that it is the text of the only conversations and there no sending files or video and Audio Chats.
PSI is a Jabber application, if you do not want to use messages.
Yahoo for Mac does not work in versions of Mac OS in Yosemite (OS X 10.10) or higher.
AdiumX can join a lot of services.
If you have Office you have MSN
Facebook used to run a Jabber server, but no longer do, but still have access to the e-mail page (in most cases it is a separate tab in a browser).
There are also Trillian.
This started as AdiumX (Mac only) as a multi-service on Windows client, but more recently there are Mac and Linux as well.
However the page no longer seem that clear even though the Research suggest that.
NOTES
AdiumX is Hello.
I have not tested this option to see if it will do the Group of cats (iChat and are not the versions Messages)
For the adventurous https://github.com/yakyak/yakyak
20:36 Friday. April 29, 2016
iMac 2.5 Ghz i5 2011 (El Capitan)
G4/1GhzDual MDD (Leopard 10.5.8)
MacBookPro (Snow Leopard 10.6.8) 2 GB
Mac OS X (10.6.8).
iPhone and iPad (2) -
Send instant messages via email from yahoo with the new version of firefox
I can't send instant messages via email yahoo in the new version of firefox, how do I fix this problem
Hi hwkangel,
It looks like a known issue reported here:
https://Bugzilla.Mozilla.org/show_bug.cgi?id=713014
There was a workaround solution posted, but I have not tested it myself. Here are the steps.
- Go to the Yahoo Messenger Options - change the window in the tab menu and press OK.
- Then go back and switch to the small window and press OK.
The bug has already been fixed. So, you can download the beta version of FF 10 If this is a really important feature for you.
Hope this helps!
-
ring on the Windows Live messenger Instant Messaging
Original title: emergency aid
Yahoo messanger will beep when you receive an instant message. How to set the life of windows to make a sound when I get a message on health?
Hi AnnemarieF,
· What version of Windows Live messenger, you have installed?
Follow the steps below:
a. open the Windows live messenger
b. click on tools
c. click Options
d. in the left pane select sounds or alerts and sound (depending on the version of Live messenger)
e., and then select the sound you want to play when you receive an instant message.
For more assistance, you will need to post your query in the live forum for better support. Link: http://windowslivehelp.com/forums.aspx?forumid=568c1adc-41d2-47e0-bb2c-cdfedd9642ef
With regard to:
Samhrutha G S - Microsoft technical support.
-
How to send an instant message, what is the format of an address of instant messaging
How to send an instant message, what is the format of an address of instant messaging
Hello
Are you referring to the use of messenger?
If so:
they will help you with your questions/problems Messenger when repost you the link below in the Messenger forums
-
Detect and respond to messages from the BlackBerry Instant Messaging by program
Hello
Is it possible to programmatically change the State or even meet with instant messages on a third-party application BlackBerry Instant Messaging?
I was looking around the classes net.rim.blackberry.api.blackberrymessenger. * and extract from the example code of TicTacToe. My understanding is that it only allows to add an application service (game of tic tac toe) menu the blackberry messenger. Please correct me if I'm wrong.
Any information or suggestion would be useful.
Thank you.
BlackBerryMessenger is a protocol based on session. Communications are app-to-app, as shown in the example of TicTacToe.
You can not intercept the communications of another application.
Maybe you are looking for
-
How to add an additional bank card
How do you add a new card to your account
-
Impossible to use on my Satellite A105 Multirecorder
Hello Can someone help me? I buy a Satellite A105-S4074. It has a DVD multi recorder MAST * A UJ-850. More or less three months, that everything works fine. One day, I try to record a DVD, but when recording the time some problems it doesn't complete
-
My phone LG CU400 does not appear on my computer. The driver installed successfully.
I think my CU400 must at least show as an additional drive in my computer. The hardware installation wizard says that it successfully installed. WHT I should do to fix this?
-
Please, someone can guide me to install win 7 64 bit on my latitude d630? And what basic requirements so he could do it. Please help me... Searched a lot, but can't find any installation procedure Guide.
-
How do I access the folder allowed with standard user?
I have 2 accounts, one is standard, the other is the admin account. My PC has a permitted record that only allow admin to access. I always connect with the standard user and sometimes need to access these files from parmitted, but no authorization fo