Oracle
 sql >> база данни >  >> RDS >> Oracle

Топ 30 най-полезни заявки за едновременен мениджър

Съдържание

Какво представляват едновременните мениджъри

  • Едновременните мениджъри са контролерите на фоновата обработка за приложенията на Oracle.
  • Основната функция на Concurrent Managers е да регулират и контролират процесните заявки въз основа на набор от правила.
  • Това е техника, използвана за изпълнение на неинтерактивни, зависими от данни програми едновременно във фонов режим.
  • Приложенията на Oracle се предлагат с предварително дефинирани мениджъри, включително вътрешния едновременен мениджър (ICM), стандартен мениджър, мениджър за разрешаване на конфликти (CRM) и мениджъри на транзакции (TM).
  • Вътрешният едновременен мениджър контролира всички останали едновременни мениджъри, които са процеси на операционна система, които търсят заявки.
  • В рамките на приложенията можете също да създадете произволен брой едновременни мениджъри, които да обработват определени типове заявки или програми и да ги специализирате за вашите бизнес изисквания
  • ICM (Internal Concurrent Manager) контролира всички други едновременни мениджъри.
  • Стандартният мениджър приема всякакви заявки. Той няма предварително дефинирани правила за специализация и е активен през цялото време. Не се препоръчва добавянето на правила за специализация към стандартния мениджър, тъй като това е обичайно да създава проблеми.
  • Мениджърът за разрешаване на конфликти разрешава конфликти, като например несъвместимост на заявките.

Отстраняването на проблеми с Concurrent Manager е основна част от администрирането на приложенията на Oracle. Ето 30-те най-полезни заявки за едновременен мениджър, които да ви помогнат при разрешаването на проблеми. Просто влезте в базата данни на Oracle с подходящи потребителски приложения, за да получите всички подробности

Топ 30 най-полезни заявки за едновременен мениджър

Запитване за проверка на настройката на ICM в средата на Concurrent Manager

изберете 'PCP' "име", valuefrom apps.fnd_env_context, където променлива_name ='APPLDCP' и concurrent_process_id =(изберете max(concurrent_process_id)от apps.fnd_concurrent_processes, където concurrent_queue_id =1)UNION( count queue_id =1)UNION, de ALLRAC *), 0, 'N', 1, 'N', 'Y') "стойност" от V$threadUNION ALLизберете "GSM" "име", NVL(v.profile_option_value, 'N') "стойност" от приложения. fnd_profile_options p, apps.fnd_profile_option_values ​​vwhere p.profile_option_name ='CONC_GSM_ENABLED' и p.profile_option_id =v.profile_option_idUNION ALL ALL изберете име, стойност от apps.fnd_concurrent_queue =queu_concurrent_where_0; 

Запитване за проверка на подробностите за всички активирани Concurrent Manager

изберете fcq.application_id "Идентификатор на приложението",fcq.concurrent_queue_name, fcq.user_concurrent_queue_name "Service",fa.application_short_name, fcq.target_node "Node",fcq.max_processes "Qc.de_name", fc. node_name2 "вторичен", fcq.cache_size "размер на кеша", fcp.concurrent_processor_name "Програма библиотека", sleep_secondsfrom apps.fnd_concurrent_queues_vl fcq, apps.fnd_Application fcq.concurrent_processor_id =fcp.concurrent_processor_id и fcq.enabled_flag='Y';

Как да проверя вида на заявката и програмите за едновременните мениджъри

формат за действие на колона a10формат на мениджър на колона a20формат на обект на колона a20тип формат на колона a10задаване на страници 0задаване на редове 400изберете q.application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Manager.mean", lpean, p. .user_concurrent_program_name "Object"from apps.fnd_concurrent_queue_content c, apps.fnd_concurrent_queues_vl q,apps.fnd_concurrent_programs_vl p, apps.fnd_lookups l1, apps.fnd_lookups l2where q.concurrent_queue_id =c.concurrent_queue_idand q.application_id =c.queue_application_idand c.type_code ='P 'и c.type_id =p.concurrent_program_idand c.type_application_id =p.application_idand l1.lookup_code =c.include_flagand l1.lookup_type ='INCLUDE_EXCLUDE' и l2.lookup_code ='UN' и l2.lookup_code ='UN' и 'P' и l2.lookup_code ='UN' и l2.lookup_code ='UN' и l2.lookup_code ='UN' и l2.lookup. application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Мениджър", l1.означаващ "Действие", "Application" "Type", a.application_name "Object" от apps.fnd_concurrent_queue_content c, apps.fnd_concu rrent_queues_vl q,apps.fnd_application_vl a, apps.fnd_lookups l1 където q.concurrent_queue_id =c.concurrent_queue_idand q.application_id =c.queue_application_id и c.type_application_id и c.type_code_application_id и c.type_code ='Plication_code_and. c.include_flagand l1.lookup_type ='INCLUDE_EXCLUDE'UNION ALLselect q.application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Manager", l1.meaning "Action",l2.meaning "Action",l2.meaning "Action",l2.meaning "Action",l2.meaning "Action",l2.meaning "Action",l2.peaning "Tfromplex". fnd_concurrent_queue_content c, apps.fnd_concurrent_queues_vl q,apps.fnd_concurrent_complex_rules x,apps.fnd_lookups l1, apps.fnd_lookups l2, където q.concurrent_queue_id_id =c.concurrent_queue_id_id =c.concurrent_id_c. complex_rule_idand c.type_application_id =x.application_idand l1.lookup_code =c.include_flag и l1.lookup_type ='INCLUDE_EXCLUDE' и l2.lookup_code ='C' и l2.lookup_type ='id_CPALL_appSPElication, qRUAppSPElication, qRU_SPElication, qRU_Application .concurrent_queue_name,q.user_concurrent_queue_name "Мениджър", l1.означаващ "Действие", l2.означаващ "Тип", r.request_class_name "Обект"от apps.fnd_concurrent_queue_content c, apps.fnd_concurrent_queue_content c, apps.fnd_concurrent_queue_content, apps.fnd_concurrent_queue_content, apps.fnd_concurrent_concurrent_concurrent_concurrent_concurrent_concurrent_concurrent_ndsfl. , apps.fnd_lookups l2, където q.concurrent_queue_id =c.concurrent_queue_idand q.application_id =c.queue_application_idand c.type_code ='R' и c.type_id =r.request_class_id и c.type_application_id. .lookup_type ='INCLUDE_EXCLUDE' и l2.lookup_code ='R' и l2.lookup_type ='CP_SPECIAL_RULES'UNION ALLselect q.application_id, q.concurrent_queue_name,q.user_queue_name,q.user_queue_name,q.user_queue_name,q.user_concurrentname. Тип", o.oracle_username "Object"от apps.fnd_concurrent_queue_content c, apps.fnd_concurrent_queues_vl q, apps.fnd_oracle_userid o,apps.fnd_lookups l1, apps.fnd_lookups l2andqqueueapp_id_ccurent_id.qqueueapp_id_q. _application_idand c.type_code ='O'и c.type_id =o.oracle_idand l1.lookup_code =c.include_flag и l1.lookup_type ='INCLUDE_EXCLUDE'и l2.lookup_code ='O'и l2.lookup_code ='O'and l2.lookup_code ='O'и l2.lookup_code ='O'и l2.lookup_code_type_Cl2.lookup_CPLE .application_id, q.concurrent_queue_name,q.user_concurrent_queue_name "Мениджър", l1.означаващ "Действие", l2.означаващ "Тип", u.user_name "Обект" от apps.fnd_concurrent_queue_content c, appsLFNQUU_, appsLFNQU_Apps. apps.fnd_lookups l1, apps.fnd_lookups l2, където q.concurrent_queue_id =c.concurrent_queue_idand q.application_id =c.queue_application_idand c.type_code ='U' и c.type_id =u.user1.flokupo =u.user1.flokup_id =u.user1.flokup_id 'INCLUDE_EXCLUDE' и l2.lookup_code ='U' и l2.lookup_type ='CP_SPECIAL_RULES'UNION ALL изберете q.application_id, q.concurrent_queue_name,q.user_concurrent_queue_name,q.user_concurrent_queue_name, q.user_concurrent_queue_name", inglAmean "Manaan". to_char(c.type_id) "Обект"от apps.fnd_concurrent_queue_content c, apps.fnd_concur rent_queues_vl q,apps.fnd_lookups l1, apps.fnd_lookups l2, където q.concurrent_queue_id =c.concurrent_queue_idand q.application_id =c.queue_application_id и c.type_code',','C', не в (',C' ')и l1.lookup_code =c.include_flag и l1.lookup_type ='INCLUDE_EXCLUDE' и l2.lookup_code =c.type_code и l2.lookup_type ='CP_SPECIAL_RULES';

Как да проверите/намерите  смяната/макс/мин за Всички едновременни мениджъри

select fcq.application_id,fcq.concurrent_queue_name,fcq.user_concurrent_queue_name,ftp.application_id,ftp.concurrent_time_period_name,fa.application_short_name,ftp.description,fcqs.min_processes,fcqs.max_processes,fcqs.sleep_seconds,fcqs.service_parametersfrom apps.fnd_concurrent_queues_vl fcq,apps.fnd_concurrent_queue_size fcqs,apps.fnd_concurrent_time_periods ftp,apps.fnd_application fawhere fcq.application_id =fcqs.queue_application_idand fcq.concurrent_queue_id =fcqs.concurrent_queue_idand fcqs.period_application_id =ftp.application_idand fcqs.concurrent_time_period_id =ftp.concurrent_time_period_idand ftp.application_id =fa. application_id;

Запитване за проверка на всички стойности на Concurrent Опция на профил на ниво сайт, свързана с мениджър, и търсене там

SELECT fpo.profile_option_name,fpo.profile_option_id,fpov.profile_option_value,fpov.level_id,fa.application_short_name,fpo.user_profile_option_name,fpo.sql_validation,fpo.descriptionFROM apps.FND_PROFILE_OPTIONS_VL fpo,apps.FND_PROFILE_OPTION_VALUES fpov,apps.fnd_application fawhere fpo .application_id =0 и fpo.site_enabled_flag ='Y' и (fpo.profile_option_name като 'CONC_%'или fpo.profile_option_name като 'FS_%'или fpo.profile_option_name като 'PRINTER%'или fpo.profile_,'option_DIV в CH_ FNDCPVWR_FONT_SIZE', 'MAX_PAGE_LENGTH', 'APPLWRK'))и fpo.profile_option_id =fpov.profile_option_idand fpo.application_id =fpov.application_idand fpo.application_id =fa.application_id_0 =fa.application_id_0 fpov> 

Запитване за проверка на състоянието на едновременен мениджър от задин

select q.user_concurrent_queue_name service_name,a.application_name srvc_app_name,a.application_short_name srvc_app_short_name,q.concurrent_queue_name service_short_name,decode( ( select count(*)from apps.fnd_concurrent_processes fcp1where fcp1.concurrent_queue_id =q.concurrent_queue_idand fcp1.queue_application_id =q. application_idand ( fcp1.process_status_code в ('C','M') или ( fcp1.process_status_code в ('A', 'D', 'T') и съществува (изберете 1 от gv$session, където fcp1.session_id =audsid ))) )/*действителни_процеси */, 0, decode(q.max_processes, 0,'NOT_STARTED', 'DOWN'),q.max_processes, 'UP', 'WARNING') service_status,q.max_processes target_processes,(изберете брой(* )от apps.fnd_concurrent_processes fcp2, където fcp2.concurrent_queue_id =q.concurrent_queue_idand fcp2.queue_application_id =q.application_idand ( fcp2.process_status_code в ('C','/status_code' ('C','/status_code') ', 'D', 'T') и съществува (изберете 1 от gv$session, където fcp2.session_id =au dsid)))) fact_processes,'' message, s.service_handle srvc_handlefrom apps.fnd_concurrent_queues_vl q, apps.fnd_application_vl a,apps.fnd_cp_services, където q.application_id =a.application_idand s.service_id Необходим е случаят =за покриване на случая където мениджърът няма редове в FND_CONCURRENT_PROCESSES. Външните съединения няма да го отрежат. */select q.user_concurrent_queue_name service_name,a.application_name srvc_app_name,a.application_short_name srvc_app_short_name,q.concurrent_queue_name srvc_short_name,decode( q.max_processes',processes'N_D_processes',processes',processes',processes',processes',processes',T_D ' съобщение, s.service_handle srvc_handlefrom apps.fnd_concurrent_queues_vl q, apps.fnd_application_vl a,apps.fnd_cp_services, където q.application_id =a.application_idand s.service_id =q.manager_types' =q.manager_selecs', където процесът съществува_process_types' и не съществуват_програми_на_програми. ,'M','A','D','T')и q.concurrent_queue_id =p.concurrent_queue_idand q.application_id =p.queue_application_id);

За да проверите всички изпълнявани задачи с подробности за DB сесията на текущия DB възел

задаване на редове 200 задавани страници 200 колона PHASE заглавие 'Фаза' формат A8колона СТАТУС заглавие 'Състояние' формат A8колона ПРОГРАМНА заглавка 'Име на програмата' формат A25колона REQUESTOR заглавие 'искател' формат A9Старта заглавие 'Искател' формат A9Start колона 'Време заглавие' ляво START_колона'5 СТАРТ. Runtime(m)' формат 9999.99column OSPID заглавие 'OSPID' формат a5column SID заглавие 'DBSID' формат 99999spool crrunning.lstselect fcrv.request_id REQUEST,decode(fcrv.phase_Pend,'PRunning',', ','I','Inactive','Completed')PHASE,decode(fcrv.status_code, 'A','Waiting', 'B','Resuming', 'C','Normal', 'F', „Насрочен“, „G“, „Предупреждение“, „H“, „На изчакване“, „I“, „Normal“, „M“, „Без мениджър“, „Q“, „Режим на готовност“, „R“, 'Normal', 'S', 'Suspended', 'T', 'Прекратяване', 'U', 'Disabled', 'W', 'Paused', 'X', 'Terminated', 'Z', 'Waiting ',fcrv.status_code)STATUS,substr(fcrv.program,1,25)PROGRAM,substr(fcrv.requestor,1,9)REQUESTOR,to_char(fcrv.actual_start_date,'MM/DD/RR HH24:MI')START_TIME ,round(((sysdate - fcrv.actual_start_date)*1440) ,2)RUN_TIME,substr(fcr.oracle_process_id,1,7)OSPID,vs.sid SID--substr(fcr.os_process_id,1,7)OS_PIDот apps.fnd_conc_req_summary_v fcrv,apps.fnd_concurrents,v$ $process vpwhere fcrv.phase_code ='R' и fcrv.request_id =fcr.request_idand fcr.oracle_process_id =vp.spidand vs.paddr =vp.addrorder по ФАЗА, СТАТУС, ЗАЯВКА desc/

За да намерите Trace файла за конкретна едновременна заявкаst

column traceid format a8column tracename format a80column user_concurrent_program_name format a40column execname format a15column enable_trace format a12set lines 80set pages 22set head offSELECT 'Идентификатор на заявка:'|'|Request|Id:','|Request|id| req.enable_trace,'Име на трасиране:'||dest.value||'/'||lower(dbnm.value)||'_ora_'||oracle_process_id||'.trc','Prog. Име:'||prog.user_concurrent_program_name,'Име на файл:'||execname.execution_file_name|| execname.subroutine_name ,'Състояние:'||decode(phase_code,'R','Running')||'-'||decode(status_code,'R','Normal'),'SID Serial:'||ses .sid||','|| ses.serial#,'Module :'||ses.modulefrom apps.fnd_concurrent_requests req, v$session ses, v$process proc,v$parameter dest, v$parameter dbnm, apps.fnd_concurrent_programs_vl prog,apps.fnd_execuwhere request_id =&requestand req.oracle_process_id=proc.spid(+)и proc.addr =ses.paddr(+)и dest.name='user_dump_dest'and dbnm.name='db_name'и req.concurrent_program_id =prog.concurrent_program_id и req.program_id program_application_id =prog.application_idand prog.application_id =execname.application_idand prog.executable_id=execname.executable_id;

За да намерите цялостната активност на набора от заявки и различните времена за изпълнение на заявката

set linesize 300col Формат "Име на програмата" a50col Изтекъл формат 9999,99col Формат на "Идентификатор на процеса" a10col REQUEST_DATE формат a15col ACTUAL_START_DATE формат a15col REQUEST формат 999999999col 999999999col PARENTCOL) формат f9999999col PARENTCOL PARENTLX99 формат f99nEl99 PARENTCl09 формат f99NEL9/f9ptxlx9 формат fcr.request_id "REQUEST", fcr.parent_request_id "PARENT",fcr.oracle_process_id "ID на процес",fcptl.user_concurrent_program_name "Име на програмата",fcr.argument_text,DECODE(fcr.phase_code,'X', 'ETerminated',' ', 'Грешка', 'C', 'Завършено', 'P', 'Предстоящо', 'R', 'Работа',phase_code) "Фаза", DECODE(fcr.status_code,'X','Прекратено', 'C', 'Normal', 'D', 'Cancelled', 'E', 'Error', 'G', 'Warning', 'Q', 'Scheduled', 'R', 'Normal', 'W ','Пауза','Не съм сигурен') "Състояние",--fcr.phase_code,--fcr.status_code,fcr.request_date,fcr.actual_start_date,fcr.actual_completion_date,(fcr.actual_completion_date - fcr.actual_start)*t4 "Изтекло"FROM (SELECT /*+ индекс (fcr1 FND_CONCURRENT_REQUESTS_N3) */fcr1.request_idFROM fnd_concurrent_requests fcr1W ТУК 1=1 ЗАПОЧНЕТЕ С fcr1.request_id =&request_id--СВЪРЗВАНЕ С ПРЕДИШЕН fcr1.parent_request_id =fcr1.request_id) x,СВЪРЗВАНЕ С ПРЕДИШЕН fcr1.request_id =fcr1.parent_request_id) x,fnd_concurrent_request_id) x,fnd_concurrent_request_id) x,fnd_concurrent_request_id) x,fnd_concurrent_request_id) x,fnd_concurrent_request_id) x.request_idAND fcr.concurrent_program_id =fcp.concurrent_program_idAND fcr.program_application_id =fcp.application_idAND fcp.application_id =fcptl.application_idAND fcp.concurrent_program_id =fcptl.concurrent_concurrent_ID =fcptl.concurrent_US'AND fcp. 

T o намерете sid от идентификатора на заявката

изберете s.inst_id, fcr.request_id, fv.requestor, fv.Program cmgr_job,p.PID,p.SERIAL#,p.USERNAME p_user,p.SPID,to_char(s.logon_time,'DD-MON- YY HH24:MI:SS') Logon_Time,s.program,s.command,s.sid,s.serial#,s.username,s.process,s.machine,s.action,s.modulefrom apps.fnd_concurrent_requests fcr ,apps.FND_CONC_REQ_SUMMARY_V fv,gv$session s,gv$process pwhere fcr.request_id =&request_idand p.SPID =fcr.oracle_process_idand s.process =fcr.OS_PROCESS_ID и s.inst_id =p.inst_id =p.inst_id. request_id =fcr.request_id;

За да намерите всички неща в подробности от конкретния идентификатор на заявка/заявка, за да намерите подробности за едновременна заявка/как да проверите състоянието на едновременна заявка от бекенда/заявка за намиране на едновременна програма run time

 задаване на страници 100;col request_class_application_id формат 99999999 заглавие 'REQUEST_CLASS|APP_ID'col os_process_id формат a8col application_short_name формат a5col requested_start_date формат a18 заглавие DATE 'REQUEST_COMTED актуална глава 'REQUEST'8COMTEP --select r.REQUEST_ID,u.user_name, decode(r.PHASE_CODE,'C', 'Complete','P', 'Pending', 'R', 'Running', r.PHASE_CODE) фаза,декодиране(r .STATUS_CODE, 'C', 'Normal', 'I', 'Normal', 'R' ,'Normal','Q', 'Standby', 'E' ,'Error', 'X' ,'Прекратено' ,'W', 'Пауза', r.STATUS_CODE) състояние,r.PRIORITY,decode(r.HOLD_FLAG,'N','"НЕ е на изчакване"','Y','"ON HOLD"',r. Hold_flag) hold_flag, p.application_short_name, f.user_concurrent_program_name, f.concurrent_program_name, e.executable_name, e.execution_file_name, e.execution_method_cod r.REQUESTED_START_DATE, DD-MO N-YYYY HH:MI') requested_start_date,to_char(r.ACTUAL_START_DATE,'DD-MON-YYYY HH:MI') fact_start_date,decode(r.ACTUAL_COMPLETION_DATE,null,'"Все още работи"',to_char(r.ACTUAL_DATE, 'DD-MON-YYYY HH:MI')) fact_completion_date,to_char(decode(r.ACTUAL_COMPLETION_DATE,null,SYSDATE,r.ACTUAL_COMPLETION_DATE)-decode(r.ACTUAL_START_DATE,null,SYSDATE,r.ACTUAL_START_DATE),r.ACTUAL_COMPLETION_DATE), "Време, работещо",r.CPU_SECONDS,r.LOGICAL_IOS,r.PHYSICAL_IOS,r.ORACLE_PROCESS_ID,r.ORACLE_SESSION_ID,r.OS_PROCESS_ID,r.CD_ID,декодиране(r.ENABLE_TRACE,'N', "',НЕ проследяване 'Y', '"TRACING"', r.ENABLE_TRACE) Trace,decode(f.run_alone_flag, 'N', '"NOT Sam"', 'Y', '"RUN ALONE"', f.run_alone_flag) Сам, r.ARGUMENT_TEXT Parameters,r.LOGFILE_NAMEfrom fnd_concurrent_requests r, fnd_user u, fnd_application p, fnd_concurrent_programs_vl f,fnd_EXECUTABLEs e, fnd_responsibility_vl v, fnd_concurrent_request_class qwhere u.user_id =r.requested_byand p.application_id =r.PROGRAM_APPLICATION_IDand r.CONCURRENT_PROGRAM_ID =f.CONCU RRENT_PROGRAM_ID и f.EXECUTABLE_ID=e.EXECUTABLE_ID и v.responsibility_id =r.responsibility_idand q.request_class_id (+)=r.concurrent_request_class_idand r.request_id =&reqid;

Sql за намиране на чакаща заявка във всички Concurrent Manager/заявка за намиране на чакащи едновременни заявки

изберете request_id,b.user_concurrent_queue_name от apps.fnd_concurrent_worker_requests a,apps.fnd_concurrent_queues_vl b, където a.phase_code ='P' и a.status_code ='I'and a.hold_flag'and a.hold_flag'and a. .concurrent_queue_id =b.concurrent_queue_id и a.control_code е null--и a.concurrent_queue_name !='FNDCRM' и a.concurrent_queue_name не са в ('FNDCRM') ред byrequest_id, b.user_concurrent_name> 

Как да разберете кой мениджър изпълнява вашия идентификационен номер/заявка, за да намерите едновременен мениджър за едновременна програмаm

Формат на колона OsId A7Column Oracle_Process_ID Format 99999Column Concurrent_Queue_Name Format A20Column Log Format A25Column Started_At Формат A20Set Head OffSet Verify OffSet Echo'The OffSelect' | Concurrent_Queue_Name ||' Concurrent Manager изпълни заявката ви от',to_char(Actual_Start_date, ' MON-DD-YY HH:MI:SS AM') || ' - до - ' ||to_char(Actual_COMPLETION_date, 'MON-DD-YY HH:MI:SS AM'),'The ' || Concurrent_Queue_Name ||' Регистрационният файл на едновременния мениджър е „ || P.Logfile_Name,'Request log file is ' || R.Logfile_NameFrom Fnd_Concurrent_Queues Q,Fnd_Concurrent_requests R,Fnd_Concurrent_Processes PWhere(P.Concurrent_Queue_ID =Q.Concurrent_Queue_ID AndQueue_Application_ID =Q.Application_ID )And R.Controlling_Manager =P.Concurrent_Process_IDAnd R.Phase_Code ='C'And Request_ID =&Request_ID;set head on 

За да намерите история на програмата за идентификационен номер на заявка

задайте размер на ред 250col формат на датата на_запит a15col формат на искане_начална_дата a15col формат на фактическа_начална_дата a15col формат на фактическа_завършена_дата a15col формат_аргумент_текст a70col Изтекъл формат 9999.99 изберете * от (select_phase_id',aquestrequest',a.request_id',a.request_id',a.request_id',a.request_de. ,'I','Inactive','P','Pending','R','Running') || ' ' ||DECODE(a.status_code,'A','Waiting','B',' Възобновяване','C','Normal','D','Cancelled','E','Error','G','Warning','H','On Hold','I',' Normal ','M','No Manager','P','Scheduled','Q','Standby','R','Normal','S','Suspended','T','Прекратяване' ,'U','Disabled','W','Paused','X','Terminated','Z',' Waiting') "PHASE_STATUS", a.request_date, a.requested_start_date, a.actual_start_date, a .actual_completion_date ,(nvl(actual_completion_date,sysdate) - действителна_начална_дата)*1440 "Изтекло", a.argument_text ,a.USER_CONCURRENT_PROGRAM_NAMEот apps.FND_CONC_REQ_SUMMARY_NAMEfrom apps.FND_CONC_REQ_SUMMARY_current(a_conquest_reQ_SUMMARY_id_current_request_conlect_concurse_d_curse_programt_current_current_program_concurrent_d_to_program_concurrent_v st_id=&1)---(nvl(actual_completion_date,sysdate) - fact_start_date)*1440> 10order по a.request_id desc) където rownum <100;

Запитване за проверка на историята на едновременното изпълнение на програмата

ttitle offset linesize 180set pagesize 60set newpage 0set pause offset termout onttitle 'CM Analysis Report' skip1col conc_que format a15 heading "Conc Queue"col user_name format a12 heading "Requestor"col reqid format 9999999999999999999999 heading "Date"col start format a8 heading "ActSt|Time"col acomp format a8 heading "ActEnd|Time"col rtime format 99,999 heading "ExTme|(Sec)"col wtime format 99,999 heading "WtTme|(Sec)"col pname format a40 заглавие "Short|Name"col pname2 format a65 heading "Prog Name"col args format a25 заглавие "Arguments"selecttrunc(actual_start_date) sdate,request_id reqid,user_name,to_char(actual_start_date,'HSSH24):a to_char(actual_completion_date,'HH24:MI:SS') acomp,((действителна_начална_дата - заявена_начална_дата)*60*60*24) wtime,((действителна_завършена_дата - действителна_начална_дата)*60*60*24) текущо_начално_название, текущо_начално_време .user_concurrent_program_name pname2,req.argument_text argsfromapplsys.fnd_concurrent_queues que,app lsys.fnd_user usr,applsys.fnd_concurrent_programs prog,applsys.fnd_concurrent_requests req,applsys.fnd_concurrent_processes procwhere(actual_start_date между to_date('&start_date', 'DDY-MOND') -MON-YYYY HH24:MI:SS')oractual_completion_date между to_date('&start_dte', 'DD-MON-YYYY HH24:MI:SS')и to_date('&end_date', 'DD-MON-YYYY HH24:MI:SS '))anduser_concurrent_program_name like '&program_name%'andque.application_id=proc.queue_application_idandque.concurrent_queue_id =proc.concurrent_queue_idandreq.controlling_manager=proc.concurrent_process_idandusr.user_id =req.requested_byandprog.concurrent_program_id =req.concurrent_program_idandprog.application_id =req.program_application_idand prog.concurrent_program_name not in('ACTIVATE','ABORT','DEACTIVATE','VERIFY')order byactual_start_date;

Запитване за намиране на Изпълняваща се заявка  в Concurrent Manager/ как да проверите изпълняваща се едновременна заявка от заявка за състояние на бекенд/конкурентна програма в приложения на Oracle

set pages 58set linesize 79Column Reqst Format 999999Column Requestor Format A10Column Orcl Format A7Column Program Format A10Column Started Format A14Column Manager Format A11Column LN Format a10Column Reqst HEADING 'Request|ID 'Column Requestor HEADING 'Requestor'Column Orcl HEADING 'Oracle|Name' Започна колона HEADING 'Започна от'Колона MANAGER HEADING 'Контролиране|Мениджър'Колона LN HEADING 'Регистрационен файл|име'Колона Програма HEADING 'Program'select Request_Id Reqst, User_Name Requestor, Oracle_Name Requestor, Oracle_UnecurrentName Manager,Oracle_UcurrentName_Programme,FcrеContrameName To_Char(Actual_Start_Date, 'Mm-Dd-Yy Hh24:Mi') Started,Run_Alone_Flag, Single_Thread_FlagFrom Fnd_Concurrent_Requests Fcr, Fnd_Concurrent_Programs Fcp,Fnd_Oracle_Userid O, Fnd_Concurrent_Processes P,Fnd_Concurrent_Queues Q, Fnd_UserWhereControlling_Manager =Concurrent_Process_IDAnd ( P.Concurrent_Queue_ID =Q.Concurrent_Queue_ID ANDP.Queue_Application_ID =Q.Application_ID )И O.Oracle_Id =Fcr.Orac le_IdAnd ( Fcr.Program_Application_Id =Fcp.Application_IdAnd Fcr.Concurrent_Program_Id =Fcp.Concurrent_Program_Id )And Requested_By =User_IdAnd Phase_Code ='R' и Status_Oprer Request_ By I Da_Request_ Acte'R Da 

Запитване за намиране на прекратяващи заявки в Concurrent Manager

set pages 58set linesize 79Column Reqst Format 999999Column Requestor Format A10Column Orcl Format A7Column Program Format A10Column Started Format A14Column Manager Format A11Column LN Format a10Column Reqst HEADING 'Request|ID 'Column Requestor HEADING 'Requestor'Column Orcl HEADING 'Oracle|Name' Започна колона HEADING 'Започна от'Колона MANAGER HEADING 'Контролиране|Мениджър'Колона LN HEADING 'Регистрационен файл|име'Колона Програма HEADING 'Program'Изберете Request_Id Reqst, User_Name Requestor, Oracle_Name Requestor, Oracle_UnecurrentProgramme,Oracle_UcurrentName_Oracle_UcurserName_Oracle_UcurserName To_Char(Actual_Start_Date, 'Mm-Dd-Yy Hh24:Mi') Started,Run_Alone_Flag, Single_Thread_FlagFrom Fnd_Concurrent_Requests Fcr, Fnd_Concurrent_Programs Fcp,Fnd_Oracle_Userid O, Fnd_Concurrent_Processes P,Fnd_Concurrent_Queues Q, Fnd_UserWhereControlling_Manager =Concurrent_Process_IDAnd ( P.Concurrent_Queue_ID =Q.Concurrent_Queue_ID ANDP.Queue_Application_ID =Q.Application_ID )And O.Oracle_Id =Fcr.Orac le_IdAnd ( Fcr.Program_Application_Id =Fcp.Application_IdAnd Fcr.Concurrent_Program_Id =Fcp.Concurrent_Program_Id )And Requested_By =User_IdAnd Phase_Code ='R' and Status_Code ='T'Order By Actual_Start_Date, Request_Id/

Query to find Paused Requests in Concurrent Manager

set pages 58set linesize 79Column Reqst Format 999999Column Requestor Format A10Column Orcl Format A7Column Program Format A10Column Started Format A14Column Manager Format A11Column LN Format a10Column Reqst HEADING 'Request|ID 'Column Requestor HEADING 'Requestor'Column Orcl HEADING 'Oracle|Name'Column Started HEADING 'Started at'Column MANAGER HEADING 'Controlling|Manager'Column LN HEADING 'Logfile|name'Column Program HEADING 'Program'Select Request_Id Reqst, User_Name Requestor, Oracle_Username Orcl,Fcr.Logfile_Name LN,Concurrent_Program_Name Program,To_Char(Actual_Start_Date, 'Mm-Dd-Yy Hh24:Mi') Started,Run_Alone_Flag, Single_Thread_FlagFrom Fnd_Concurrent_Requests Fcr, Fnd_Concurrent_Programs Fcp,Fnd_Oracle_Userid O, Fnd_UserWhere Status_Code ='W'And Fcr.Concurrent_Program_Id =Fcp.Concurrent_Program_IdAnd Fcr.Program_Application_Id =Fcp.Application_IdAnd Requested_By =User_IdAnd O.Oracle_Id =Fcr.Oracle_IdOrder By Actual_Start_Date, Request_Id/

Check the log and outfile created from certain time period

select outfile_node_name,outfile_name, logfile_node_name,logfile_namefrom fnd_concurrent_requestswhere phase_code ='C' andactual_completion_date  

Run the following query to check whether any specialization rule defined for any concurrent manager that includes/excludes the concurrent program in question. Query returns ‘no rows selected’ when there are no Include/Exclude specialization rules of Program type for the given concurrent program.

select 'Concurrent program '||fcp.concurrent_program_name||' is ' ||decode(fcqc.include_flag,'I','included in ','E','excluded from ')||fcqv.user_concurrent_queue_name specialization_rule_details from fnd_concurrent_queues_vl fcqv,fnd_concurrent_queue_content fcqc,fnd_concurrent_programs fcp where fcqv.concurrent_queue_id=fcqc.concurrent_queue_id and fcqc.type_id=fcp.concurrent_program_id and fcp.concurrent_program_name='';

Query to find the concurrent program id from concurrent request

select concurrent_program_id from fnd_concurrent_requests where request_id=&1;

Last 100 execution detail of concurrent program

set linesize 250col request_date format a15col requested_start_date format a15col actual_start_date format a15col actual_completion_date format a15col argument_text format a70col Elapsed format 9999.99select * from (select  a.request_id, a.parent_request_id,DECODE(a.phase_code,'C','Completed','I','Inactive','P','Pending','R','Running') || ' ' ||DECODE(a.status_code,'A','Waiting','B','Resuming','C','Normal','D','Cancelled','E','Error','G','Warning','H','On Hold','I',' Normal','M','No Manager','P','Scheduled','Q','Standby','R','  Normal','S','Suspended','T','Terminating','U','Disabled','W','Paused','X','Terminated','Z',' Waiting') "PHASE_STATUS ", a.request_date, a.requested_start_date, a.actual_start_date, a.actual_completion_date,(nvl(actual_completion_date,sysdate) - actual_start_date)*1440 "Elapsed", a.argument_text ,a.USER_CONCURRENT_PROGRAM_NAMEfrom apps.FND_CONC_REQ_SUMMARY_V a where a.concurrent_program_id=(select concurrent_program_id from fnd_concurrent_requests where request_id=&1)order by a.request_id desc) where rownum <100;

To find the logfile /outfile/node name for the particular request

SELECT  'LOGFILE_NAME=' || logfile_nameFROM    fnd_concurrent_requestsWHERE   request_id =&req/SELECT  'LOGFILE_NODE_NAME=' || logfile_node_nameFROM    fnd_concurrent_requestsWHERE   request_id =&req/SELECT  'OUTFILE_NAME=' || outfile_nameFROM    fnd_concurrent_requestsWHERE   request_id =&req/SELECT  'OUTFILE_NODE_NAME=' || outfile_node_nameFROM    fnd_concurrent_requestsWHERE   request_id =&req

Check ICM is running on what node

select a.concurrent_queue_name,a.target_node, substr(b.os_process_id,0,10) “OS Proc”, b.oracle_process_id “Oracle ID”, b.process_status_codefrom apps.fnd_concurrent_queues a, apps.fnd_concurrent_processes bwhere a.concurrent_queue_id=b.concurrent_queue_idand a.concurrent_queue_name=’FNDICM’and b.process_status_code=’A’order by b.process_status_code/

Check OS process ID/Target node for CM

Select User_Concurrent_Queue_Name Manager, Q.Target_Node Node, Os_Process_IDfrom apps.fnd_concurrent_queues_vl Q,apps.Fnd_Concurrent_Processes Pwhere Q.Application_Id =Queue_Application_IDAnd (Q.Concurrent_Queue_ID =P.Concurrent_Queue_ID);

To know the correct status of the Concurrent request from the back end

The view FND_AMP_REQUESTS_V shows the proper phase and statusselect request_id, phase, statusfrom fnd_amp_requests_v;

Check the completion text for the concurrent request

select COMPLETION_TEXT from apps.fnd_concurrent_requests where REQUEST_ID=&n;

To Check Actual and Target Processes for Internal Manager

select MAX_PROCESSES,RUNNING_PROCESSESfrom FND_CONCURRENT_QUEUESwhere CONCURRENT_QUEUE_NAME='FNDICM';

To check the Actual and Target Processes for Standard Manager

select MAX_PROCESSES,RUNNING_PROCESSESfrom FND_CONCURRENT_QUEUESwhere CONCURRENT_QUEUE_NAME='STANDARD';

To check the invalid objects related to FND

select substr(owner,1, 12) owner, substr(object_type,1,12) type,substr(status,1,8) status, substr(object_name, 1, 25) namefrom dba_objectswhere object_name like 'FND_%'and status='INVALID';

Query to check whether any specialization rule defined for any concurrent manager that includes/excludes the concurrent program in question.

select 'Concurrent program '||fcp.concurrent_program_name||' is ' ||decode(fcqc.include_flag,'I','included in ','E','excluded from ')||fcqv.user_concurrent_queue_name specialization_rule_details from fnd_concurrent_queues_vl fcqv,fnd_concurrent_queue_content fcqc,fnd_concurrent_programs fcp where fcqv.concurrent_queue_id=fcqc.concurrent_queue_id and fcqc.type_id=fcp.concurrent_program_id and fcp.concurrent_program_name='';

Note:Program Short Name is visible when the program is queried in concurrent program definition form.

Query returns ‘no rows selected’ when there are no Include/Exclude specialization rules of Program type for the given concurrent program.

For each manager get the number of pending and running requests in each queue:

col "USER_CONCURRENT_QUEUE_NAME" format a40;SELECT a.USER_CONCURRENT_QUEUE_NAME,a.MAX_PROCESSES,sum(decode(b.PHASE_CODE,'P',decode(b.STATUS_CODE,'Q',1,0),0)) Pending_Standby,sum(decode(b.PHASE_CODE,'P',decode(b.STATUS_CODE,'I',1,0),0)) Pending_Normal,sum(decode(b.PHASE_CODE,'R',decode(b.STATUS_CODE,'R',1,0),0)) Running_NormalFROM FND_CONCURRENT_QUEUES_VL a, FND_CONCURRENT_WORKER_REQUESTS bwhere a.concurrent_queue_id =b.concurrent_queue_idAND b.Requested_Start_Date<=SYSDATEGROUP BY a.USER_CONCURRENT_QUEUE_NAME,a.MAX_PROCESSES

To Get Long Running Concurrent Programs:

SELECT fcr.oracle_session_id,fcr.request_id rqst_id,fcr.requested_by rqst_by,fu.user_name,fr.responsibility_name,fcr.concurrent_program_id cp_id,fcp.user_concurrent_program_name cp_name,TO_CHAR (fcr.actual_start_date, 'DD-MON-YYYY HH24:MI:SS')act_start_datetime,DECODE (fcr.status_code, 'R', 'R:Running', fcr.status_code) status,ROUND (((SYSDATE - fcr.actual_start_date) * 60 * 24), 2) runtime_min,ROUND (((SYSDATE - fcr.actual_start_date) * 60 * 60 * 24), 2)runtime_sec,fcr.oracle_process_id "oracle_pid/SPID",fcr.os_process_id os_pid,fcr.argument_text,fcr.outfile_name,fcr.logfile_name,fcr.enable_traceFROM apps.fnd_concurrent_requests fcr,apps.fnd_user fu,apps.fnd_responsibility_tl fr,apps.fnd_concurrent_programs_tl fcpWHERE fcr.status_code LIKE 'R'AND fu.user_id =fcr.requested_byAND fr.responsibility_id =fcr.responsibility_idAND fcr.concurrent_program_id =fcp.concurrent_program_idAND fcr.program_application_id =fcp.application_idAND ROUND (((SYSDATE - fcr.actual_start_date) * 60 * 24), 2)> 60ORDER BY fcr.concurrent_program_id,request_id DESC;

Checking the incompatibilities between the programs/query to find incompatible program of a concurrent
The below query can be used to find all incompatibilities in an application instance.

SELECT a2.application_name, a1.user_concurrent_program_name, DECODE (running_type, 'P', 'Program', 'S', 'Request set', 'UNKNOWN' ) "Type", b2.application_name "Incompatible App", b1.user_concurrent_program_name "Incompatible_Prog", DECODE (to_run_type, 'P', 'Program', 'S', 'Request set', 'UNKNOWN' ) incompatible_type FROM apps.fnd_concurrent_program_serial cps, apps.fnd_concurrent_programs_tl a1, apps.fnd_concurrent_programs_tl b1, apps.fnd_application_tl a2, apps.fnd_application_tl b2 WHERE a1.application_id =cps.running_application_id AND a1.concurrent_program_id =cps.running_concurrent_program_id AND a2.application_id =cps.running_application_id AND b1.application_id =cps.to_run_application_id AND b1.concurrent_program_id =cps.to_run_concurrent_program_id AND b2.application_id =cps.to_run_application_id AND a1.language ='US' AND a2.language ='US' AND b1.language ='US' AND b2.language ='US';

GET THE CURRENT SQL STATEMENT RUNNING FOR A CONCURRENT REQUEST

SELECT A.REQUEST_ID, D.SID, D.SERIAL#, D.OSUSER, D.PROCESS, C.SPID,E.SQL_TEXTFROM APPS.FND_CONCURRENT_REQUESTS A,APPS.FND_CONCURRENT_PROCESSES B,V$PROCESS C,V$SESSION D,V$SQL EWHERE A.CONTROLLING_MANAGER =B.CONCURRENT_PROCESS_IDAND C.PID =B.ORACLE_PROCESS_IDAND B.SESSION_ID =D.AUDSIDAND D.SQL_ADDRESS =E.ADDRESSAND A.REQUEST_ID ='&REQUEST_ID';

Cancelling Concurrent request/update concurrent request status from backend

--By request id update fnd_concurrent_requestsset status_code='D', phase_code='C'where request_id=&reqid;--By program_idupdate fnd_concurrent_requestsset status_code='D', phase_code='C'where CONCURRENT_PROGRAM_ID=&prgid;

How to submit a concurrent program using the CONCSUB utility from the operating system

CONCSUB / \[WAIT=N|Y|] \CONCURRENT \[PROGRAM_NAME=] \[ORG_ID=<#>] - R12 onwards only[REPEAT_TIME=] \[REPEAT_INTERVAL=] \[REPEAT_INTERVAL_UNIT=] \[REPEAT_INTERVAL_TYPE=] \[REPEAT_END=] \[START=] \[IMPLICIT= \[ ... ]

how to enable trace for a running concurrent request

First Find the sid and serial# using below queries

For RAC

select s.inst_id, fcr.request_id, fv.requestor, fv.Program cmgr_job,
p.PID,
p.SERIAL#,
p.USERNAME p_user,
p.SPID,
to_char(s.logon_time,'DD-MON-YY HH24:MI:SS') Logon_Time,
s.program,
s.command,
s.sid,
s.serial#,
s.username,
s.process,
s.machine,
s.action,
s.module
from apps.fnd_concurrent_requests fcr,
apps.FND_CONC_REQ_SUMMARY_V fv,
gv$session s,
gv$process p
where fcr.request_id =&request_id
and p.SPID =fcr.oracle_process_id
and s.process =fcr.OS_PROCESS_ID
and s.inst_id =p.inst_id
and p.addr =s.paddr
and fv.request_id =fcr.request_id
;

For Non-RAC, the above and below both can be used

select s.sid , s.serial# ,p.spid from fnd_concurrent_requests f,v$session s , v$process p where f.request_id =and f.oracle_process_id =p.spid and p.addr =s.paddr 

Enable Trace

EXEC DBMS_SYSTEM.SET_EV(&sid , &serial,10046, 12 ,''); 

Check the Trace file

Log on to the DB Tier …. Check for the trace file _ora_.trc

Find the scheduled concurrent requests:



SELECT cr.request_id,
DECODE (cp.user_concurrent_program_name,
'Report Set', 'Report Set:' || cr.description,
cp.user_concurrent_program_name
) NAME,
argument_text, cr.resubmit_interval,
NVL2 (cr.resubmit_interval,
'PERIODICALLY',
NVL2 (cr.release_class_id, 'ON SPECIFIC DAYS', 'ONCE')
) schedule_type,
DECODE (NVL2 (cr.resubmit_interval,
'PERIODICALLY',
NVL2 (cr.release_class_id, 'ON SPECIFIC DAYS', 'ONCE')
),
'PERIODICALLY', 'EVERY '
|| cr.resubmit_interval
|| ' '
|| cr.resubmit_interval_unit_code
|| ' FROM '
|| cr.resubmit_interval_type_code
|| ' OF PREV RUN',
'ONCE', 'AT :'
|| TO_CHAR (cr.requested_start_date, 'DD-MON-RR HH24:MI'),
'EVERY:' || fcr.class_info
) schedule,
fu.user_name, requested_start_date
FROM apps.fnd_concurrent_programs_tl cp,
apps.fnd_concurrent_requests cr,
apps.fnd_user fu,
apps.fnd_conc_release_classes fcr
WHERE cp.application_id =cr.program_application_id
AND cp.concurrent_program_id =cr.concurrent_program_id
AND cr.requested_by =fu.user_id
AND cr.phase_code ='P'
AND cr.requested_start_date> SYSDATE
AND cp.LANGUAGE ='US'
AND fcr.release_class_id(+) =cr.release_class_id
AND fcr.application_id(+) =cr.release_class_app_id;

History of concurrent requests which are error out in last 2 days

SELECT a.request_id "Req Id"
,a.phase_code,a.status_code
, actual_start_date
, actual_completion_date
,c.concurrent_program_name || ':' || ctl.user_concurrent_program_name "program"
FROM APPLSYS.fnd_Concurrent_requests a,APPLSYS.fnd_concurrent_processes b
,applsys.fnd_concurrent_queues q
,APPLSYS.fnd_concurrent_programs c
,APPLSYS.fnd_concurrent_programs_tl ctl
WHERE a.controlling_manager =b.concurrent_process_id
AND a.concurrent_program_id =c.concurrent_program_id
AND a.program_application_id =c.application_id
AND a.status_code ='E'
AND a.phase_code ='C'
AND actual_start_date> sysdate - 2
AND b.queue_application_id =q.application_id
AND b.concurrent_queue_id =q.concurrent_queue_id
AND ctl.concurrent_program_id =c.concurrent_program_id
AND ctl.LANGUAGE ='US'
ORDER BY 5 DESC;

query to check trace enabled for concurrent program

SELECT A.CONCURRENT_PROGRAM_NAME "Program Name", SUBSTR(A.USER_CONCURRENT_PROGRAM_NAME,1,40) "User Program Name", SUBSTR(B.USER_NAME,1,15) "Last Updated By", SUBSTR(B.DESCRIPTION,1,25) DESCRIPTION FROM APPS.FND_CONCURRENT_PROGRAMS_VL A, APPLSYS.FND_USER B WHERE A.ENABLE_TRACE='Y' AND A.LAST_UPDATED_BY=B.USER_ID;

Related Articles 

Oracle Concurrent Manager :How an E-Business Suite Concurrent Manager Process Works,Oracle Concurrent Manager,What is internal monitor,What is service manager and troubleshooting
Concurrent Request Phase and status :All information about Concurrent Request Phase and Status .The meaning derived for each combination .
Core files in Oracle Concurrent manager :his page contains description about core file for oracle concurrent manager.Core file can be used to debug various issues in CM
Priority for concurrent Program :This post has detailed description about changing Priority for Concurrent Program or user or request to solve user critical report running issues
Concurrent Manager Interview questions :Check out 24 Concurrent Manager Interview questions to help you in EBS interview. This consists of all sort of question on standard manager,service manager
Parallel Concurrent Processing:What is PCP, How to setup it, how to define internal monitor
ORA-01427 :Check out this for the solution on ORA-01427:single-row subquery returns more than one row error ,how to resolve it when it happens with Concurrent Manager

Recommended  Courses

The following are some of the recommended courses you can buy if you want to get a step further

Given below are the links to some of the courses


Oracle DBA 11g/12c – Database Administration for Junior DBA :This course is good for the people who are starting as Junior DBA or aspire to be Oracle DBA. This will provide a good understanding of backup &recovery and General administration tasks
Oracle Database:Oracle 12C R2 RAC Administration :This course covers the installation, administration of Oracle RAC. A good course for Oracle DBA who want to upgrade his skills for Oracle RAC
Oracle Data Guard:Database Administration for Oracle 12C R2 :This course covers the installation, administration of Oracle Dataguard. A good course for Oracle DBA who want to upgrade his skills for Oracle Dataguard

Recommended Books

OCA/OCP Oracle Database 12c All-in-One Exam Guide (Exams 1Z0-061, 1Z0-062, &1Z0-063)
Oracle Database 12c DBA Handbook (Oracle Press)
Oracle DBA All-in-one Scripts – A guide every DBA must have:Oracle dba scripts collection used by expert database administrators everyday. Must have dba scripts for your daily activities!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Оптимизаторът в Oracle Database 19c

  2. Показване на имена на всички ограничения за таблица в Oracle SQL

  3. Изберете групово събиране в пример на Oracle

  4. Изчисляване на разликата между две времеви марки в Oracle в милисекунди

  5. Еквивалент на външни таблици на Oracle в SQL Server