LEFT JOINT OUTER has diferent plan from normal query
Hi All
I have two table TRANS and TRANS_PARTY, on trans table has index on LAST_MODIFIED and on trans_party has index on transid
I have two queries. They are the same about meaning but Oracle has different plan.
Can anyone explain the reason why?
SQL> explain plan for select count(*) from trans t1t
2 LEFT OUTER JOIN trans_party t1tp ON
(t1t.id=t1tp.transid AND t1t.last_modified >=to_date('2009-09-04 00:00:00','YYYY-MM-DD HH24:MI:SS')
AND t1t.last_modified <to_date('2009-09-05 00:00:00','YYYY-MM-DD HH24:MI:SS')
and t1tp.last_modified >=to_date('2009-09-04 00:00:00','YYYY-MM-DD HH24:MI:SS')
AND t1tp.last_modified <to_date('2009-09-05 00:00:00','YYYY-MM-DD HH24:MI:SS'))
3 4 5 6 7 ;
Explained.
SQL>
SQL> set pagesize 999;
set linesize 999;SQL>
SQL>
SQL> SELECT * FROM TABLE(dbms_xplan.display);
PLAN_TABLE_OUTPUT
Plan hash value: 2040563577
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 17 | 275K (1)| 00:55:07 |
| 1 | SORT AGGREGATE | | 1 | 17 | | |
| 2 | NESTED LOOPS OUTER | | 1233K| 19M| 275K (1)| 00:55:07 |
| 3 | TABLE ACCESS FULL | TRANS | 1233K| 19M| 4085 (3)| 00:00:50 |
| 4 | VIEW | | 1 | | 0 (0)| 00:00:01 |
|* 5 | FILTER | | | | | |
|* 6 | TABLE ACCESS BY INDEX ROWID| TRANS_PARTY | 1 | 17 | 1 (0)| 00:00:01 |
|* 7 | INDEX RANGE SCAN | IXTPFK | 1 | | 1 (0)| 00:00:01 |
Predicate Information (identified by operation id):
5 - filter("T1T"."LAST_MODIFIED"<TIMESTAMP'2009-09-05 00:00:00' AND
"T1T"."LAST_MODIFIED">=TIMESTAMP'2009-09-04 00:00:00')
6 - filter("T1TP"."LAST_MODIFIED">=TIMESTAMP'2009-09-04 00:00:00' AND
"T1TP"."LAST_MODIFIED"<TIMESTAMP'2009-09-05 00:00:00')
7 - access("T1T"."ID"="T1TP"."TRANSID")
23 rows selected.
SQL> explain plan for select count(*) from trans t , trans_party tp
where t.id(+)=tp.transid
and t.last_modified >=to_date('2009-09-04 00:00:00','YYYY-MM-DD HH24:MI:SS')
AND t.last_modified <to_date('2009-09-05 00:00:00','YYYY-MM-DD HH24:MI:SS')
and (tp.agentid=2654492 OR tp.agentid=2654492) 2 3 4 5 ;
Explained.
SQL> SELECT * FROM TABLE(dbms_xplan.display);
PLAN_TABLE_OUTPUT
Plan hash value: 1553247449
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
| 0 | SELECT STATEMENT | | 1 | 31 | 3 (0)| 00:00:01 | | |
| 1 | SORT AGGREGATE | | 1 | 31 | | | | |
|* 2 | TABLE ACCESS BY LOCAL INDEX ROWID | TRANS_PARTY | 1 | 13 | 1 (0)| 00:00:01 | | |
| 3 | NESTED LOOPS | | 1 | 31 | 3 (0)| 00:00:01 | | |
| 4 | PARTITION RANGE ALL | | 1 | 18 | 1 (0)| 00:00:01 | 1 | 71 |
| 5 | TABLE ACCESS BY LOCAL INDEX ROWID| TRANS | 1 | 18 | 1 (0)| 00:00:01 | 1 | 71 |
|* 6 | INDEX RANGE SCAN | IXTRLASTMOD | 1 | | 1 (0)| 00:00:01 | 1 | 71 |
| 7 | PARTITION RANGE ALL | | 3 | | 1 (0)| 00:00:01 | 1 | 71 |
|* 8 | INDEX RANGE SCAN | IXTPFK | 3 | | 1 (0)| 00:00:01 | 1 | 71 |
Predicate Information (identified by operation id):
2 - filter("TP"."AGENTID"=2654492)
6 - access("T"."LAST_MODIFIED">=TIMESTAMP' 2009-09-04 00:00:00' AND "T"."LAST_MODIFIED"<TIMESTAMP'
2009-09-05 00:00:00')
8 - access("T"."ID"="TP"."TRANSID")
23 rows selected.
SQL>
Thanks
Edited by: user554265 on Sep 7, 2009 7:13 AM
Toon Koppelaars wrote:
My advice: stop using the ANSI SQL syntax for doing (outer) joins.
It is confusing.
It is hard to read.
It is hard to understand.Hmmm... blatent statements and no proof.
I'm adept at using either syntax.
ANSI is not confusing to me, it's quite the opposite. Therefore your view that it's confusing is just that... your view.
Hard to read? Actually, I find that it clarifies the join conditions from the clauses and makes outer joins easier to specify. Again, that's your view.
Hard to understand? Nah, I can understand both just as easily. What's hard about it?
Also bear in mind...
Oracle syntax does not support outer joining to more than one table.
However ANSI syntax does...
SQL> select * from a;
ID B_KEY C_KEY
1 2 3
2 1 4
3 3 1
4 4 2
SQL> select * from b;
ID C_KEY2
1 1
2 5
3 3
4 2
SQL> select * from c;
KEY1 KEY2 DTA
1 1 1-1
1 2 1-2
1 3 1-3
1 4 1-4
2 1 2-1
2 2 2-2
2 3 2-3
2 4 2-4
3 1 3-1
3 2 3-2
3 3 3-3
3 4 3-4
4 1 4-1
4 2 4-2
4 3 4-3
4 4 4-4
16 rows selected.
SQL> ed
Wrote file afiedt.buf
1 select a.id as a_id, b.id as b_id, c.key1 as c_key1, c.key2 as c_key3, c.dta
2 from a, b, c
3 where a.b_key = b.id
4 and a.c_key = c.key1 (+)
5* and b.c_key2 = c.key2 (+)
SQL> /
and a.c_key = c.key1 (+)
ERROR at line 4:
ORA-01417: a table may be outer joined to at most one other table
SQL> ed
Wrote file afiedt.buf
1 select a.id as a_id, b.id as b_id, c.key1 as c_key1, c.key2 as c_key3, c.dta
2 from a JOIN b ON (a.b_key = b.id)
3* LEFT OUTER JOIN c ON (a.c_key = c.key1 and b.c_key2 = c.key2)
SQL> /
A_ID B_ID C_KEY1 C_KEY3 DTA
3 3 1 3 1-3
4 4 2 2 2-2
2 1 4 1 4-1
1 2
SQL>;)
Similar Messages
-
Dynamic query plan vs normal query plan
I have a query with like operator.
DECLARE @query varchar(52)
SET @query='A12657'
IF @query IS NOT NULL
SET @query='%'+LTRIM(RTRIM(@query))+'%'SELECT eord_type_id FROM izdelek
WHERE (izd_naziv_ANG like @query OR izd_id like @query)
OPTION (RECOMPILE)
Query works 1 ms, 5 ms is for plan recompile. The execution plan is:
But if I run the same query as dynamic sql:
DECLARE @query varchar(52), @sql NVARCHAR(4000), @paramList NVARCHAR(500)
SET @query='A12657'
SELECT @paramlist = N'@query VARCHAR(52)'
if @query IS NOT NULL
SET @query='%'+LTRIM(RTRIM(@query))+'%'
SET @sql=N'SELECT eord_type_id FROM izdelek
WHERE (izd_naziv_ANG like @query OR izd_id like @query)
OPTION (RECOMPILE)'
EXEC sp_executesql @sql, @paramlist, @query
The execution plan is different and execution time is much slower - 2877 ms.
Where is the catch? What should I change that dynamic query would work the same.
What I also don't understand is key lookup at the end of the plan. Since we have clustered index seek at the beginning of the plan, the optimizer could read additional column(eord_type_id) from this index seek.
And why it is using merge since it has both columns from WHERE clause (izd_naziv_ang and izd_id) included inside index IX_izdelek. izd_id is in fact clustered key.
How can i improve this query?
But I would like to know at most, why dynamic sql is so much slower, since the query is totally the same in both cases and how to achieve that both queries have the similar execution time?First of all , why do you use LIKE operator instead of EQUAL (=). I see you are looking for exact value..
--SQL Server creates 3 execution plan rather only one
DBCC FREEPROCCACHE
GO
SELECT *
FROM Sales.SalesOrderHeader
WHERE SalesOrderID = 56000
GO
SELECT * FROM
AdventureWorks.Sales.SalesOrderHeader WHERE
SalesOrderID = 56001
GO
declare @i int
set @i = 56004
SELECT *
FROM Sales.SalesOrderHeader
WHERE SalesOrderID = @i
GO
select stats.execution_count AS exec_count,
p.size_in_bytes as [size],
[sql].[text] as [plan_text]
from sys.dm_exec_cached_plans p
outer apply sys.dm_exec_sql_text (p.plan_handle) sql
join sys.dm_exec_query_stats stats ON stats.plan_handle = p.plan_handle
GO
----This time only (we get parameterization)
DBCC FREEPROCCACHE
GO
EXEC sp_executesql N'SELECT SUM(LineTotal) AS LineTotal
FROM Sales.SalesOrderHeader H
JOIN Sales.SalesOrderDetail D ON D.SalesOrderID = H.SalesOrderID
WHERE H.SalesOrderID = @SalesOrderID', N'@SalesOrderID INT', 56000
GO
EXEC sp_executesql N'SELECT SUM(LineTotal) AS LineTotal
FROM Sales.SalesOrderHeader H
JOIN Sales.SalesOrderDetail D ON D.SalesOrderID = H.SalesOrderID
WHERE H.SalesOrderID = @SalesOrderID', N'@SalesOrderID INT', 56005
GO
select stats.execution_count AS exec_count,
LEFT([sql].[text], 80) as [plan_text]
from sys.dm_exec_cached_plans p
outer apply sys.dm_exec_sql_text (p.plan_handle) sql
join sys.dm_exec_query_stats stats ON stats.plan_handle = p.plan_handle
GO
Best Regards,Uri Dimant SQL Server MVP,
http://sqlblog.com/blogs/uri_dimant/
MS SQL optimization: MS SQL Development and Optimization
MS SQL Consulting:
Large scale of database and data cleansing
Remote DBA Services:
Improves MS SQL Database Performance
SQL Server Integration Services:
Business Intelligence -
In system preferences > sound > output, it will switch from normal internal speakers > built-in, to headphones > built-in, to digital out > built-in, to headphones > headphone port, to digital out > headphone port- it's nuts! This is all without having anything actually plugged into the headphone jack. While it is greyed out (which happens randomly and on any of the settings), there is no sound whatsoever and it says, "The selected device has no output controls.". Also coinciding with this, my computer has begun to suddenly run extremely slow and lags a lot. Is there a way to fix this? I already tried updating my computer, and restarting it, and it didn't help. I'm wondering if maybe the headphone jack somehow was shorted while I had some speakers plugged in for gaming...? Or is this something I need to send my computer in to be repaired for?
It was custom-ordered a few years ago, and unfortunately the warranty has expired. :/ Perfect timing.I have this same issue and have been struggling with it for a while. I really just need to get it into Apple Store to be fixed most likely - but avoiding the hassle and time needed to do so.
Things I've come across:
Something inside of the headphone jack is not right, such that it randomly thinks headphones or some other type of optical audio device are plugged in. you will see a red light inside the jack occasionally when it happens.
You might try doing PRAM and/or SMC reset ( http://support.apple.com/kb/HT3964 ) -
have an Adobe PRO 11 user converting a word Document to PDF using PDFMAKER and all of the numbering is disappearing from left column,. Has anyone had this happen and if so what is the fix?
Is it possible to post a sample page some place for us to try out (dropbox or acrobat.com)? Is your Acrobat updated? What version of WORD are you using?
-
Book out the Consumption value from the planned consumption
Hello everybody,
i am going to develope a consumption report, is there a BABI or Something Like This that available to book out the Consumption value from the planned consumption? (to unplanned consumption)
Thanks
Best regards.
DANI.I am currently working on a SQVI report just a prototype prior to having the programmer create an ABAP report. The trouble I am having is truly understanding how SAP tabulates the consumption. We are putting significant effort into this report and will let you know the results.
-
firefox keeps crashing when I try to launch it. I uninstalled the program, but now when I try to download it from your website the download freezes with 1 second left. This has happened several times.
Hello Deb,
Something fishy going on with those particular files. But without looking at them directly I couldn't say what. Usually in a case like this the problem is some of the metadata that is attached to the file. Where did these files come from? A camera, a scanner, the internet?
An explanation about the Watched Folder function: It looks for changes to a folder, not just automatically grabbing whatever files are in it. Generally, you want to select an empty folder as a Watch Folder. Once this has been set up, as you add files to this folder they will be imported into the Organizer. If you start with a folder full of images, those will be ignored, any new items will be added.
-Brett -
How do I change my printing settings from "normal" to "fast" ?
HP Officejet J4580 All-in-one
OS: Max OS X 10.5.8
No error message
No changes made to my system. My printer has always printed at "normal" but my boss has his setting to "fast" however we can't figure out why my print window appears different than his.Hello,
Thanks for the post. There may be several reasons why the printing options are different, maybe updates/versions, different OS, even different printer (different options). I've attached a link below that may assist (or at least get you started) in locating the printing preferences that you are looking for. Good Luck!
Thank you Apple support.........
http://support.apple.com/kb/HT1150
I worked for HP but my posts and replies are my own....Thank you!
*Say thanks by clicking the *Kudos!* which is on the left*
*Make it easier for other people to find solutions, by marking my answer with (Accept as Solution) if it solves your issue.* -
Unable to back up external hard drive via Time Machine. Says no room but has back ups from two previous Mac notebooks on it. Tried deleting them and now can't do anything. Any ideas?
As john noted, eventually that external is probably not going to be big enough, but it certainly is for now. The HD just needs enough capacity to cover the amount of data on your internal HD, not the internal HD's total capacity.
Format/partition the external as follows and you should be set to go:
1. Connect the external HD to the MBP.
2. Open Disk Utility on the MBP.
3. Select the external HD in the left pane.
4. Click on the Erase tab.
5. Choose the Format: Mac OS Extended (Journaled).
NOTE: if you want to zero the HD (which I always think is a good idea, but does take time), click on Security Options, click the button for Zero Out Data, click OK. The larger the HD, the longer this will take, in some cases several hours.
6. Click on Erase and wait for the entire process to finish.
7. Click the Partition tab.
8. Click on Volume Scheme: and choose the number of partitions (just one in this situation).
9. Click on the Options button (located underneath the Volume Scheme pane) and select GUID.
10. Click Apply.
11. Quit Disk Utility.
Backup your internal to the external. What application are you using to backup with? I highly recommend both SuperDuper! and CarbonCopyCloner. -
Need help understanding Explain Plan from 10046 trace
Below is a query and Explain Plan from a 10046 trace shown with trcanlzr.sql.
In the explain plan I don't understand what's happining at line ID 10 and 11. Specifically, is the result at line 11 rowids from lines 12 & 14? and then what? Are those rowids somehow used in line ID 10?
SELECT cp.cred_process_id, cp.provider_id,
brdg_credentialing.get_appl_specialist(cp.cred_process_id,'R') specialist_name,
brdg_cred_report_pkg.provider_name(cp.cred_process_id) provider_name,
ctc_apptype.description appl_type_desc,
TRUNC (brdg_credentialing.get_appl_received_dt(cp.cred_process_id)) init_received_dt,
brdg_code_util.code_descr(brdg_credentialing.get_appl_status_cd_ctc_id(cp.cred_process_id)) appl_status_desc,
brdg_credentialing.get_appl_prac_specialties(cp.cred_process_id,'Y') primary_specialty,
cwh.city practice_city,
UPPER (cwh.state) practice_state,
TRUNC (ch.event_dt) specialist_assign_dt,
DECODE (ctc_apptype.code,'INITPPO', TRUNC (brdg_credentialing.get_appl_received_dt(cp.cred_process_id)),
'REAPP', TRUNC (brdg_credentialing.get_appl_received_dt(cp.cred_process_id)),
'SPECCRED', TRUNC (brdg_credentialing.get_appl_received_dt(cp.cred_process_id)),
'TRANS', TRUNC (brdg_credentialing.get_appl_received_dt(cp.cred_process_id)),
'RECPPO', p.next_recred_dt,
'RECAPP', p.next_recred_dt, NULL) sort_date,
p.next_recred_dt
FROM brdg_cred_app_open_vw cp,
brdg_cat_type_codes ctc_apptype,
brdg_cred_work_history cwh,
brdg_cred_history ch,
brdg_providers p
WHERE cp.type_cd_ctc_id = ctc_apptype.cat_type_code_id
AND ctc_apptype.category_cd = 'CRED'
AND ctc_apptype.type_cd = 'APPTYPE'
AND cp.cred_process_id = cwh.cred_process_id (+)
AND cwh.primary_practice_flag (+) = 'Y'
AND cp.cred_process_id = ch.cred_process_id
AND ch.cred_history_id = (SELECT MAX(cred_history_id)
FROM brdg_cred_history
WHERE cred_process_id = cp.cred_process_id
AND event_cd_ctc_id = brdg_credentialing.get_event_ctc_id ('SEVENT','SPESTCHG'))
AND cp.provider_id = p.provider_id (+)
and brdg_credentialing.get_appl_specialist_id(cp.cred_process_id) = 5
ORDER BY 3 ASC, 3, 5, 12, 6
Explain Plan Operation
ID PID Card Rows Cost SearchCols / Indexed Cols Predicates
0: 1 36 SELECT STATEMENT
1: 0 1 139 36 SORT ORDER BY
2: 1 139 . FILTER [+]
3: 2 1 311 11 .. NESTED LOOPS OUTER
4: 3 1 311 10 ... NESTED LOOPS OUTER
5: 4 1 311 9 .... NESTED LOOPS
6: 5 1 311 8 ....+ NESTED LOOPS
7: 6 4 16 1 ....+. TABLE ACCESS BY INDEX ROWID CAT_TYPE_CODES
8: 7 4 16 1 ....+.. INDEX RANGE SCAN CAT_TYPE_CODE_UK 2/3 [+] [+]
9: 6 1 311 2 ....+. TABLE ACCESS BY INDEX ROWID CRED_PROCESSES [+]
10: 9 183 61927 1 ....+.. INDEX RANGE SCAN CDPR_CTCD_FK1 1/1 [+] [+]
11: 10 1 3 2 ....+... NESTED LOOPS
12: 11 1 16 1 ....+.... TABLE ACCESS BY INDEX ROWID CAT_TYPE_CODES
13: 12 1 16 1 ....+....+ INDEX UNIQUE SCAN CTCD_PK 1/1 [+] [+]
14: 11 1 3 1 ....+.... INDEX UNIQUE SCAN CAT_TYPE_CODE_UK 3/3 [+] [+]
15: 5 1 11 1 ....+ TABLE ACCESS BY INDEX ROWID CRED_HISTORY [+]
16: 15 1 311 1 ....+. INDEX UNIQUE SCAN CDHT_PK 1/1 [+] [+]
17: 16 1 311 ....+.. SORT AGGREGATE
18: 17 1 526 2 ....+... TABLE ACCESS BY INDEX ROWID CRED_HISTORY [+]
19: 18 23 9950 1 ....+.... INDEX RANGE SCAN CDHT_CDPR_FK 1/1 [+] [+]
20: 4 1 219 1 .... TABLE ACCESS BY INDEX ROWID PROVIDERS
21: 20 1 219 1 ....+ INDEX UNIQUE SCAN PROV_PK 1/1 [+] [+]
22: 3 1 311 1 ... TABLE ACCESS BY INDEX ROWID CRED_WORK_HISTORY [+]
23: 22 3 1057 1 .... INDEX RANGE SCAN CDWH_CDPR_FK 1/1 [+] [+]
24: 2 172 .. INLIST ITERATOR
25: 24 1 172 1 ... INDEX UNIQUE SCAN CAT_TYPE_CODE_UK 3/3 [+] [+]
26: 2 1 0 2 .. TABLE ACCESS BY INDEX ROWID CRED_HISTORY [+]
27: 26 23 2004 1 ... INDEX RANGE SCAN CDHT_CDPR_FK 1/1 [+] [+]
(1) X/Y: Where X is the number of searched columns from index, which has a total of Y columns.
(2) Actual rows returned by operation (average if there were more than 1 execution).
2 - filter( NOT EXISTS (SELECT 0 FROM "PPO"."CAT_TYPE_CODES" "BRDG_CAT_TYPE_CODES" WHERE
"CODE"="BRDG_CODE_UTIL"."ID_CODE"("BRDG_CREDENTIALING"."GET_APPL_STATUS_CD_CTC_ID"(:B1)) AND
("TYPE_CD"='APPROVAL' OR "TYPE_CD"='DENIED' OR "TYPE_CD"='INACTIVE' OR "TYPE_CD"='TERMED') AND
"CATEGORY_CD"='APPSTAT') AND NOT EXISTS (SELECT 0 FROM "PPO"."CRED_HISTORY" "BRDG_CRED_HISTORY"
WHERE "CRED_PROCESS_ID"=:B2 AND "EVENT_CD_CTC_ID"="BRDG_CODE_UTIL"."GET_ID"('CRED','SEVENT','MSODC
8 - access("CTC_APPTYPE"."CATEGORY_CD"='CRED' AND "CTC_APPTYPE"."TYPE_CD"='APPTYPE')
9 - filter("BRDG_CREDENTIALING"."GET_APPL_SPECIALIST_ID"("CP"."CRED_PROCESS_ID")=5 AND
("CP"."INS_DT">=TO_DATE(' 2007-12-20 17:00:00', 'syyyy-mm-dd hh24:mi:ss') OR
"CP"."TYPE_CD_CTC_ID"<>"BRDG_CODE_UTIL"."GET_ID"('CRED','APPTYPE','RECPPO')))
10 - access("CP"."TYPE_CD_CTC_ID"="CTC_APPTYPE"."CAT_TYPE_CODE_ID")
filter( NOT EXISTS (SELECT 0 FROM "PPO"."CAT_TYPE_CODES"
"CTC_APPTYPE","PPO"."CAT_TYPE_CODES" "CTC_TYPE" WHERE "CTC_TYPE"."CAT_TYPE_CODE_ID"=:B1 AND
"CTC_TYPE"."CODE"="CTC_APPTYPE"."CODE" AND "CTC_APPTYPE"."TYPE_CD"='APPSENT' AND
"CTC_APPTYPE"."CATEGORY_CD"='APPTYPE'))
13 - access("CTC_TYPE"."CAT_TYPE_CODE_ID"=:B1)
14 - access("CTC_APPTYPE"."CATEGORY_CD"='APPTYPE' AND "CTC_APPTYPE"."TYPE_CD"='APPSENT' AND
"CTC_TYPE"."CODE"="CTC_APPTYPE"."CODE")
15 - filter("CP"."CRED_PROCESS_ID"="CH"."CRED_PROCESS_ID")
16 - access("CH"."CRED_HISTORY_ID"= (SELECT MAX("CRED_HISTORY_ID") FROM "PPO"."CRED_HISTORY"
"BRDG_CRED_HISTORY" WHERE "CRED_PROCESS_ID"=:B1 AND
"EVENT_CD_CTC_ID"="BRDG_CREDENTIALING"."GET_EVENT_CTC_ID"('SEVENT','SPESTCHG')))
18 - filter("EVENT_CD_CTC_ID"="BRDG_CREDENTIALING"."GET_EVENT_CTC_ID"('SEVENT','SPESTCHG'))
19 - access("CRED_PROCESS_ID"=:B1)
21 - access("CP"."PROVIDER_ID"="P"."PROVIDER_ID"(+))
22 - filter("CWH"."PRIMARY_PRACTICE_FLAG"(+)='Y')
23 - access("CP"."CRED_PROCESS_ID"="CWH"."CRED_PROCESS_ID"(+))
25 - access("CATEGORY_CD"='APPSTAT' AND ("TYPE_CD"='APPROVAL' OR "TYPE_CD"='DENIED' OR
"TYPE_CD"='INACTIVE' OR "TYPE_CD"='TERMED') AND "CODE"="BRDG_CODE_UTIL"."ID_CODE"("BRDG_CREDENTIAL
ING"."GET_APPL_STATUS_CD_CTC_ID"(:B1)))
26 - filter("EVENT_CD_CTC_ID"="BRDG_CODE_UTIL"."GET_ID"('CRED','SEVENT','MSODC'))
27 - access("CRED_PROCESS_ID"=:B1)Welcome to the forums!
user11987210 wrote:
In the explain plan I don't understand what's happining at line ID 10 and 11. Specifically, is the result at line 11 rowids from lines 12 & 14? and then what? Are those rowids somehow used in line ID 10?
9: 6 1 311 2 ....+. TABLE ACCESS BY INDEX ROWID CRED_PROCESSES [+]
10: 9 183 61927 1 ....+.. INDEX RANGE SCAN CDPR_CTCD_FK1 1/1 [+] [+]
11: 10 1 3 2 ....+... NESTED LOOPS
12: 11 1 16 1 ....+.... TABLE ACCESS BY INDEX ROWID CAT_TYPE_CODES
13: 12 1 16 1 ....+....+ INDEX UNIQUE SCAN CTCD_PK 1/1 [+] [+]
14: 11 1 3 1 ....+.... INDEX UNIQUE SCAN CAT_TYPE_CODE_UK 3/3 [+] [+] The NESTED LOOPS operation (ID #11) has two children, ID #12 sometimes called the driving source, and ID #14 the inner loop. ID #14 is executed once for each row returned by ID #12. The results of ID #11 are then fed to ID #10 which performs an INDEX RANGE SCAN.
Hope this helps! -
Call Bean from normal java class
Dear Friends,
Is it ok to call an entity bean or session bean frm normal Java class.
(Java class is in the same application as the beans).
Is there a special way to lookup the beans from normal java classes.
Thanking You,
Chamal.it is ok and very commonly done.
Note that the simple java program must be running in the same local network. You cannot have the java program and EJBs distributed over internet. (I m not certain of it, but mostly I shoudl be correct. If you have the resources, try it out and let me know)
In most of the cases, EJBs are called by
1. A servlet
2. Another EJB
3. a simple java program.
In the first 2 cases, you can go for Local Interfaces (more so in the second case than the first). The reason being that the the client and server will be in the same JVM (typically the Application server). Thus, in the first case, if the Web container and the ejb container are in the same app server, EJBs can be local.
However, in the third case, it is unlikey that you will have the client runnng and the same jvm as the server, because the app server has its own jvm.
sample code (this method is being called from the main method of a simple java program. it is self explanatory):
public void processRequestForSessionBean()
System.out.println("REQUEST RECEIVED");
try
Hashtable nameHashtable = new Hashtable();
nameHashtable.put( Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory" );
nameHashtable.put( Context.PROVIDER_URL, "t3://localhost:7001" );
InitialContext context = new InitialContext(nameHashtable);
System.out.println("created initial context");
Object lookupObject = context.lookup("CustomerBean");
System.out.println("Got the lookup object");
CustomerDataHome home = (CustomerDataHome) PortableRemoteObject.narrow(lookupObject,
Class.forName("com.shiv.business.CustomerDataHome"));
System.out.println("Home interface");
customerData = home.create();
System.out.println("Remote Interface");
addDataToSB(customerData);
ArrayList namesList = customerData.getNames();
System.out.println(namesList.toString());
//customerData.remove();
catch (Exception exception)
System.out.println("FATAL ERRORS");
exception.printStackTrace();
} -
Pass variables from dialogue query to batch planning functions
The requirement.
The user will open an u2018open-for-inputu2019 query (Web Template) using a number of variables (some are type exit). After entering data, the user will close the process by saving the data. The u2018Saveu2019 button will start a Planning Sequence which includes open data slice, distribution, copy, repost function and close data slice. The user will not wait for any feedback from these processes so they should be done as back-ground processes (in any case the dialogue process will time out).
The problem.
The background process will be started from the query u2018Saveu2019 button. This is easy enough to do.
However it is absolutely vital that the variables are passed from the query (which may or may not still be active) to the same variables that will need to be filled in the Planning Functions in the background process. I imagine that the background process will be a Process Chain .
Help needed.
1. Can anyone give me the way in which this is done?
2. It could be critical that the user does get feedback in some form or other if the back-ground processes fail for whatever reason. Any ideas how this can be achieved at the user interface level. The users will not have 'SAP Savy' and the log in the Process Chain will not be transparent to them.One approach..
Have diff variables for query and planning seq.
Say V1, V2 etc for query and VF1, VF2 etc for data slices and planning functions.
Maintain one Z-table which contains variables V1, V2 etc along with their values.
So when the users select query variables, on save, one exit function will write these variable values to the z-table. The variables used in planning seq and data slices (VF1, VF2..) will be exit variables which read corresponding entries from Z-table (V1, V2...). So background process will run based on what the user has selected. -
CME: phone number has been changed from 8 digit to 9 digit
Hi Folks,
I have a site who is in Rio, Brazil whos cell phones has been changed from 8 digit to 9 digit. In order for me to comply I need to update the dial peer/plan for CME 8.6 . Anyone who can give advice or instructions is appreciated.
e.g
Example: +551521 9691-XXXX changed to +551521 9 9691-XXXX
Thankshere you go..
voice class custom-cptone BR-Anatel
dualtone ringback
cadence 1000 4000 1000 4000
dualtone disconnect
frequency 425
cadence 250 250 250 250
voice translation-rule 1
rule 1 /^00[1-9][1-9]\(.*\)$/ /015\1/
rule 2 /^000[1-9][1-9]\(.*\)$/ /0015\1/
rule 3 /^090[1-9][1-9]\(..........\)$/ /9015\1/
voice translation-profile ChangeCSP
translate called 1
license udi pid CISCO2921/K9 sn XXXXXXX
hw-module pvdm 0/0
username admin privilege 15 secret 4 xxx.x.x..x.x.x.xx.x.x
username liderit privilege 15 secret 4 xxx.x.x..x.x.x.xx.x.x
redundancy
controller E1 0/0/0
framing NO-CRC4
ds0-group 0 timeslots 1-15,17-21 type r2-digital r2-compelled ani
cas-custom 0
country brazil
metering
debounce-time 10
answer-signal group-b 1
trunk-group Vivo-E1
controller E1 0/0/1
ip ssh time-out 60
ip ssh authentication-retries 2
ip ssh version 2
translation-rule 1
interface Embedded-Service-Engine0/0
no ip address
shutdown
interface GigabitEthernet0/0
ip address xx.xxx.x.xxx 255.255.xxx.xxx
duplex auto
speed auto
interface GigabitEthernet0/1
no ip address
shutdown
duplex auto
speed auto
interface GigabitEthernet0/2
no ip address
shutdown
duplex auto
speed auto
ip forward-protocol nd
no ip http server
no ip http secure-server
ip route 0.0.0.0 0.0.0.0 xx.xxx.x.xxx
snmp-server community sparky RO
snmp-server community abc123
snmp-server location Brazil
tacacs-server host xx.xx.x.xxx timeout 5
tacacs-server directed-request
tacacs-server key 7 xxxxxxxx
control-plane
voice-port 0/0/0:0
translation-profile outgoing ChangeCSP
disc_pi_off
cptone BR
timeouts interdigit 5
timeouts call-disconnect 0
bearer-cap Speech
voice-port 0/1/0
trunk-group Vivo-Analog
translation-profile outgoing ChangeCSP
disc_pi_off
cptone BR
timeouts interdigit 5
timeouts call-disconnect 0
connection plar 6500
description ### Vivo +55 11 3078-9782 ###
bearer-cap Speech
voice-port 0/1/1
trunk-group Vivo-Analog
translation-profile outgoing ChangeCSP
disc_pi_off
cptone BR
timeouts interdigit 5
timeouts call-disconnect 0
connection plar 6500
description ### Vivo +55 11 3078-9728 ###
bearer-cap Speech
voice-port 0/1/2
trunk-group Vivo-Analog
translation-profile outgoing ChangeCSP
disc_pi_off
cptone BR
timeouts interdigit 5
timeouts call-disconnect 0
connection plar 6500
description ### Vivo +55 11 3078-9735 ###
bearer-cap Speech
voice-port 0/1/3
disc_pi_off
cptone BR
timeouts interdigit 5
timeouts call-disconnect 0
connection plar 6500
shutdown
description ### Intercom ###
bearer-cap Speech
mgcp profile default
dial-peer voice 1 pots
trunkgroup Vivo-E1
description ### PSTN inbound ###
incoming called-number .T
direct-inward-dial
dial-peer voice 2 pots
trunkgroup Vivo-E1
description ### Local Calls - Fixed ###
destination-pattern 0[2-5].......
dial-peer voice 3 pots
trunkgroup Vivo-E1
description ### Local Calls - Mobile ###
destination-pattern 0[6-8].......
dial-peer voice 4 pots
trunkgroup Vivo-E1
description ### Local Calls - Mobile ###
destination-pattern 09T
forward-digits 9
dial-peer voice 5 pots
trunkgroup Vivo-E1
description ### Long Distance Calls - Fixed ###
destination-pattern 00[1-9][1-9]..[2-6].......
forward-digits 13
dial-peer voice 6 pots
trunkgroup Vivo-E1
description ### Long Distance Calls - Mobile ###
destination-pattern 00[1-9][1-9]..[7-9].......
forward-digits 13
dial-peer voice 7 pots
trunkgroup Vivo-E1
description ### International Calls ###
destination-pattern 000T
prefix 00
dial-peer voice 8 pots
trunkgroup Vivo-E1
description ### Toll Free Calls ###
destination-pattern 00800T
prefix 0800
dial-peer voice 9 pots
trunkgroup Vivo-E1
description ### 0300 Calls ###
destination-pattern 00300T
prefix 0300
dial-peer voice 10 pots
trunkgroup Vivo-E1
description ### 0303 Calls ###
destination-pattern 00303T
prefix 0303
dial-peer voice 11 pots
trunkgroup Vivo-E1
description ### Emergency Calls ###
destination-pattern 019.
forward-digits 3
dial-peer voice 12 pots
trunkgroup Vivo-E1
description ### Service Numbers Calls ###
destination-pattern 01[0-8]T
prefix 1
dial-peer voice 13 pots
trunkgroup Vivo-E1
description ### Local Calls - Collect Calls Fixed ###
destination-pattern 09090[2-5].......
prefix 9090
dial-peer voice 14 pots
trunkgroup Vivo-E1
description ### Local Calls - Collect Calls Mobile ###
destination-pattern 09090[6-8].......
prefix 9090
dial-peer voice 15 pots
trunkgroup Vivo-E1
description ### Local Calls - Collect Calls Mobile ###
destination-pattern 090909T
prefix 90909
dial-peer voice 16 pots
trunkgroup Vivo-E1
description ### Long Distance Calls - Collect Calls ###
destination-pattern 090[1-9][1-9]..[1-9].......
forward-digits 14
dial-peer voice 22 pots
trunkgroup Vivo-Analog
description ### Local Calls - Fixed ###
preference 1
destination-pattern 0[2-5].......
dial-peer voice 23 pots
trunkgroup Vivo-Analog
description ### Local Calls - Mobile ###
preference 1
destination-pattern 0[6-8].......
dial-peer voice 24 pots
trunkgroup Vivo-Analog
description ### Local Calls - Mobile ###
preference 1
destination-pattern 09T
forward-digits 9
dial-peer voice 25 pots
trunkgroup Vivo-Analog
description ### Long Distance Calls - Fixed ###
preference 1
destination-pattern 00[1-9][1-9]..[2-6].......
forward-digits 13
dial-peer voice 26 pots
trunkgroup Vivo-Analog
description ### Long Distance Calls - Mobile ###
preference 1
destination-pattern 00[1-9][1-9]..[7-9].......
forward-digits 13
dial-peer voice 27 pots
trunkgroup Vivo-Analog
description ### International Calls ###
preference 1
destination-pattern 000T
prefix 00
dial-peer voice 28 pots
trunkgroup Vivo-Analog
description ### Toll Free Calls ###
preference 1
destination-pattern 00800T
prefix 0800
dial-peer voice 29 pots
trunkgroup Vivo-Analog
description ### 0300 Calls ###
preference 1
destination-pattern 00300T
prefix 0300
dial-peer voice 30 pots
trunkgroup Vivo-Analog
description ### 0303 Calls ###
preference 1
destination-pattern 00303T
prefix 0303
dial-peer voice 31 pots
trunkgroup Vivo-Analog
description ### Emergency Calls ###
preference 1
destination-pattern 019.
forward-digits 3
dial-peer voice 32 pots
trunkgroup Vivo-Analog
description ### Service Numbers Calls ###
preference 1
destination-pattern 01[0-8]T
prefix 1
dial-peer voice 33 pots
trunkgroup Vivo-Analog
description ### Local Calls - Collect Calls Fixed ###
preference 1
destination-pattern 09090[2-5].......
prefix 9090
dial-peer voice 34 pots
trunkgroup Vivo-Analog
description ### Local Calls - Collect Calls Mobile ###
preference 1
destination-pattern 09090[6-8].......
prefix 9090
dial-peer voice 35 pots
trunkgroup Vivo-Analog
description ### Local Calls - Collect Calls Mobile ###
preference 1
destination-pattern 090909T
prefix 90909
dial-peer voice 36 pots
trunkgroup Vivo-Analog
description ### Long Distance Calls - Collect Calls ###
preference 1
destination-pattern 090[1-9][1-9]..[1-9].......
forward-digits 14
dial-peer voice 99 pots
destination-pattern 9
port 0/1/3
forward-digits all -
I left my iPad on a plane - find iPhone app says offline
I left my iPad on a plane powered completely down. When I use the find iPhone app (which had always worked in the past) it lists the iPad, my iPhone, and my iPod. When I first open the app on my phone, it says my iPhone is "this device" and has a green dot. It says my iPod touch is "locating..." then eventually goes to "offline" (because I have it off). For the missing iPad, it never says "locating..." it only says "offline" immediately when I open the app. I had just updated to iOS 7.0.2. I have the four digit code on the iPad but is it possible that someone wiped it clean already and that's why is says offline without even trying to "locate" it?
Any help would be very appreciated.
I already filed a claim with the airport and the airline - I am just debating if I should erase it or wait and see if someone responds to my "lost mode" message and calls my cell.You don't sound stupid to me at all. Everybody has forgotten something of value or significance somewhere at some time or another. It is no fun at all when it is something of this value and your chances of getting it back are so slim.
I would really encourage you to use a passcode from the beginning with the next device though - it really is the only true security you have for your material on a mobile device. Anything you can do after the fact is never as good as having the device secured beforehand.
Also be sure to check with the airline in case you are lucky and it turns up in their lost and found (some airports and airlines actually have brick and mortar stores to sell all the stuff left behind and never claimed - there is a big one in Atlanta for example with everything from clothes to jewellery to golf clubs to cameras and laptops).
Also check your home owners or renters insurance policy to see if they cover such items while traveling (mine does, but the deductable is also $500 I think). -
Money has been taken from my bank account for items I hav'nt purchased, My bank says to contact I tunes but I cannot find out who to contact, so trying this to see if anyone else has had the same problem
You can contact iTunes support via this page : http://www.apple.com/support/itunes/contact/- click on Contact iTunes Store Support on the right-hand side of the page, then Purchases, Billing & Redemption
-
Somehow iTunes has been deleted from my IPad. How do I get it back? A
iTunes has disappeared from my iPad, and Farmville is taking money I haven't authorized. I don't have Facebook authorised to take payments which presumably means the money can only be going through iTunes, so I really need to get the app back to cancel all payments. (Unless some kind person out there knows some other way.)
I'd be so grateful for any help at all in re-installng iTunes - the Apple site just sends me in circles and won't offer any way to re-install. To make matters worse, the appstore icon has also disappeared from my iPad too so I can't get at it that way.
And if anyone also knows how to stop Farmville (whose contact link conveniently - for them - doesn't work) taking my money that wouod be brilliant.
To sum up:
iPad 2
No iTunes link or icon
Need to re-install?
Apple site no help
No money authorised in Facebook, but money taken by Farmville
Money going via iTunes?
No way into iTunes to stop it
No appstore link or icon, so no way in through that
Aaaaaaargh!
Help. Please.I tried turning those off but they only seem to function to allow/ prevent auto download to the iPad from other linked computers, e.g. When i download a book to my Kindle I can allow/prevent it also loading in the
Kindle app on the iPad.
I've changed my Apple identity and password, and removed my bank card info which I hope will stop any further financial shenanigans, and Farmville seems to have registered it. Did all this deep inside thebsettings app.
But still can't work out how to get the iTunes store or the apps store back.
Really appreciate you tryimg to help, and so speedily. I was beginning to think I'd have to cancel my bank card, *not* something I want to do a week before Xmas!
If this were a pc I'd know what to do; 25 years and counting experience delving into their virtual innards, resetting registry, etc., but this Apple game has whole new rules I haven't hada chance to learn yet, and it doesn't seem as amenable to amatuer tinkering.
But i do love my new toy, so am very sad that it's broken. Amy further help very greatly appreciated.
Thanks for suggestions so far.
Aileen
Maybe you are looking for
-
Historical Reporting Client issues
Hi, Cisco Unified CCX Administration - HA Setup System version: 8.0.2.11002-3 Supervisor PC: Windows XP SP3 I've client facing some issue with HRC. He seems duplicate entries for few of the agents. He can recall those entries were earlier added/dele
-
Why System.in is blocking other IO call
I was trying this simple program to run some test... package com.jpmc.ibtech.hycee.base; import java.io.IOException; public class TestThread { * @param args * @throws IOException public static void main(String[] args) throws IOExcept
-
Desktop appearance: Can't restore to normal size.
This is probably a Lion 101 issue, but it's got me frustrated. The desktop image somehow got "larger" so that the whole menu bar for instance is not totally visible. I have to put the cursor at the edges of the screen which has the effect of "pushing
-
Yosemite error 150:30. Photoshop CS4
Hard drive was failing so new hard drive and Yosemite. Now I get an error when trying to launch PS CS4. Error code 150:30 Licensing for this product has stopped working. Any ideas? Don't want to upgrade.
-
Elements 5 with Windows 8 problems
I just got a new Windows 8 computer from an old XP. I had Elements 5, and it was reinstalled along with my canon camera. I know next to nothing about all this and have my brother do it. I have not been able to get my Elements to work like it did on t