Performence Tunning
Hi All,
I am looking for refrence book for oracle 10g performence tunning.
Could you please advice me the name of some refrence book, which can help me to know the in and out concept of performence tunning from administration point of view.
Regards,
SS
http://www.amazon.com/Optimizing-Oracle-Performance-Cary-Millsap/dp/059600527X/ref=sr_1_3?ie=UTF8&qid=1249398898&sr=8-3
http://www.amazon.com/Troubleshooting-Oracle-Performance-Christian-Antognini/dp/1590599179/ref=sr_1_5?ie=UTF8&qid=1249398898&sr=8-5
http://www.amazon.com/Oracle-Wait-Interface-Performance-Diagnostics/dp/007222729X/ref=sr_1_6?ie=UTF8&qid=1249398898&sr=8-6
http://www.amazon.com/Cost-Based-Oracle-Fundamentals-Experts-Voice/dp/1590596366/ref=sr_1_14?ie=UTF8&qid=1249398898&sr=8-14
to start with.
Similar Messages
-
Help on performence tunning?
hi, pls send detals
hi,
some hands on notes.
http://www.erpgenie.com/abap/performance.htm
http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_PerformanceAnalysisTools.asp
http://www.sap-img.com/abap/performance-tuning-for-data-selection-statement.htm
Performance tuning for Data Selection Statement
For all entries
The for all entries creates a where clause, where all the entries in the driver table are combined with OR. If the number of
entries in the driver table is larger than rsdb/max_blocking_factor, several similar SQL statements are executed to limit the
length of the WHERE clause.
The plus
Large amount of data
Mixing processing and reading of data
Fast internal reprocessing of data
Fast
The Minus
Difficult to program/understand
Memory could be critical (use FREE or PACKAGE size)
Some steps that might make FOR ALL ENTRIES more efficient:
Removing duplicates from the the driver table
Sorting the driver table
If possible, convert the data in the driver table to ranges so a BETWEEN statement is used instead of and OR statement:
FOR ALL ENTRIES IN i_tab
WHERE mykey >= i_tab-low and
mykey <= i_tab-high.
Nested selects
The plus:
Small amount of data
Mixing processing and reading of data
Easy to code - and understand
The minus:
Large amount of data
when mixed processing isnt needed
Performance killer no. 1
Select using JOINS
The plus
Very large amount of data
Similar to Nested selects - when the accesses are planned by the programmer
In some cases the fastest
Not so memory critical
The minus
Very difficult to program/understand
Mixing processing and reading of data not possible
Use the selection criteria
SELECT * FROM SBOOK.
CHECK: SBOOK-CARRID = 'LH' AND
SBOOK-CONNID = '0400'.
ENDSELECT.
SELECT * FROM SBOOK
WHERE CARRID = 'LH' AND
CONNID = '0400'.
ENDSELECT.
Use the aggregated functions
C4A = '000'.
SELECT * FROM T100
WHERE SPRSL = 'D' AND
ARBGB = '00'.
CHECK: T100-MSGNR > C4A.
C4A = T100-MSGNR.
ENDSELECT.
SELECT MAX( MSGNR ) FROM T100 INTO C4A
WHERE SPRSL = 'D' AND
ARBGB = '00'.
Select with view
SELECT * FROM DD01L
WHERE DOMNAME LIKE 'CHAR%'
AND AS4LOCAL = 'A'.
SELECT SINGLE * FROM DD01T
WHERE DOMNAME = DD01L-DOMNAME
AND AS4LOCAL = 'A'
AND AS4VERS = DD01L-AS4VERS
AND DDLANGUAGE = SY-LANGU.
ENDSELECT.
SELECT * FROM DD01V
WHERE DOMNAME LIKE 'CHAR%'
AND DDLANGUAGE = SY-LANGU.
ENDSELECT.
Select with index support
SELECT * FROM T100
WHERE ARBGB = '00'
AND MSGNR = '999'.
ENDSELECT.
SELECT * FROM T002.
SELECT * FROM T100
WHERE SPRSL = T002-SPRAS
AND ARBGB = '00'
AND MSGNR = '999'.
ENDSELECT.
ENDSELECT.
Select Into table
REFRESH X006.
SELECT * FROM T006 INTO X006.
APPEND X006.
ENDSELECT
SELECT * FROM T006 INTO TABLE X006.
Select with selection list
SELECT * FROM DD01L
WHERE DOMNAME LIKE 'CHAR%'
AND AS4LOCAL = 'A'.
ENDSELECT
SELECT DOMNAME FROM DD01L
INTO DD01L-DOMNAME
WHERE DOMNAME LIKE 'CHAR%'
AND AS4LOCAL = 'A'.
ENDSELECT
Key access to multiple lines
LOOP AT TAB.
CHECK TAB-K = KVAL.
ENDLOOP.
LOOP AT TAB WHERE K = KVAL.
ENDLOOP.
Copying internal tables
REFRESH TAB_DEST.
LOOP AT TAB_SRC INTO TAB_DEST.
APPEND TAB_DEST.
ENDLOOP.
TAB_DEST[] = TAB_SRC[].
Modifying a set of lines
LOOP AT TAB.
IF TAB-FLAG IS INITIAL.
TAB-FLAG = 'X'.
ENDIF.
MODIFY TAB.
ENDLOOP.
TAB-FLAG = 'X'.
MODIFY TAB TRANSPORTING FLAG
WHERE FLAG IS INITIAL.
Deleting a sequence of lines
DO 101 TIMES.
DELETE TAB_DEST INDEX 450.
ENDDO.
DELETE TAB_DEST FROM 450 TO 550.
Linear search vs. binary
READ TABLE TAB WITH KEY K = 'X'.
READ TABLE TAB WITH KEY K = 'X' BINARY SEARCH.
Comparison of internal tables
DESCRIBE TABLE: TAB1 LINES L1,
TAB2 LINES L2.
IF L1 <> L2.
TAB_DIFFERENT = 'X'.
ELSE.
TAB_DIFFERENT = SPACE.
LOOP AT TAB1.
READ TABLE TAB2 INDEX SY-TABIX.
IF TAB1 <> TAB2.
TAB_DIFFERENT = 'X'. EXIT.
ENDIF.
ENDLOOP.
ENDIF.
IF TAB_DIFFERENT = SPACE.
ENDIF.
IF TAB1[] = TAB2[].
ENDIF.
Modify selected components
LOOP AT TAB.
TAB-DATE = SY-DATUM.
MODIFY TAB.
ENDLOOP.
WA-DATE = SY-DATUM.
LOOP AT TAB.
MODIFY TAB FROM WA TRANSPORTING DATE.
ENDLOOP.
Appending two internal tables
LOOP AT TAB_SRC.
APPEND TAB_SRC TO TAB_DEST.
ENDLOOP
APPEND LINES OF TAB_SRC TO TAB_DEST.
Deleting a set of lines
LOOP AT TAB_DEST WHERE K = KVAL.
DELETE TAB_DEST.
ENDLOOP
DELETE TAB_DEST WHERE K = KVAL.
Tools available in SAP to pin-point a performance problem
The runtime analysis (SE30)
SQL Trace (ST05)
Tips and Tricks tool
The performance database
Optimizing the load of the database
Using table buffering
Using buffered tables improves the performance considerably. Note that in some cases a stament can not be used with a buffered table, so when using these staments the buffer will be bypassed. These staments are:
Select DISTINCT
ORDER BY / GROUP BY / HAVING clause
Any WHERE clasuse that contains a subquery or IS NULL expression
JOIN s
A SELECT... FOR UPDATE
If you wnat to explicitly bypass the bufer, use the BYPASS BUFFER addition to the SELECT clause.
Use the ABAP SORT Clause Instead of ORDER BY
The ORDER BY clause is executed on the database server while the ABAP SORT statement is executed on the application server. The datbase server will usually be the bottleneck, so sometimes it is better to move thje sort from the datsbase server to the application server.
If you are not sorting by the primary key ( E.g. using the ORDER BY PRIMARY key statement) but are sorting by another key, it could be better to use the ABAP SORT stament to sort the data in an internal table. Note however that for very large result sets it might not be a feasible solution and you would want to let the datbase server sort it.
Avoid ther SELECT DISTINCT Statement
As with the ORDER BY clause it could be better to avoid using SELECT DISTINCT, if some of the fields are not part of an index. Instead use ABAP SORT + DELETE ADJACENT DUPLICATES on an internal table, to delete duplciates.
SE30 - gives you a run time analysis and points out the issues more at design time.
ST05 - Is the most useful if you want to track time taken for execution of each of the sections.
SM50 - Will give you a work process overview, not sure at a program level how can it help you.
Some times you will have to use a combination of SE30 and ST05.
I would like to use St05 personally.
regards
anver
if helped pls amrk points -
Other Ways for SubQuery...
Hi
Please suggest i want to Use other way for Sub-Query for Performence Tunning Point of View. I am Useing Oracle 10g R2
Thanks In Advance...Thank you for not posting the same question again in two forums... ;)
other option for SubQuery... -
How can I tune up WTK 2.5.2 performence except Preferences/Performance?
Hi
Is there a way to tune up WTK 2.5.2 performence? I've already checked the Preferences/Performance. I'm developing J2ME application which uses a lot of icons etc. generaly it works ok. However when it comes to the screens with icons, the emulator is very slow :(. How can i change that. Maybe add more RAM to the emulator or something. My app doesn't need to work on real device so optimalization and other concerns are out of the question.
Anybody knows the answer?
thxSorry, didn't see that part.
Anyway, in that case, you should profile your application to find out what part of your code is slow, and try to impove it -
More time in Extracting result set ( performence) VERY URGENT
Hi all,
This program is taking much more time in Extracting the the result set.........(How to increase the performence of this program)
How to decrease the Execuition of the time.......???
***INCLUDE Z00_BCI010 .
TABLES: z00_bc_cpt_sess, " Stockage des compteurs associés aux
" progs de traitement.
z00_bc_erreur, " Table des anomalies des programmes
" spécifiques.
*début ajout FAE 30463
z00_bc_err_log. "Table de stockage et retention des
"erreurs
*fin ajout FAE 30463
t100. " Messages.
Déclaration des données internes *
Table interne des anomalies.
DATA: BEGIN OF itb_erreur OCCURS 0.
INCLUDE STRUCTURE z00_bc_erreur.
DATA: END OF itb_erreur.
Nombre de jour pour la suppression des données dans la table des
anomalies
DATA: i_nb_jour(3) TYPE n.
*début ajout FAE 30463
DATA: w_dl_delai LIKE z00_bc_err_log-z_delai,
w_in_stockage LIKE z00_bc_err_log-z_stockage VALUE 'X'.
*fin ajout FAE 30463
Date et heure d'éxécution.
DATA: i_dt_date_execution LIKE sy-datum,
i_hr_heure_execution LIKE sy-uzeit.
Date de suppression.
DATA: z_date LIKE sy-datum.
Compteur de session.
DATA: o_ct_session LIKE z00_bc_cpt_sess-z_ct_session.
Compteur pour le numéro de ligne de la table d'anomalie.
DATA: l_ct_num_ligne LIKE z00_bc_erreur-z_no_num_ligne VALUE '00'.
Données utile au remplissage de la table interne des anomalies.
Nom du programme ABAP.
DATA: i_repid LIKE z00_bc_erreur-z_repid.
Libellé du traitement.
DATA: w_lb_traitement LIKE itb_erreur-z_lb_lib_trait.
Clé identifiant l'objet traité.
DATA: i_ds_clef_objet LIKE z00_bc_erreur-z_ds_clef_objet.
Code anomalie.
DATA: i_cd_message LIKE sy-msgno.
Type de message d'anomalie.
DATA: i_ty_message LIKE sy-msgty.
Classe de message.
DATA: i_classe_message LIKE sy-msgid.
Variable de message.
DATA: i_msgv1 LIKE sy-msgv1,
i_msgv2 LIKE sy-msgv2,
i_msgv3 LIKE sy-msgv3,
i_msgv4 LIKE sy-msgv4.
Phase d'éxécution du programme.
DATA: i_in_phase_exec LIKE z00_bc_erreur-z_in_phase_exec.
Libellé de la clé.
DATA: i_clef_objet(30).
Constante.
CONSTANTS: k_heure(8) VALUE 'Heure', "#EC NOTEXT
k_code(4) VALUE 'Code', "#EC NOTEXT
k_lb_message(80) VALUE 'Désignation', "#EC NOTEXT
k_ligne LIKE sy-linsz VALUE '127',
k_societe LIKE sy-title VALUE 'SCHNEIDER ELECTRIC INDUSTRIES S.A.S.',
k_projet LIKE sy-title VALUE 'LOGOS'.
TRAITEMENT *
Nettoyage de la table interne et des données.
FREE itb_erreur.
CLEAR: i_msgv1,
i_msgv2,
i_msgv3,
i_msgv4.
Form F930_INIT *
Fonction : *
- Renseigne la table transparente des anomalies. *
Donnée globale : *
- ITB_ERREUR Tables internes des erreurs. *
Entrées : *
- I_REPID Nom du programme en erreur. *
- I_NB_JOUR Nombre de jour avant la suppression des *
enrgistrement de la lable Z00_BC_ERREUR. *
Sortie : *
- O_CT_SESSION Compteur de session. *
FORM f930_init USING i_repid
i_nb_jour.
Appel de la routine de suppression des vieux enregistrement.
PERFORM f911_suppression_anomalie USING i_repid
i_nb_jour.
Mise à jour des compteur de session.
PERFORM f912_maj_z00_bc_cpt_sess USING i_repid
CHANGING o_ct_session.
ENDFORM.
Form F930_INIT_BLOCAGE *
Fonction : *
- Suppression des vieux enregistrements
- mise à jour table session
Donnée globale : *
- ITB_ERREUR Tables internes des erreurs. *
Entrées : *
- I_REPID Nom du programme en erreur. *
- I_NB_JOUR Nombre de jour avant la suppression des *
enrgistrement de la lable Z00_BC_ERREUR. *
Sortie : *
- O_CT_SESSION Compteur de session. *
FORM f930_init_blocage USING i_repid
i_nb_jour.
Appel de la routine de suppression des vieux enregistrement.
avec contrôle entrée de blocage
PERFORM f911_suppression_anomalie_bloc USING i_repid
i_nb_jour.
Mise à jour des compteur de session.
PERFORM f912_maj_z00_bc_cpt_sess USING i_repid
CHANGING o_ct_session.
ENDFORM.
Form F900_ERREUR *
Fonction : *
- Renseigne la table transparente des anomalies. *
Donnée globale : *
- ITB_ERREUR Tables internes des erreurs. *
Donnée locale : *
- l_CT_NUM_LIGNE Compteur de ligne *
- O_CT_SESSION Numéro du compteur de session *
Entrées : *
- I_REPID Nom du programme en erreur. *
- I_IN_PHASE_EXEC Phase d'éxécution du programme *
- I_DS_CLEF_OBJET Clé identifiant l'objet traité. *
- I_DT_DATE_EXECUTION Date d'éxécution. *
- I_HR_HEURE_EXECUTION Heure d'éxécution. *
- I_TY_MESSAGE Type de message. *
- I_CD_MESSAGE code anomalie. *
- I_CLASSE_MESSAGE Classe de message. *
- I_MSGV1 Variable de message. *
- I_MSGV2 Variable de message. *
- I_MSGV3 Variable de message. *
- I_MSGV4 Variable de message. *
FORM f900_erreur USING i_repid
i_in_phase_exec
i_ds_clef_objet
i_dt_date_execution
i_hr_heure_execution
i_ty_message
i_cd_message
i_classe_message
value(i_msgv1)
value(i_msgv2)
value(i_msgv3)
value(i_msgv4). "#EC CALLED
DE3K913901 début ajout
On récupère l'incrément qui sera inclu au n°de session :
IF o_ct_session IS INITIAL
AND i_repid = 'Z06_MMR001'.
PERFORM f912_maj_z00_bc_cpt_sess USING 'Z06_MMR001'
CHANGING o_ct_session.
ENDIF.
DE3K913901 fin ajout
Nettoyage de la zone de l'en tete de la table interne.
CLEAR itb_erreur.
Incrementation du compteur du numéro de ligne de la table d'anomalie.
l_ct_num_ligne = l_ct_num_ligne + 1.
Remplissage de la table interne.
MOVE: i_repid TO itb_erreur-z_repid,
l_ct_num_ligne TO itb_erreur-z_no_num_ligne,
i_dt_date_execution TO itb_erreur-z_dt_date_exec,
i_hr_heure_execution TO itb_erreur-z_hr_heure_exec,
w_lb_traitement TO itb_erreur-z_lb_lib_trait,
i_in_phase_exec TO itb_erreur-z_in_phase_exec,
i_ds_clef_objet TO itb_erreur-z_ds_clef_objet.
CONCATENATE i_ty_message
i_cd_message
INTO itb_erreur-z_cd_message.
Récupération du libellé du message.
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = i_classe_message
msgnr = i_cd_message
msgv1 = i_msgv1
msgv2 = i_msgv2
msgv3 = i_msgv3
msgv4 = i_msgv4
IMPORTING
message_text_output = itb_erreur-z_lb_message.
*début modification FAE 30463
*Si le flag est pas coché, on met à jour la table des erreurs
*Z00_BC_ERREUR
*s'il n'y a pas d'entrée dans la table on met aussi à jour
*Z00_BC_ERREUR
IF NOT w_in_stockage IS INITIAL.
Mise à jour de la table.
PERFORM f910_mise_a_jour.
ENDIF.
Mise à jour de la table interne.
APPEND itb_erreur.
Nettoyage des variables.
CLEAR: i_msgv1,
i_msgv2,
i_msgv3,
i_msgv4.
*fin modification FAE 30463
ENDFORM.
Form F910_MISE_A_JOUR *
Fonction : *
- Mets à jour les tables Z00_BC_CPT_SESS et Z00_BC_ERREUR. *
Donnée globale : *
- ITB_ERREUR Tables internes des erreurs. *
FORM f910_mise_a_jour.
Mise à jour des anomalies.
MOVE-CORRESPONDING itb_erreur TO z00_bc_erreur.
CONCATENATE itb_erreur-z_dt_date_exec
itb_erreur-z_hr_heure_exec
o_ct_session
INTO z00_bc_erreur-z_no_num_session.
MODIFY z00_bc_erreur.
ENDFORM.
Form F911_SUPPRESSION_VIEILLE_ANOMALIE *
Fonction : *
- Supprime les villes anomalies. *
Donnée globale : *
- Z00_BC_ERREUR Table des anomalies des programmes spécifiques.*
Entrée : *
- I_REPID Nom du programme en erreur. *
- I_NB_JOUR Nombre de jour avant la suppression des *
enrgistrement de la lable Z00_BC_ERREUR. *
FORM f911_suppression_anomalie USING i_repid
i_nb_jour.
début ajout FAE 30463
SELECT SINGLE z_stockage z_delai
INTO (w_in_stockage, w_dl_delai)
FROM z00_bc_err_log
WHERE z_repid = i_repid.
*si le programme est dans la table z00_bc_err_log, on récupère la zone
Z_DELAI (délai de rétention des erreurs)
*sinon le délai est celui passé en paramètre de cette fonction
IF sy-subrc = 0.
z_date = sy-datum - w_dl_delai.
ELSE.
z_date = sy-datum - i_nb_jour.
Pas d'enreg. ds table param, alors on stockera ds Z00_BC_ERREUR
w_in_stockage = 'X'.
ENDIF.
fin ajout FAE 30463
Suppression des enregistrements trop vieux.
DELETE FROM z00_bc_erreur WHERE z_repid EQ i_repid
AND z_dt_date_exec LE z_date.
ENDFORM.
Form F911_SUPPRESSION_ANOMALIE_BLOC *
Fonction : *
- Supprime les villes anomalies en tenant compte des objets de bloc *
Donnée globale : *
- Z00_BC_ERREUR Table des anomalies des programmes spécifiques.*
Entrée : *
- I_REPID Nom du programme en erreur. *
- I_NB_JOUR Nombre de jour avant la suppression des *
enrgistrement de la lable Z00_BC_ERREUR. *
FORM f911_suppression_anomalie_bloc USING i_repid
i_nb_jour.
Blocage de la table
CALL FUNCTION 'ENQUEUE_EZ00_BC_ERREUR'
EXPORTING
mode_z00_bc_erreur = 'E'
z_mandt = sy-mandt
z_repid = i_repid
X_Z_REPID = ' '
_SCOPE = '2'
_WAIT = ' '
_COLLECT = ' '
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
Suppression des enr que si la table pour ce pg n'est pas bloquée
Si bloquée => ne rien faire car suppression aura déjà eu lieu
IF sy-subrc EQ 0.
début ajout FAE 30463
SELECT SINGLE z_stockage z_delai
INTO (w_in_stockage, w_dl_delai)
FROM z00_bc_err_log
WHERE z_repid = i_repid.
*si le programme est dans la table z00_bc_err_log, on récupère la zone
Z_DELAI (délai de rétention des erreurs)
*sinon le délai est celui passé en paramètre de cette fonction
IF sy-subrc = 0.
z_date = sy-datum - w_dl_delai.
ELSE.
z_date = sy-datum - i_nb_jour.
Pas d'enreg. ds table param, alors on stockera ds Z00_BC_ERREUR
w_in_stockage = 'X'.
ENDIF.
fin ajout FAE 30463
Suppression des enregistrements trop vieux.
DELETE FROM z00_bc_erreur WHERE z_repid EQ i_repid
AND z_dt_date_exec LE z_date.
Déblocage de la table.
CALL FUNCTION 'DEQUEUE_EZ00_BC_ERREUR'
EXPORTING
MODE_Z00_BC_ERREUR = 'E'
z_mandt = sy-mandt
z_repid = i_repid.
ENDIF.
ENDFORM.
Form F912_MAJ_Z00_BC_CPT_SESS *
Fonction : *
- Renseigne la table transparente des sessions. *
Données globales : *
- z00_BC_CPT_SESS Stockage des compteurs associés aux progs de *
traitement. *
- Z00_BC_ERREUR Table des anomalies des programmes spécifiques*
Entrée : *
- I_REPID Nom du programme en erreur. *
Sortie : *
- O_CT_SESSION Numéro de session. *
FORM f912_maj_z00_bc_cpt_sess USING i_repid
CHANGING o_ct_session.
Blocage de la table
CALL FUNCTION 'ENQUEUE_EZ00_BC_CPT_SESS'
EXPORTING
mode_z00_bc_cpt_sess = 'E'
z_mandt = sy-mandt
z_repid = i_repid
X_Z_REPID = ' '
_SCOPE = '2'
_WAIT = ' '
_COLLECT = ' '
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
Si la table est déjà vérouillée.
IF sy-subrc NE 0.
DO.
Si c'est la 99eme fois que l'on reboucle alors on sort du programme.
IF sy-index EQ 99.
STOP.
ENDIF.
sinon attendre 1 seconde.
WAIT UP TO 1 SECONDS.
Blocage de la table
CALL FUNCTION 'ENQUEUE_EZ00_BC_CPT_SESS'
EXPORTING
mode_z00_bc_cpt_sess = 'E'
z_mandt = sy-mandt
z_repid = i_repid
X_Z_REPID = ' '
_SCOPE = '2'
_WAIT = ' '
_COLLECT = ' '
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
Si table bloquée.
IF sy-subrc EQ 0.
EXIT.
ENDIF.
ENDDO.
ENDIF.
Lecture dans la table des sessions.
SELECT SINGLE * FROM z00_bc_cpt_sess WHERE z_repid EQ i_repid.
Contrôle si un enregistrement avec le même nom de programme existe et
si le compteur de session est différent de '99'.
IF sy-subrc EQ 0 AND z00_bc_cpt_sess-z_ct_session NE 99.
z00_bc_cpt_sess-z_ct_session = z00_bc_cpt_sess-z_ct_session + 1.
o_ct_session = z00_bc_cpt_sess-z_ct_session.
MODIFY z00_bc_cpt_sess.
Si un enregistrement avec le même nom de programme existe et
si le compteur de session est égal à '99'.
ELSEIF sy-subrc EQ 0 AND z00_bc_cpt_sess-z_ct_session EQ 99.
o_ct_session = z00_bc_cpt_sess-z_ct_session.
MODIFY z00_bc_cpt_sess.
Sinon.
ELSEIF sy-subrc NE 0.
z00_bc_cpt_sess-z_ct_session = '00'.
z00_bc_cpt_sess-z_repid = i_repid.
o_ct_session = z00_bc_cpt_sess-z_ct_session.
MODIFY z00_bc_cpt_sess.
ENDIF.
COMMIT WORK.
Déblocage de la table.
CALL FUNCTION 'DEQUEUE_EZ00_BC_CPT_SESS'
EXPORTING
mode_z00_bc_cpt_sess = 'E'
z_mandt = sy-mandt
z_repid = i_repid.
X_Z_REPID = ' '
_SCOPE = '3'
_SYNCHRON = ' '
_COLLECT = ' '
ENDFORM.
Form F920_TOP_OF_PAGE *
Fonction : *
- Entête Schneider *
Entrée : *
- I_REPID Nom du programme en erreur. *
FORM f920_top_of_page USING i_repid. "#EC CALLED
En-tete de page.
CALL FUNCTION 'Z_00_BC_TOP_OF_PAGE'
EXPORTING
p_linsz = k_ligne
p_pagno = sy-pagno
p_prog = i_repid
p_projet = k_projet
p_societe = k_societe
p_sujet = sy-title.
IF sy-subrc = 0.
ENDIF.
ENDFORM.
Form F920_EDITION *
Fonction : *
- Edition des erreurs. *
Données globales : *
- ITB_ERREUR Table interne des anomalies. *
Entrée : *
- I_REPID Nom du programme en erreur. *
- I_CLEF_OBJET, Désignation de la clé de l'objet. *
FORM f920_edition USING i_repid
i_clef_objet. "#EC CALLED
En-tete de tableau.
WRITE AT (sy-linsz) sy-uline.
WRITE: sy-vline,
k_heure(8),
sy-vline,
k_code(4),
sy-vline,
k_lb_message(80),
sy-vline,
i_clef_objet.
WRITE AT sy-linsz sy-vline.
LOOP AT itb_erreur.
Edition de la table interne des anomalies.
Controle des couleurs.
IF itb_erreur-z_cd_message(1) NE 'S'.
IF itb_erreur-z_cd_message(1) EQ 'W'.
FORMAT COLOR = 7 INTENSIFIED OFF.
ELSEIF itb_erreur-z_cd_message(1) EQ 'I'.
FORMAT COLOR = 3 INTENSIFIED OFF.
ELSE.
FORMAT COLOR = 6 INTENSIFIED OFF.
ENDIF.
ELSE.
FORMAT COLOR = 5 INTENSIFIED ON.
ENDIF.
WRITE AT (sy-linsz) sy-uline.
WRITE: sy-vline,
itb_erreur-z_hr_heure_exec,
sy-vline,
itb_erreur-z_cd_message(4),
sy-vline,
itb_erreur-z_lb_message(80),
sy-vline,
*Begin change PIT DE3K936510
itb_erreur-z_ds_clef_objet(27).
itb_erreur-z_ds_clef_objet(59).
*End change PIT DE3K936510
WRITE AT sy-linsz sy-vline.
ENDLOOP.
WRITE AT (sy-linsz) sy-uline.
ENDFORM.
INCLUDE: z00_bci010. " Gestion des anomalies.
Déclaration des données *
Tables de la bases de données *
TABLES:
ekpo, " Poste document d'achat.
lfa1, " Base fournisseurs (généralités).
marc, " Données division de l'article.
z03_bw_cmp1,
eord, "Répertoire des sources appro. Achats
eina, "Fiche infos-achats - données générales
t024, "Groupes d'acheteurs
tvarv. "FAE17345+
Déclaration des données internes *
Déclaration de la table interne qui permet de recuperer les mois.
DATA: BEGIN OF itb_months OCCURS 12.
INCLUDE STRUCTURE t247.
DATA: END OF itb_months.
Table pour récupération d'infos sur les divisions
DATA: BEGIN OF itb_t001w OCCURS 0,
werks LIKE t001w-werks,
fabkl LIKE t001w-fabkl," Clé du calendrier d'entreprise
END OF itb_t001w.
Déclaration de la table interne contenant les infos sur l'adresse du
fournisseur.
DATA: BEGIN OF itb_adresse OCCURS 0,
lifnr LIKE lfa1-lifnr, " Numéro de compte fournisseur.
name1 LIKE lfa1-name1, " Nom 1.
name2 LIKE lfa1-name2, " Nom 2.
name3 LIKE lfa1-name3, " Nom 3.
name4 LIKE lfa1-name4, " Nom 4.
stras LIKE lfa1-stras, " N° de rue et nom de la rue.
pstlz LIKE lfa1-pstlz, " Code postal.
ort01 LIKE lfa1-ort01, " Localité.
pfach LIKE lfa1-pfach, " Boîte postale.
pstl2 LIKE lfa1-pstl2, " Code de la boîte postale.
land1 LIKE lfa1-land1, " Clé de pays.
landx LIKE t005t-landx, " Pays.
spras LIKE lfa1-spras, " Code langue
END OF itb_adresse.
Déclaration d'une table interne pour les informations sur les
prévisions de commande.
DATA: BEGIN OF itb_prev_cde OCCURS 0,
werks LIKE marc-werks, " Division
idnlf LIKE eina-idnlf, " ADDsde ref article frn
lifnr LIKE eord-lifnr, " N° fournisseur.
ekgrp LIKE marc-ekgrp, " Groupe d'acheteurs
dispo LIKE marc-dispo, " Code gestionnaire MRP
matnr LIKE eord-matnr, " Article.
maktx LIKE makt-maktx, " Désignation article.
bstmi LIKE marc-bstmi, " Quantité de commande.
men00 LIKE plaf-gsmng, " Quantité du mois en cours M.
men01 LIKE plaf-gsmng, " Quantité pour le mois M+1.
men02 LIKE plaf-gsmng, " Quantité pour le mois M+2.
men03 LIKE plaf-gsmng, " Quantité pour le mois M+3.
men04 LIKE plaf-gsmng, " Quantité pour le mois M+4.
men05 LIKE plaf-gsmng, " Quantité pour le mois M+5.
men06 LIKE plaf-gsmng. " Quantité pour le mois M+6.
DATA: END OF itb_prev_cde.
Structure de travail pour les commandes convernant les PFC
DATA str_pca_pfc LIKE itb_prev_cde.
*add sde
DATA str_eord_pfc LIKE itb_prev_cde.
Structure de travail pour les prévisons PFC
DATA str_prev_pfc LIKE itb_prev_cde.
Déclaration d'une table interne pour les informations sur le
portefeuille des commandes d'achat.
DATA: BEGIN OF itb_pca OCCURS 0,
werks LIKE ekpo-werks, " Division
idnlf LIKE eina-idnlf, " ADDsde ref article frn
lifnr LIKE eord-lifnr, " N° fournisseur.
ekgrp LIKE marc-ekgrp, " Groupe d'acheteurs
dispo LIKE marc-dispo, " Code gestionnaire MRP
matnr LIKE eord-matnr, " Article.
maktx LIKE makt-maktx, " Désignation article.
ebeln LIKE ekes-ebeln, " Numéro du document d'achat.
ebelp LIKE ekes-ebelp, " Numéro de poste du document d'achat.
slfdt LIKE eket-slfdt, " Date de livraison statistique
eindt LIKE ekes-eindt, " Date de livraison indiquée dans la
" confirmation de la cde.
menge LIKE ekes-menge, " Quantité indiquée dans la confirma-
" tion de la commande.
attdu LIKE eket-wemng, " Portefeuille fournisseur.
netpr LIKE ekpo-brtwr, " Prix net du document d'achat dans
" la devise du document.
rtard TYPE i, " Retard en jours ouvres.
wemng LIKE eket-wemng, " Quantité de l'entrée de marchandise.
bldat LIKE mkpf-bldat, " Date inscrite sur la pièce/sur le
" document.
qtran LIKE ekes-menge, " Quantité en transit.
dtran LIKE ekes-eindt. " Date du dernier avis de transit.
DATA: END OF itb_pca.
DATA: w_i TYPE i, "Compteur
w_i_char(1) TYPE c, "Texte pour récupérer compteur
w_nm_zone(20) TYPE c, "Nom zone pour assign au field-symbols
w_nb_j TYPE i, "Nb de jours ouvrés jusqu'à fin mois
w_nb_j_tot TYPE i. "Nb de jours ouvrés du mois
FIELD-SYMBOLS: TYPE ANY.
Déclaration d'une table contenant les fiches info achat.
DATA: BEGIN OF itb_eina OCCURS 0,
matnr LIKE eina-matnr,
lifnr LIKE eina-lifnr,
idfnl LIKE eina-idnlf.
DATA: END OF itb_eina.
Déclaration d'une table contenant les infos groupe acheteur.
*DATA: BEGIN OF itb_t024 OCCURS 0,
ekgrp LIKE t024-ekgrp,
eknam LIKE t024-eknam,
ektel LIKE t024-ektel,
telfx LIKE t024-telfx.
*DATA: END OF itb_t024.
Déclaration d'une table pour le transfert du fichier.
DATA: BEGIN OF itb_transfert OCCURS 0,
col00(8), "division
col00bis(20), "Reference article
col01(18), "No article
col02(45), "libelle article
col021(17), "Groupe acheteur
col022(13), "gestionnaire
col03(17), "qte commandée ou No de commande
col04(13), "Mois 1 ou No poste cde
col05(20), "Mois 2 ou délai initial
col06(33), "Mois 3 ou délai négocié
col07(13), "Mois 4 ou qté cdée
col08(13), "Mois 5 ou qté attendue
col09(13), "Mois 6 ou Montant attendu
col10(13), "Mois 7 ou retard
col11(13), "qte partielle livree
col12(13), "date livraison partielle
col13(13), "qté en transit
col14(13). "date
DATA: END OF itb_transfert.
Déclaration d'une table contenant la liste des fournisseurs.
DATA: BEGIN OF itb_lifnr OCCURS 0,
werks LIKE marc-werks,
idfnl LIKE eina-idnlf,
lifnr LIKE eord-lifnr,
ekgrp LIKE marc-ekgrp,
spras LIKE lfa1-spras,
eknam LIKE t024-eknam,
ektel LIKE t024-ektel,
telfx LIKE t024-telfx.
DATA: END OF itb_lifnr.
Déclaration d'une structure pour la selection dans la table MSEG.
DATA : BEGIN OF itb_mseg OCCURS 0,
mblnr LIKE mseg-mblnr,
mjahr LIKE mseg-mjahr,
ebeln LIKE mseg-ebeln,
ebelp LIKE mseg-ebelp,
END OF itb_mseg.
déclaration d'une structure pour la selection dans EKPO.
DATA : BEGIN OF itb_ekpo OCCURS 0,
ebeln LIKE ekpo-ebeln,
lifnr LIKE ekko-lifnr,
ekgrp LIKE ekko-ekgrp,
ebelp LIKE ekpo-ebelp,
matnr LIKE ekpo-matnr,
werks LIKE ekpo-werks,
menge LIKE ekpo-menge,
bpumz LIKE ekpo-bpumz,
netpr LIKE ekpo-netpr,
peinh LIKE ekpo-peinh, "Base de prix FAE17345+
"AFT++
bpumn LIKE ekpo-bpumn,
dispo LIKE marc-dispo, "AFT++
END OF itb_ekpo.
déclaration d'une structure pour la selection dans EKPO.
DATA : BEGIN OF itb_ekko OCCURS 0,
ebeln LIKE ekko-ebeln,
lifnr LIKE ekko-lifnr,
spras LIKE ekko-spras,
END OF itb_ekko.
déclaration d'une structure pour la selection dans EKES.
DATA : BEGIN OF itb_ekes OCCURS 0,
ebeln LIKE eket-ebeln,
ebelp LIKE eket-ebelp,
etens LIKE ekes-etens,
ebtyp LIKE ekes-ebtyp,
eindt LIKE ekes-eindt,
menge LIKE ekes-menge,
dabmg LIKE ekes-dabmg,
END OFhai ,
use code inspector to find the performance issue sorce code and also it gives some tips to tune the peformance.
Go to program in display mode or editable mode and in menu bar you
have program menu in first......chose it and go to cheak....select it we have list including code inspector do it and tune it............
plzz reward if useful
regards,
jai.m -
Oracle Application 12.1.1 Tunning
Dear All,
Please can any one provide me the Oracle Application Tunning and check list.
Thanks
Raags INDIA.Hi,
Please see these documents/threads:
Note: 744143.1 - Tuning performance on eBusiness suite
Note: 864226.1 - How Can I Diagnose Poor E-Business Suite Performance?
Note: 69565.1 - A Holistic Approach to Performance Tuning Oracle Applications Systems
EBS, performence issue
Re: EBS, performence issue
Oracle Apps Tuning
Re: Oracle Apps Tuning
how to track down a forms process that is taking 100% CPU
how to track down a forms process that is taking 100% CPU
There are many other threads which should be helpful, please see old threads for details.
Tuning
http://forums.oracle.com/forums/search.jspa?threadID=&q=Tuning&objID=c3&dateRange=all&userID=&numResults=15&rankBy=10001
Thanks,
Hussein -
Hi,
I have a table which holds geographical data in a hierrachical format. I need to retriev all the parent-information in a single query.
The table is called CX_GEO_DATA, which stores hierrarchy relations .
eg of data
row_id type name parent_id start_dt end_dt
1 Zip 400 2 1/2/2009 1/1/2020
2 City San
I need to extract all the parent information from the table, i.e. given a row_id, find its parents.
Since it is a part of UI requiremnt a performence of 5 secs is desired.
SELECT A.type,
a.name,
A.ALT_NAME,
LEVEL,
a.start_dt,
a.end_dt,
a.par_geo_data_id,
a.row_id
FROM cx_geo_data A
WHERE TRUNC(SYSDATE) BETWEEN START_DT AND NVL(END_DT,SYSDATE+1)
START WITH row_id = :p_row_id
CONNECT BY PRIOR par_geo_data_id = row_id
There are indexes in table on columns:
Non unique par_geo_data_id
Non unique name
Unique Row_id (Primary key)
I need result in the below form:
i.e. given a row_id find all the parents for that record.
Say if I get a Zip, get all its parents, i.e. Country, state, City, Zip etc
To achieve that I have written a function:
Which uses the query listed on top. i.e. a connect by query and returns a given type of parent.
Below is the function code:
FUNCTION get_par_at_a_level_info
p_row_id varchar2,
p_type_of_Parent varchar2
RETURN VARCHAR2
IS
vParent_Name cx_geo_data.alt_name%type;
BEGIN
SELECT alt_name
INTO vParent_Name
FROM (
SELECT A.type,
a.name,
A.ALT_NAME,
LEVEL,
a.row_id
FROM cx_geo_data A
WHERE TRUNC(SYSDATE) BETWEEN START_DT AND NVL(END_DT,SYSDATE+1)
START WITH row_id = p_row_id
CONNECT BY PRIOR par_geo_data_id = row_id
)hier_tab
WHERE hier_tab.type=p_type_of_Parent;
return(initCap(vParent_Name));
EXCEPTION
WHEN no_data_found
THEN RETURN NULL;
WHEN OTHERS
THEN RAISE;
END get_par_at_a_level_info;
So, if I need type of parent as Country I pass country to it, if I need City I pass City to the function.
So, my final query is like:
SELECT GEO_TYPE,
GEO_NAME,
geoElementId GEO_ELEMENT_ID,
xxfdev_geo_bndary_pkg.Get_Par_at_a_level_info(geoElementId,'Country') COUNTRY,
xxfdev_geo_bndary_pkg.Get_Par_at_a_level_info(geoElementId,'State') STATE,
--- xxfdev_geo_bndary_pkg.Get_Par_at_a_level_info(geoElementId,'City') CITY,
xxfdev_geo_bndary_pkg.Get_Par_at_a_level_info(geoElementId,'Zip') ZIP
FROM ( SELECT
---------restirction by user ideally nt reqd
terr_gb.name NAME,
INITCAP(geo.alt_name) GEO_NAME,
geo.geoElementId,
geo.TYPE GEO_TYPE,
from cx_geo_data
where row_id=p_row_id
);let me know on how to tune this query or if there is any option to re-write it in any other form.
-
How can you get your data back on i tunes
Hi i am Justin,
I have i phone and i have i tunes here is my problom. last night i formatted my HP windows 7 computer and i backed up my pictures and backed up i tunes witch i thoght i did becasue i backed it up on my external 500 MB hard drive and with out making a folder and c oping i tunes i only backed up library and before the format i went to edit, preferences and adavaned in i tunes (sorry about the bad spelling) becasue apples's step by step i read and saw the pictures were to go and i thought i can back up i tunes that way. My phone has 333 songs all my pictures apps and contacts and there is no way to re copy from the phone back in to i tunes i do not use i cloud becasue (one i do not want to pay for more space) and 2 the free version tells me i do not have enough space to back it up so i am worried one sync i will lose all my info. these songs are from cd's i have and off the Internet before the courts stopped Napster and Lime Wire. Sos what should i do just unstalli tunes and leave my computer as a re charging stastion? or is there any secret way to get all my things back then this time i can make a folder and do it right in case the next time i have to re format my drive from a problems or need to what is the best case here?
JustinSync is only oneway, from PC to your device. Unless you have the music on your PC, iTunes is going to wipe out what you have on your device if you are syncing to a new library.
You can only transfer Purchased music over to Itunes on your PC.
iTunes Store: Transferring purchases from your iOS device or iPod to a computer
http://support.apple.com/kb/HT1848
As for you own music, you may have to use a third party software. A good Free one is called Sharepod which you can download from Download.com here:
http://download.cnet.com/SharePod/3000-2141_4-10794489.html?tag=mncol;2 -
I tunes downloads to wrong drive
Hi guys some help please. When I download the latest I tunes 9.1.1 is wants to install to drice "G" which I don't have I want it to download on "C". Any ideas?
Hey there,
One thing you should check is where your iTunes searches for your iTunes folder. Head to iTunes and then Preferences. When the window pops up, head over to the Advanced tab. Near the top of the tab, you will see where iTunes currently locates your Music folder. Click the Change button and then direct it to where the folder is located on your External drive. See if that helps.
B-rock -
my i tunes account for both my pc and i phone wont let me update or download any apps.
no none errors it started after i installed the new ios 5.1 on my i phone i wait ages ans it says cannot conect to the i tunes store. and on the pc when i go to update them it says service timed out after about ten mins of waiting
-
Secure link to I tunes is not working please help
I have been gaining access to I Tunes fine up to last Wednesday. I now cannot access my account on I tunes, I can surf the shop fine and look at it contents fine but as soon as I try to buy anything I can't log in to my account. I cannot even create a new account.
I'm in contact with apple via e mail but everything they suggest just isn't working. Does any one have any ideas of what I can try as I'm at a dead end now and I have credit on my account.
Many ThanksI found the solution! My WAN setting on my router was set at 1458 and should have been 1400.
-
I tunes will not open - have read ALOT but still can't get it going
How much is Apple losong out to what appears to be a fairly common but complicated problem. Not sure if it all started the day I upgraded to i-tunes 9 or when I renewed my Norton Anti Virus. It was working for months even when I had Norton which i have since removed using the Norton Removal Tool. When I first click on it it tries to open and I get a message saying that my Quick Time software is outdated but BEFORE I can click on that another box opens over top that says "i-tunes has stopped working" "a problem has caused the program to stop working correctly. Windows will close he problem and notify you if a solution is found"
If i try again , nothing happens at all. When I go to processes I can see where it appears briefly maybe 2-3 seconds then disappears.
I have tried:
Making another user account and opening I-tunes
Removing my Norton anti virus
Uninstalling and re-installing i-tunes and quick time both together and separately....many many times
restoring previous version of i-tunes
I get the same message if i try to open just quicktime.
My i -tunes library itself will also not open.
Please tell me where to go from here
I am running a newer (3 months old) HP with Windows 7 64 bit
IDEAS???
Rob.Excellent news, Rob! Glad you're up and running again.
Any idea as to how it got this way? I am thinking of re-installing my Norton since it has worked well for me for the last few years and I an not exactly sure if that was the problem or if was a Windows 7 thing?
I reckon Norton and Windows 7 were innocent parties here. Some other application dumped a couple of boatloads of QuickTime componentry in your sysWOW64. (Older versions of codec packs, video converter software, other file converter software, and media players that offer the opportunity to use quicktime files "without installing QuickTime" are the usual culprits here, but some games might do this too.) That might go unnoticed so long as that componentry matches the existing version of QuickTime software that you have installed on the PC ... but things turn to custard when you have to update your QuickTime version, and the versions of the componentry in /sysWOW64/ no longer match your "QuickTime proper". (On 32-bit systems, the same sort of thing happens, with the difference being that the "foreign" QuickTime componentry would typically be lurking down in the system32 folder.)
So, we pretty much get cases of this sort of thing showing up constantly at the forums, with a big pulse in reports happening after any QuickTime version update. (It produces a significant proportion of the "iTunes has encountered a problem" and "iTunes has stopped working" messages that we get reported here.) You were really unlucky in that you got a rarer version of the possible error messages ... so there's not as much relevant troubleshooting advice available on the web, which makes researching what could possibly be going wrong for you considerably harder than it is for folk with the more common versions of the error messages. -
I have 3 iTunes accounts which I had set up each time I got a new device not realising I should use the same one. Is there a way to consolidate the accounts without losing tunes etc as at the moment my iPad, new iPhone and iPod are all getting different downloads : (
It's impossible to merge two iTunes accounts
-
How to use one I-tunes library with multiple windows users (family) on 1 pc
On our family pc we log in with different accounts. We want to use I-Tunes but all have the same library. I tried to create a library not in the users directory, but in the All Users folder that is accessible for everyone. However, when I import the music in the library for one user and set the same location for another user, I-tunes does not recognize the library. So everyone has to create it's own library.
What are the best practices to overcome this?Keep in mind that what you have done now is you have multiple iTunes libraries accessing the same media folder. Meaning, that each account can have their own ratings, playlists, etc. but more importantly, each account does NOT know what the other account does, so if your daughter adds a CD to her account, it will go into the shared folder, but it will NOT automatically go into your wife's iTunes library. She would have to add it manually. Likewise, if one account deletes music from their library and tells iTunes to remove it to the trash, the other accounts will not know and iTunes will still try to access the file from the shared location even though the file is now trashed.
Each account has their own database files (.itl files in the iTunes folder) which stores this stuff.
If you want to have everyone use the exact same library which means the same ratings, playlists, etc. then you need to move the database files into that same location and set each iTunes account to read the same data.
How to open an alternate iTunes Library file or create a new one
http://docs.info.apple.com/article.html?artnum=304447
Patrick -
Hi
I switched from an iPhone 4 to an iPhone 5c and now the itunes store app wants to download 1000 tunes (I guess it cannot try more) and it blocks.
I don't know how to delete the list (not one by one of course .
If someone has any clue to help
ThanksHi Francis,
Check the BADI "TRIP_WEB_CHECK" method "USER_CHECK_GENERAL_DATA".
Here based on the schema you can modify the "estimated cost" field.
Hope it helps.
Regards,
Jyothi
Maybe you are looking for
-
How do i use my time capsule to back up another mac?
How do I set up my time capsule to back up another mac computer?
-
Hi, I need to create a column that will have an icon ICON_DOCUMENT displayed in the column. Now, when i clik on this icon it should check for the existance of any links existing for a material , if so, then display those links . Basically this icon
-
How do I stop my PSC1510 All-In -One from printing a test page every time I power it on?Thanks
How do I stop my PSC1510 All-In -One from printing a test page every time I power it on?Thanks
-
Displaying Medium Text in Variable screen (WAD)
Hello Experts, When I run one of my reports in BEx, the input help for an infoobject shows key, Short Description and Medium Description. But the same report when I run in WEB it does not show the Medium Description but only the key and Short Descrip
-
Two JSplitPanes sharing single JPanel...
Say I have JPanels 1,2 and 3. I want JPanel 1 on top with a splitPane dividing it and Panel 2. THen I want JPanel 2 and 3 to be divided w/ another JSplitPanel . I can't seem to get this to work. Here's a little pseudo of what I'm doing. JPanel jp1,jp