Efficiency
Hi,
I have a code
LOOP AT I_VBRK_VBRP.
move sy-TABIX to vbrk_vbrp_indx.
move-corresponding i_vbrk_vbrp to w_vbrk_vbrp.
READ TABLE I_KONV WITH KEY KNUMV = I_VBRK_VBRP-KNUMV
KPOSN = I_VBRK_VBRP-POSNR
BINARY SEARCH.
IF SY-SUBRC NE 0.
DELETE I_VBRK_VBRP.
ELSE.
LOOP AT I_KONV WHERE KNUMV = I_VBRK_VBRP-KNUMV
AND KPOSN = I_VBRK_VBRP-POSNR.
IF I_VBRK_VBRP-KSCHL IS INITIAL
OR NOT RB_AG5 IS INITIAL.
MOVE I_KONV-KSCHL TO I_VBRK_VBRP-KSCHL.
MODIFY I_VBRK_VBRP index vbrk_vbrp_indx.
ELSE.
MOVE I_KONV-KSCHL TO W_VBRK_VBRP-KSCHL.
APPEND W_VBRK_VBRP.
CLEAR W_VBRK_VBRP.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
I want to merge the read operation in the second loop to make the operation more efficint.
Can anybody suggest me how to do?(without changing the output)
hi,
use like this.
read table I_KONV into <w_area> with key KNUMV = I_VBRK_VBRP-KNUMV
KPOSN = I_VBRK_VBRP-POSNR.
binary search.
if sy-subrc eq 0.
IF I_VBRK_VBRP-KSCHL IS INITIAL
OR NOT RB_AG5 IS INITIAL.
MOVE I_KONV-KSCHL TO I_VBRK_VBRP-KSCHL.
MODIFY I_VBRK_VBRP index vbrk_vbrp_indx.
ELSE.
MOVE I_KONV-KSCHL TO W_VBRK_VBRP-KSCHL.
APPEND W_VBRK_VBRP.
CLEAR W_VBRK_VBRP.
ENDIF.
endif.
<b><i>Reward points if useful</i></b>
Chandra
Similar Messages
-
How do I efficiently help multiple users to upgrade their devices?
We have about 15 users using iPad, iPad1, and iPhone4, now the iOS5 is avaialble to these devices, I want to figure out the most efficient way to help them all upgrade to iOS5, while most of them do not have iTunes installed on their workstations, some of them even doesn't have a workstation. Their devides were activated on my computer, and each Apple ID was created on each device.
From my understanding on iDevices, I need to authorize each account on iTunes, to perform a backup, upgrade, and full restore. But if I do them all on my computer, my computer will have collection of contents from 15 Apple ID accounts, it would have to download all apps which were installed by all different users, under one copy of iTunes, that is going to make a mess.
And I can't do it on each of their computers because (1) some users don't have workstation, (2) we do not want them to interact with iTunes, it creates more need of management and support from IT department.
So as an IT guy here, what should I do ? One idea I came up with, which might be stupid, is to configure iTunes and authorize different apple ID's, under different Windwos profile, so one user's app don't get mixed with another one's. I know technically speaking user A's apps won't be sync'ed into user B's device, but I just don't fele comfortable mixing them together and see that it sync'ed 25 out of 80 apps into one upgraded device, that will create some confusions.anybody, any idea ?
-
Implicit Join or Explicit Join...which is more efficient???
Which is more efficient?
An IMPLICIT JOIN
SELECT TableA.ColumnA1,
TableB.ColumnB2
FROM TableA,
TableB
WHERE TableA.ColumnA1 = TableB.ColumnB1
Or....An EXPLICIT JOIN
SELECT TableA.ColumnA1,
TableB.ColumnB2
FROM TableA
INNER JOIN TableB
ON TableA.ColumnA1 = TableB.ColumnB1
I have to write a pretty extensive query and there will be many parts and I just want to try and make sure it is efficient as possible. Can I EXPLAIN this in SQL Navigator as well to find out???
Thanks in advance for your review and hopeful for a reply.
PSULionRPAlex Nuijten wrote:
The Partition Outer Join is very handy, but it's an Oracle-ism - Not ANSI ...Ooh, "New thing learnt today" - check.
but then again who cares? ;)Oracle roolz! *{;-D -
Most efficient way to delete "removed" photos from hard disk?
Hello everyone! Glad to have this great community to come to for help. I searched for this question but came up with no hits. If it's already been discussed, I apologize and would love to be directed to the link.
My wife and I have been using LR for a long time. We're currently on version 4. Unfortunately, she's not as tech-savvy or meticulous as I am, and she has been unknowingly "Removing" photos from the LR catalogues when she really meant to delete them from the hard disk. That means we have hundreds of unwanted raw photo files floating around in our computer and no way to pick them out from the ones we want! As a very organized and space-conscious person, I can't stand the thought. So my question is, what is the most efficient way to permanently delete these unwanted photos from the hard disk
I did fine one suggestion that said to synchronize the parent folder with their respective catalogues, select all the photos in "Previous Import," and delete those, since they will be all of the photos that were previously removed from the catalogue.
This is a great suggestion, but it probably wouldn't work for all of my catalogues since my file structure is organized by date (the default setting for LR). So, two catalogues will share the same "parent folder" in the sense that they both have photos from May 2013, but if I synchronize May 2013 with one, then it will get all the duds PLUS the photos that belong in the other catalogue.
Does anyone have any suggestions? I know there's probably not an easy fix, and I'm willing to put in some time. I just want to know if there is a solution and make sure I'm working as efficiently as possible.
Thank you!
KennethI have to agree with the comment about multiple catalogs referring to images that are mixed in together... and the added difficulty that may have brought here.
My suggestions (assuming you are prepared to combine the current catalogs into one)
in each catalog, put a distinctive keyword onto all the images so that you can later discriminate these images as to which particular catalog they were formerly in (just in case this is useful information later)
as John suggests, use File / "Import from Catalog" to bring all LR images together into one catalog.
then in order to separate out the image files that ARE imported to LR, from those which either never were / have been removed, I would duplicate just the imported ones, to an entirely separate and dedicated disk location. This may require the temporary use of an external drive, with enough space for everything.
to do this, highlight all the images in the whole catalog, then use File / "Export as Catalog" selecting the option "include negatives". Provide a filename and location for the catalog inside your chosen new saving location. All the image files that are imported to the catalog will be selectively copied into this same location alongside the new catalog. The same relative arrangement of subfolders will be created there, for them all to live inside, as is seen currently. But image files that do not feature in LR currently, will be left behind by this operation.
your new catalog is now functional, referring to the copied image files. Making sure you have a full backup first, you can start deleting image files from the original location, that you believe to be unwanted. You can do this safe in the knowledge that anything LR is actively relying on, has already been duplicated elsewhere. So you can be quite aggressive at this, only watching out for image files that are required for other purposes (than as master data for Lightroom) - e.g., the exported JPG files you may have made.
IMO it is a good idea to practice a full separation of image files used in your LR image library, from all other image files. This separation means you know where it is safe to manage images freely using the OS, vs where (what I think of as the LR-managed storage area) you need to bear LR's requirements constantly in mind. Better for discrete backup, too.
In due course, as required, the copied image files plus catalog can be moved bodily to another drive (for example, if they have been temporarily put on an external drive, and you want to store them on your main internal one again). This then just requires a single re-browsing of their parent folder's location, in order to correct LR's records inside this catalog, as to the image files' changed addresses.
If you don't want to combine the catalogs into one, a similar set of operations as above, can be carried out for each separate catalog you have now. This will create a separate folder structure in each case, containing just those duplicated image files. Once this has been done for all catalogs, you can start to clean up the present image files location. IMO this is very much the laborious and inflexible option, so far as future management of the total body of images is concerned... though there may still be some overriding reason for working that way.
RP -
EFFICIENT way of escalating an open task
I need to escalate TASKS that are still open after 31 days.
I figure i need 2 workflows to do this.
As i see it right now:
1st WF. Waits for 31 days after the task has been created. On the 31st day it changes a read only field called "escalate" to YES.
2nd WF checks for changes in tasks where: If (Status=OPEN AND escalate<>pre(escalate)) is true then send an escalete email or task.
Is there a more efficient way of doing this?
TIA
PaulIs there a reason you want two worfklows? Why not put an e-mail action after the Wait on the same workflow? If you check the "Reevaluate Rule Conditions After Wait" checkbox on the Wait action, the workflow rule will be re-evaluated after your 31 days... so it would only send the e-mail message if the Task is still open (assuming your workflow condition is set to look at Status = Open).
Chris -
Efficiency of decoding and displaying image files?
BRIEF SUMMARY
My question is this: can Flash Player download JPG and GIF
files from a server and rapidly open/decode them, ready for
display, efficiently and
entirely 'in memory'?
Would Flex be a good choice of language for developing a RIA
that needs to continually download lots of JPG and GIF images
on-the-fly from the server and render them on the screen? I *don't*
want my application to thrash the hard disc.
BACKGROUND
I am designing a 'rich' web app, and I'm investigating
whether Flex is the right tool for the job.
Although Flash's animation features are an obvious selling
point for implementing my user interface, I also need to do some
server-side rendering. What I want to do is perhaps a little
unorthodox: I will be generating lots of GIF and JPG files on the
fly and these will be streamed to the client (along with other
application data, e.g. in XML format) to update different parts of
the on-screen document. In need this to happen very quickly (in
some cases, creating the effect of animation).
It happens that JPGs and 16-colour GIFs will be, by far, the
most efficient formats for streaming the images, because of the
nature of the application. I could of course send the images in
some proprietary format, geared for my application, but presumably
decoding the images would be slow as I would have to implement this
myself in ActionScript, and so I would be limited by the speed of
Flex 'bytecode'. (I realise Flash is a lot more optimised than it
once was, but I am hoping to see a gain from using image formats
that Flash natively understands!)
Naturally the internet bandwidth should (in principle) be the
bottleneck. However, assuming I can get my image files to the
client on time, want I want to know is:
how efficient is Flash at loading such files?
Bearing in mind that I'm not just displaying the occasional
image -- I will be doing this continuously. Most of the images
won't be huge, but there will be several separate images per
second.
The image files will be a mixture of normal colour JPGs and
4-bit colour GIFs (LZW-compressed). I know that Flash natively
supports these formats, but depending on how Adobe have implemented
their LZW/Huffman decoding and so on, and how much overhead there
is in opening/processing downloaded image files before they are
ready to 'blit' to the screen, I imagine this could be pretty fast
or pretty slow!
If my client only has a modest PC, I don't want the JPG/GIF
decoding alone to be thrashing his CPU (or indeed the disc) before
I've even got started on 'Flashy' vector stuff.
I'm new to Flash, so are there any 'gotchas' I need to know
about?
E.g. Would it be fair to assume Flash Player will do the
decoding of the downloaded image entirely 'in memory' without
trying to do anything clever like caching the file to disc, or
calling any libraries which might slow down the whole process? It
would be no good at all if the images were first written to the
client's hard disc before being ready to display, for example.
Further, if I'm doing something a little out-of-the-ordinary,
and there is no 'guarantee' that images will be loaded quickly,
what I'm doing might be a bad idea if a later version of Flash
Player may (for example) suddenly start doing some disc access in
the process of opening a newly downloaded image. So, while I could
just 'try it and see', what I really need is some assurance that
what I'm doing is sensible and is likely to carry on working in
future.
Finally, I imagine JPG/GIF decoding could be something that
would vary from platform to platform (e.g. for the sake of
argument, Flash Player for Windows could use a highly-optimised
library, but other versions could be very inefficient).
This could be the 'make or break' of my application, so all
advice is welcome! :) Thanks in advance.You need a servlet/jsf component to render the image in the response.
Look at this: http://www.irian.at/myfaces-sandbox/graphicImageDynamic.jsf -
Report on Smartform..To make it efficient by removing SELECT ,ENDSELECT
To make a smartform report efficient by removing all occurs & modify internal table statements.
What i have been given to do is to select all data from respective tables put them into one internal table & then finally making tab2 or tab3 in the report to be the final table.I am not sure which among these two i can make final table.
THE CODE is:
REPORT zgr_note.
TABLES : mseg, "Document Segment : Material
prps, "WBS element master data
proj, "Project Definition
mkpf, "Header : Material Document
lfa1, "Vendor Master
makt, "Material Description
aufk, "Order Master Data
afvc. "Operation within an order
DATA : fname LIKE rs38l-name. "Name of Function Module
DATA: lf_fm_name TYPE rs38l_fnam.
DATA: ls_control_param TYPE ssfctrlop.
DATA: ls_composer_param TYPE ssfcompop.
DATA: ls_recipient TYPE swotobjid.
DATA: ls_sender TYPE swotobjid.
DATA: lf_formname TYPE tdsfname.
DATA: ls_addr_key LIKE addr_key.
DATA: ls_dlv_land LIKE vbrk-land1.
DATA: ls_job_info TYPE ssfcrescl.
DATA: ls_otpt_opt TYPE ssfcompop.
DATA: retcode TYPE sy-subrc.
DATA: cntr TYPE i VALUE 0.
DATA: cntr1 TYPE i .
DATA: number TYPE SSFCRESCL-SPOOLIDS. " OCCURS 0 WITH HEADER LINE.
DATA: TSP01 type TABLE OF TSP01_SP0R.
DATA : BEGIN OF itab OCCURS 0.
INCLUDE STRUCTURE mseg.
DATA : post1 LIKE proj-post1, "Project Definition
pspnr LIKE proj-pspnr, "WBS element
maktx LIKE makt-maktx, "Material Description
name1 LIKE lfa1-name1, "Name of the supplier
budat LIKE mkpf-budat, "Posting date
bldat LIKE mkpf-bldat, "Document date
cpudt LIKE mkpf-cpudt, "Date on which account document was entered
psphi LIKE prps-psphi, "Current number of project
post2 LIKE prps-post1, "WBS Definition
xblnr LIKE mkpf-xblnr, "Reference number( in this case challan number)
bktxt LIKE mkpf-bktxt, "Header text
ort01 LIKE lfa1-ort01, "vendor city
ktext LIKE aufk-ktext, "network description
ltxa1 LIKE afvc-ltxa1. "operation short text
DATA : END OF itab.
DATA : BEGIN OF jtab OCCURS 0.
INCLUDE STRUCTURE itab.
DATA : END OF jtab.
DATA : itab1 LIKE itab OCCURS 0
WITH HEADER LINE.
DATA :itab2 LIKE itab OCCURS 0
WITH HEADER LINE.
DATA: itab3 LIKE itab OCCURS 0 WITH HEADER LINE.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text_001.
SELECT-OPTIONS : gr_num FOR mseg-mblnr . "no INTERVALS.
PARAMETERS : gr_note LIKE itemset-xopsel RADIOBUTTON GROUP rad1.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS : mat_num FOR mseg-mblnr . "no INTERVALS.
PARAMETERS : mat_slip LIKE itemset-xopsel RADIOBUTTON GROUP rad1.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN SKIP.
CASE 'X'.
WHEN gr_note.
PERFORM gr_display.
WHEN mat_slip.
PERFORM mat_display.
ENDCASE.
FORM gr_display .
*break developer1.
SELECT mblnr mjahr matnr werks lgort lifnr menge meins
erfmg bpmng ebeln ps_psp_pnr zeile lsmng erfme
FROM mseg
INTO CORRESPONDING FIELDS OF TABLE itab
WHERE mblnr IN gr_num.
LOOP AT itab.
SELECT pspnr psphi post1 INTO CORRESPONDING FIELDS OF itab1
FROM prps WHERE pspnr = itab-ps_psp_pnr.
itab-psphi = itab1-psphi.
itab-pspnr = itab1-pspnr.
itab-post2 = itab1-post1.
MODIFY itab TRANSPORTING psphi pspnr post2.
ENDSELECT.
SELECT post1 FROM proj INTO CORRESPONDING FIELDS OF itab2
WHERE pspnr = itab-psphi.
itab-post1 = itab2-post1.
MODIFY itab TRANSPORTING post1.
ENDSELECT.
REFRESH itab2.
SELECT maktx FROM makt INTO CORRESPONDING FIELDS OF itab2
WHERE matnr = itab-matnr.
itab-maktx = itab2-maktx.
MODIFY itab TRANSPORTING maktx.
ENDSELECT.
REFRESH itab2.
SELECT name1 ort01 FROM lfa1 INTO CORRESPONDING FIELDS OF itab2
WHERE lifnr = itab-lifnr.
itab-name1 = itab2-name1.
itab-ort01 = itab2-ort01.
MODIFY itab TRANSPORTING name1 ort01.
ENDSELECT.
REFRESH itab2.
SELECT budat bldat cpudt xblnr bktxt FROM mkpf
INTO CORRESPONDING FIELDS OF itab2
WHERE mblnr = itab-mblnr.
itab-budat = itab2-budat.
itab-bldat = itab2-bldat.
itab-cpudt = itab2-cpudt.
itab-xblnr = itab2-xblnr.
itab-bktxt = itab2-bktxt.
MODIFY itab TRANSPORTING budat bldat cpudt xblnr bktxt.
ENDSELECT.
ENDLOOP.
LOOP AT itab .
ON CHANGE OF itab-mblnr.
itab3-mblnr = itab-mblnr.
itab3-post1 = itab-post1.
itab3-post2 = itab-post2.
itab3-name1 = itab-name1.
itab3-ort01 = itab-ort01.
itab3-bldat = itab-bldat.
APPEND itab3.
CLEAR itab3.
ENDON.
ENDLOOP.
jtab-mblnr = itab-mblnr.
jtab-xblnr = itab-xblnr.
jtab-budat = itab-budat.
jtab-bktxt = itab-bktxt.
jtab-lsmng = itab-lsmng.
jtab-erfmg = itab-erfmg.
jtab-erfme = itab-erfme.
jtab-matnr = itab-matnr.
jtab-maktx = itab-maktx.
jtab-zeile = itab-zeile.
APPEND jtab.
LOOP AT itab3.
CLEAR: itab2,itab2[].
LOOP AT itab WHERE mblnr = itab3-mblnr.
MOVE-CORRESPONDING itab TO itab2.
APPEND itab2.
CLEAR itab2.
ENDLOOP.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZMM_GOODS_RECEIPT1'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
fm_name = fname
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*break developer1.
PERFORM print_parameters.
CALL FUNCTION fname
EXPORTING
control_parameters = ls_control_param
output_options = ls_otpt_opt
user_settings = 'X'
gr_mseg_hdr = itab3
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
TABLES
gr_mseg = itab2
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDLOOP.
ENDFORM. " GR_DISPLAY
FORM mat_display .
SELECT mblnr mjahr matnr werks lgort lifnr menge meins
erfmg bpmng ebeln ps_psp_pnr zeile lsmng erfme
mat_pspnr nplnr aufpl aplzl
FROM mseg
INTO CORRESPONDING FIELDS OF TABLE itab
WHERE mblnr IN mat_num.
LOOP AT itab.
SELECT ltxa1 FROM afvc INTO CORRESPONDING FIELDS OF itab1
WHERE aufpl = itab-aufpl AND aplzl = itab-aplzl.
itab-ltxa1 = itab1-ltxa1.
MODIFY itab TRANSPORTING ltxa1.
ENDSELECT.
REFRESH itab1.
SELECT ktext FROM aufk INTO CORRESPONDING FIELDS OF itab1
WHERE aufnr = itab-nplnr.
itab-ktext = itab1-ktext.
MODIFY itab TRANSPORTING ktext.
ENDSELECT.
REFRESH itab1.
SELECT pspnr psphi post1 INTO CORRESPONDING FIELDS OF itab1
FROM prps WHERE pspnr = itab-mat_pspnr.
itab-psphi = itab1-psphi.
itab-pspnr = itab1-pspnr.
itab-post2 = itab1-post1.
MODIFY itab TRANSPORTING psphi pspnr post2.
ENDSELECT.
SELECT post1 FROM proj INTO CORRESPONDING FIELDS OF itab2
WHERE pspnr = itab-psphi.
itab-post1 = itab2-post1.
MODIFY itab TRANSPORTING post1.
ENDSELECT.
REFRESH itab2.
SELECT maktx FROM makt INTO CORRESPONDING FIELDS OF itab2
WHERE matnr = itab-matnr.
itab-maktx = itab2-maktx.
MODIFY itab TRANSPORTING maktx.
ENDSELECT.
REFRESH itab2.
SELECT name1 ort01 FROM lfa1 INTO CORRESPONDING FIELDS OF itab2
WHERE lifnr = itab-lifnr.
itab-name1 = itab2-name1.
itab-ort01 = itab2-ort01.
MODIFY itab TRANSPORTING name1 ort01.
ENDSELECT.
REFRESH itab2.
SELECT budat bldat cpudt xblnr bktxt FROM mkpf
INTO CORRESPONDING FIELDS OF itab2
WHERE mblnr = itab-mblnr.
itab-budat = itab2-budat.
itab-bldat = itab2-bldat.
itab-cpudt = itab2-cpudt.
itab-xblnr = itab2-xblnr.
itab-bktxt = itab2-bktxt.
break developer1.
MODIFY itab TRANSPORTING budat bldat cpudt xblnr bktxt.
ENDSELECT.
ENDLOOP.
LOOP AT itab.
ON CHANGE OF itab-mblnr.
itab3-mblnr = itab-mblnr.
itab3-budat = itab-budat.
itab3-bldat = itab-bldat.
itab3-post1 = itab-post1.
itab3-ktext = itab-ktext.
APPEND itab3.
CLEAR itab3.
ENDON.
ENDLOOP.
LOOP AT itab3.
CLEAR: itab2, itab2[].
LOOP AT itab WHERE mblnr EQ itab3-mblnr.
MOVE-CORRESPONDING itab TO itab2.
APPEND itab2.
CLEAR itab2.
ENDLOOP.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZMM_MAT_ISSUE_SLIP'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
fm_name = fname
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ls_control_param-no_dialog = 'X'.
*ls_control_param-preview = 'X'.
*ls_control_param-getotf = 'X'.
ls_otpt_opt-tdnoprev = 'X'.
ls_otpt_opt-tdnewid = ''.
ls_otpt_opt-tdimmed = 'X'.
ls_otpt_opt-tddest = 'LP01'.
CALL FUNCTION fname
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
control_parameters = ls_control_param
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
output_options = ls_otpt_opt
user_settings = 'X'
mat_slip_hdr = itab3
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO = ls_job_info
JOB_OUTPUT_OPTIONS =
TABLES
mat_slip = itab2
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDLOOP.
ENDFORM.Hello Saswat,
There are a couple of criteria to make a SmartForm report efficient, i.e. to achieve a better performance:
- provide the best possible interface to the temporary FM (fname). When you do so, SmartForm itself has not to perform so much programming stuff by itself.
- The Driver program (zgr_note) has to be designed and coded well. What mean the performance of the Driver has to be optimized. In your case there should be a couple of performance improvements:
-- adjust your program declaration to the new ABAP syntax, i.e. don't use OCCURS clauses and do not use HEADER LINE. Instead, implement TYPES and use them. Here is an example:
TYPES: BEGIN OF ty_itab.
INCLUDE STRUCTURE mseg.
TYPES: post1 LIKE proj-post1, "Project Definition
pspnr LIKE proj-pspnr, "WBS element
maktx LIKE makt-maktx, "Material Description
name1 LIKE lfa1-name1, "Name of the supplier
budat LIKE mkpf-budat, "Posting date
bldat LIKE mkpf-bldat, "Document date
cpudt LIKE mkpf-cpudt, "Date on which account document was entered
psphi LIKE prps-psphi, "Current number of project
post2 LIKE prps-post1, "WBS Definition
xblnr LIKE mkpf-xblnr, "Reference number( in this case challan number)
bktxt LIKE mkpf-bktxt, "Header text
ort01 LIKE lfa1-ort01, "vendor city
ktext LIKE aufk-ktext, "network description
ltxa1 LIKE afvc-ltxa1, "operation short text
END OF ty_itab.
* Declare your internal tables and the corresponding working structures
DATA: itab1 type standard table of ty_itab,
itab2 type standard table of ty_itab,
itab3 type standard table of ty_itab,
jtab type standard table of ty_itab,
wa_itab1 type ty_itab,
wa_itab2 type ty_itab,
wa_itab3 type ty_itab,
wa_jtab type ty_itab.
-- Don't use
LOOP at itab.
SELECT ...... WHERE pspnr = itab-ps_psp_pnr.
ENDSELECT.
SELECT * ...
ENDSELECT
SELECT * .....
ENDSELECT
ENDLOOP.
Instead try to populate itab, itab1, itab2 each in ONE select statement using FOR ALL ENTRIES clause. After that you have to perform the LOOP runs using LOOP at itab INTO wa_itab. The more redundant SELECTs, the slower the program! When you perform a LOOP run, let say over itab1 and you need a corresponding record from table itab2 the use READ <itab> with key.
One additional, very important hint: Using internal tables w/o header line the CLEAR statement has another functionality than with HEADER LINE
CLEAR with HEADER LINE clears the HEADER line only
CLEAR w/o HEADER LINE clears the entire table. CLEAR does the same as REFRESH.
Another performance improvement is (when itab contains a lot of records) using FIELD-SYMBOLS.
A simple example is
FIELD-SYMBOLS: <fs> type itab.
LOOP at itab assigning <fs>.
wa_itab3-post1 = <fs>-post1.
wa_itab3-post2 = <fs>-post2.
APPEND wa_itab3 to itab.
ENDLOOP.
In this case no data values have to be transfered to a working field. The values are taken directly from the current line of the internal table.
-- For better readability disign some events like START-OF-SELECTION, END-OF-SELECTION, INITIALIZATION and others.
Try to gather all in SmartForms needed fields and pop them into table itab3.
I hope this helps improving zgr_note's efficiency.
Good luck,
Heinz -
Report on smartform.Replace select endselect with something to efficient it
To make a smartform report efficient by removing all occurs & modify internal table statements.
What i have been given to do is to select all data from respective tables put them into one internal table & then finally making tab2 or tab3 in the report to be the final table.I am not sure which among these two i can make final table.
THE CODE is:
REPORT zgr_note.
TABLES : mseg, "Document Segment : Material
prps, "WBS element master data
proj, "Project Definition
mkpf, "Header : Material Document
lfa1, "Vendor Master
makt, "Material Description
aufk, "Order Master Data
afvc. "Operation within an order
DATA : fname LIKE rs38l-name. "Name of Function Module
DATA: lf_fm_name TYPE rs38l_fnam.
DATA: ls_control_param TYPE ssfctrlop.
DATA: ls_composer_param TYPE ssfcompop.
DATA: ls_recipient TYPE swotobjid.
DATA: ls_sender TYPE swotobjid.
DATA: lf_formname TYPE tdsfname.
DATA: ls_addr_key LIKE addr_key.
DATA: ls_dlv_land LIKE vbrk-land1.
DATA: ls_job_info TYPE ssfcrescl.
DATA: ls_otpt_opt TYPE ssfcompop.
DATA: retcode TYPE sy-subrc.
DATA: cntr TYPE i VALUE 0.
DATA: cntr1 TYPE i .
DATA: number TYPE SSFCRESCL-SPOOLIDS. " OCCURS 0 WITH HEADER LINE.
DATA: TSP01 type TABLE OF TSP01_SP0R.
DATA : BEGIN OF itab OCCURS 0.
INCLUDE STRUCTURE mseg.
DATA : post1 LIKE proj-post1, "Project Definition
pspnr LIKE proj-pspnr, "WBS element
maktx LIKE makt-maktx, "Material Description
name1 LIKE lfa1-name1, "Name of the supplier
budat LIKE mkpf-budat, "Posting date
bldat LIKE mkpf-bldat, "Document date
cpudt LIKE mkpf-cpudt, "Date on which account document was entered
psphi LIKE prps-psphi, "Current number of project
post2 LIKE prps-post1, "WBS Definition
xblnr LIKE mkpf-xblnr, "Reference number( in this case challan number)
bktxt LIKE mkpf-bktxt, "Header text
ort01 LIKE lfa1-ort01, "vendor city
ktext LIKE aufk-ktext, "network description
ltxa1 LIKE afvc-ltxa1. "operation short text
DATA : END OF itab.
DATA : BEGIN OF jtab OCCURS 0.
INCLUDE STRUCTURE itab.
DATA : END OF jtab.
DATA : itab1 LIKE itab OCCURS 0
WITH HEADER LINE.
DATA :itab2 LIKE itab OCCURS 0
WITH HEADER LINE.
DATA: itab3 LIKE itab OCCURS 0 WITH HEADER LINE.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text_001.
SELECT-OPTIONS : gr_num FOR mseg-mblnr . "no INTERVALS.
PARAMETERS : gr_note LIKE itemset-xopsel RADIOBUTTON GROUP rad1.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS : mat_num FOR mseg-mblnr . "no INTERVALS.
PARAMETERS : mat_slip LIKE itemset-xopsel RADIOBUTTON GROUP rad1.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN SKIP.
CASE 'X'.
WHEN gr_note.
PERFORM gr_display.
WHEN mat_slip.
PERFORM mat_display.
ENDCASE.
FORM gr_display .
*break developer1.
SELECT mblnr mjahr matnr werks lgort lifnr menge meins
erfmg bpmng ebeln ps_psp_pnr zeile lsmng erfme
FROM mseg
INTO CORRESPONDING FIELDS OF TABLE itab
WHERE mblnr IN gr_num.
LOOP AT itab.
SELECT pspnr psphi post1 INTO CORRESPONDING FIELDS OF itab1
FROM prps WHERE pspnr = itab-ps_psp_pnr.
itab-psphi = itab1-psphi.
itab-pspnr = itab1-pspnr.
itab-post2 = itab1-post1.
MODIFY itab TRANSPORTING psphi pspnr post2.
ENDSELECT.
SELECT post1 FROM proj INTO CORRESPONDING FIELDS OF itab2
WHERE pspnr = itab-psphi.
itab-post1 = itab2-post1.
MODIFY itab TRANSPORTING post1.
ENDSELECT.
REFRESH itab2.
SELECT maktx FROM makt INTO CORRESPONDING FIELDS OF itab2
WHERE matnr = itab-matnr.
itab-maktx = itab2-maktx.
MODIFY itab TRANSPORTING maktx.
ENDSELECT.
REFRESH itab2.
SELECT name1 ort01 FROM lfa1 INTO CORRESPONDING FIELDS OF itab2
WHERE lifnr = itab-lifnr.
itab-name1 = itab2-name1.
itab-ort01 = itab2-ort01.
MODIFY itab TRANSPORTING name1 ort01.
ENDSELECT.
REFRESH itab2.
SELECT budat bldat cpudt xblnr bktxt FROM mkpf
INTO CORRESPONDING FIELDS OF itab2
WHERE mblnr = itab-mblnr.
itab-budat = itab2-budat.
itab-bldat = itab2-bldat.
itab-cpudt = itab2-cpudt.
itab-xblnr = itab2-xblnr.
itab-bktxt = itab2-bktxt.
MODIFY itab TRANSPORTING budat bldat cpudt xblnr bktxt.
ENDSELECT.
ENDLOOP.
LOOP AT itab .
ON CHANGE OF itab-mblnr.
itab3-mblnr = itab-mblnr.
itab3-post1 = itab-post1.
itab3-post2 = itab-post2.
itab3-name1 = itab-name1.
itab3-ort01 = itab-ort01.
itab3-bldat = itab-bldat.
APPEND itab3.
CLEAR itab3.
ENDON.
ENDLOOP.
jtab-mblnr = itab-mblnr.
jtab-xblnr = itab-xblnr.
jtab-budat = itab-budat.
jtab-bktxt = itab-bktxt.
jtab-lsmng = itab-lsmng.
jtab-erfmg = itab-erfmg.
jtab-erfme = itab-erfme.
jtab-matnr = itab-matnr.
jtab-maktx = itab-maktx.
jtab-zeile = itab-zeile.
APPEND jtab.
LOOP AT itab3.
CLEAR: itab2,itab2[].
LOOP AT itab WHERE mblnr = itab3-mblnr.
MOVE-CORRESPONDING itab TO itab2.
APPEND itab2.
CLEAR itab2.
ENDLOOP.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZMM_GOODS_RECEIPT1'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
fm_name = fname
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*break developer1.
PERFORM print_parameters.
CALL FUNCTION fname
EXPORTING
control_parameters = ls_control_param
output_options = ls_otpt_opt
user_settings = 'X'
gr_mseg_hdr = itab3
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
TABLES
gr_mseg = itab2
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDLOOP.
ENDFORM. " GR_DISPLAY
FORM mat_display .
SELECT mblnr mjahr matnr werks lgort lifnr menge meins
erfmg bpmng ebeln ps_psp_pnr zeile lsmng erfme
mat_pspnr nplnr aufpl aplzl
FROM mseg
INTO CORRESPONDING FIELDS OF TABLE itab
WHERE mblnr IN mat_num.
LOOP AT itab.
SELECT ltxa1 FROM afvc INTO CORRESPONDING FIELDS OF itab1
WHERE aufpl = itab-aufpl AND aplzl = itab-aplzl.
itab-ltxa1 = itab1-ltxa1.
MODIFY itab TRANSPORTING ltxa1.
ENDSELECT.
REFRESH itab1.
SELECT ktext FROM aufk INTO CORRESPONDING FIELDS OF itab1
WHERE aufnr = itab-nplnr.
itab-ktext = itab1-ktext.
MODIFY itab TRANSPORTING ktext.
ENDSELECT.
REFRESH itab1.
SELECT pspnr psphi post1 INTO CORRESPONDING FIELDS OF itab1
FROM prps WHERE pspnr = itab-mat_pspnr.
itab-psphi = itab1-psphi.
itab-pspnr = itab1-pspnr.
itab-post2 = itab1-post1.
MODIFY itab TRANSPORTING psphi pspnr post2.
ENDSELECT.
SELECT post1 FROM proj INTO CORRESPONDING FIELDS OF itab2
WHERE pspnr = itab-psphi.
itab-post1 = itab2-post1.
MODIFY itab TRANSPORTING post1.
ENDSELECT.
REFRESH itab2.
SELECT maktx FROM makt INTO CORRESPONDING FIELDS OF itab2
WHERE matnr = itab-matnr.
itab-maktx = itab2-maktx.
MODIFY itab TRANSPORTING maktx.
ENDSELECT.
REFRESH itab2.
SELECT name1 ort01 FROM lfa1 INTO CORRESPONDING FIELDS OF itab2
WHERE lifnr = itab-lifnr.
itab-name1 = itab2-name1.
itab-ort01 = itab2-ort01.
MODIFY itab TRANSPORTING name1 ort01.
ENDSELECT.
REFRESH itab2.
SELECT budat bldat cpudt xblnr bktxt FROM mkpf
INTO CORRESPONDING FIELDS OF itab2
WHERE mblnr = itab-mblnr.
itab-budat = itab2-budat.
itab-bldat = itab2-bldat.
itab-cpudt = itab2-cpudt.
itab-xblnr = itab2-xblnr.
itab-bktxt = itab2-bktxt.
break developer1.
MODIFY itab TRANSPORTING budat bldat cpudt xblnr bktxt.
ENDSELECT.
ENDLOOP.
LOOP AT itab.
ON CHANGE OF itab-mblnr.
itab3-mblnr = itab-mblnr.
itab3-budat = itab-budat.
itab3-bldat = itab-bldat.
itab3-post1 = itab-post1.
itab3-ktext = itab-ktext.
APPEND itab3.
CLEAR itab3.
ENDON.
ENDLOOP.
LOOP AT itab3.
CLEAR: itab2, itab2[].
LOOP AT itab WHERE mblnr EQ itab3-mblnr.
MOVE-CORRESPONDING itab TO itab2.
APPEND itab2.
CLEAR itab2.
ENDLOOP.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZMM_MAT_ISSUE_SLIP'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
fm_name = fname
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ls_control_param-no_dialog = 'X'.
*ls_control_param-preview = 'X'.
*ls_control_param-getotf = 'X'.
ls_otpt_opt-tdnoprev = 'X'.
ls_otpt_opt-tdnewid = ''.
ls_otpt_opt-tdimmed = 'X'.
ls_otpt_opt-tddest = 'LP01'.
CALL FUNCTION fname
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
control_parameters = ls_control_param
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
output_options = ls_otpt_opt
user_settings = 'X'
mat_slip_hdr = itab3
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO = ls_job_info
JOB_OUTPUT_OPTIONS =
TABLES
mat_slip = itab2
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDLOOP.
ENDFORM.Hi saswat mohanty ,
Welcome to SDN. Ya your program takes lot of time to give the output becauase of more select endselects in a loop.
You are hitting as many times as the records in the ITAB.
Instead use "for all entries" clause for fetching the complete data from a table atonce.
Example: your itab is there.
Select * from xyz
into table itab2
for all entries in itab
where field1 eq itab-field1
and field2 eq itab-field2.
After fetching the data you can populate the final table by looping through ITAB and itab2.
This is best procedure to reduce the load on database.
Implement this in your program to improve performance.
REWARD POINTS IF USEFUL.
Venkat. -
SQL query with multiple tables - what is the most efficient way?
Hello I am learning PL/SQL. I have a simple procedure where I need to find number of employees and departments per location as per user input of location_id.
I have 3 Tables:
LOCATIONS
location_id (pk)
location_name
DEPARTMENTS
department_id (pk)
location_id (fk)
department_name
EMPLOYEES
employee_id (pk)
department_id (fk)
employee_name
1 Location can have 0-MANY Departments
1 Employee has 1 Department
Here is the query I came up with for PL/SQL procedure:
/*Ecount, Dcount are NUMBER variables */
SELECT SUM (EmployeeCount), COUNT(DepartmentNumber)
INTO Ecount, Dcount
FROM
(SELECT COUNT(employee_id) EmployeeCount, department_id DepartmentNumber
FROM employees
GROUP BY department_id
HAVING department_id IN
(SELECT department_id
FROM departments
WHERE location_id = userInput));
I do get the correct result, but I am just wondering if my query is on the right track and if there is a more "efficient" way of doing this.
Thanks in advance for helping a newbie out.Hi,
Welcome to the forum!
Something like this will be more efficient:
SELECT COUNT (employee_id) AS ECount
, COUNT (DISTINCT department_id) AS DCount
FROM employees
WHERE department_id IN ( SELECT department_id
FROM departments
WHERE location_id = :userInput
;You should also try a join instead of the IN subquery.
For efficiency, do only the things you need to do.
For example, you don't need a count of employees in each department, so don't compute one. That means you won't need the in-line view, so don't have one.
You don't need PL/SQL for this job, so don't use PL/SQL if you don't have to. (I realize this question was out of context, so you may have good reasons for doing this in PL/SQL.)
Do all filtering as early as possible. Don't waste effort computing things that won't be used .
A particular example of this is: Never use a HAVING clause when you can use a WHERE clause. What's the difference between a WHERE clause and a HAVING clause? The WHERE clause is applied before aggregate functions are computed, and the HAVING clause is applied after; there's no other difference. Therefore, if the HAVING clause isn't referencing an aggregate function, it could be done in a WHERE clause instead. -
Power Efficiency Diagnostics Report - How to fix the below mentioned issues?
Power Efficiency Diagnostics Report
Computer Name
SONY-VAIO
Scan Time
2014-04-12T15:29:55Z
Scan Duration
60 seconds
System Manufacturer
Sony Corporation
System Product Name
VPCEH25EN
BIOS Date
04/19/2012
BIOS Version
R0200Z9
OS Build
7601
Platform Role
PlatformRoleMobile
Plugged In
false
Process Count
134
Thread Count
1477
Report GUID
{bd655715-c758-4329-9f37-029a6c41aa27}
Analysis Results
Errors
USB Suspend:USB Device not Entering Suspend
The USB device did not enter the Suspend state. Processor power management may be prevented if a USB device does not enter the Suspend state when not in use.
Device Name
USB Composite Device
Host Controller ID
PCI\VEN_8086&DEV_1C26
Host Controller Location
PCI bus 0, device 29, function 0
Device ID
USB\VID_12D1&PID_14DB
Port Path
1,1
USB Suspend:USB Device not Entering Suspend
The USB device did not enter the Suspend state. Processor power management may be prevented if a USB device does not enter the Suspend state when not in use.
Device Name
USB Mass Storage Device
Host Controller ID
PCI\VEN_8086&DEV_1C26
Host Controller Location
PCI bus 0, device 29, function 0
Device ID
USB\VID_0BB4&PID_0001
Port Path
1,3
USB Suspend:USB Device not Entering Suspend
The USB device did not enter the Suspend state. Processor power management may be prevented if a USB device does not enter the Suspend state when not in use.
Device Name
USB Root Hub
Host Controller ID
PCI\VEN_8086&DEV_1C26
Host Controller Location
PCI bus 0, device 29, function 0
Device ID
USB\VID_8086&PID_1C26
Port Path
USB Suspend:USB Device not Entering Suspend
The USB device did not enter the Suspend state. Processor power management may be prevented if a USB device does not enter the Suspend state when not in use.
Device Name
Generic USB Hub
Host Controller ID
PCI\VEN_8086&DEV_1C26
Host Controller Location
PCI bus 0, device 29, function 0
Device ID
USB\VID_8087&PID_0024
Port Path
1
CPU Utilization:Processor utilization is high
The average processor utilization during the trace was high. The system will consume less power when the average processor utilization is very low. Review processor utilization for individual processes to determine which applications and services contribute
the most to total processor utilization.
Average Utilization (%)
10.44
Platform Power Management Capabilities:PCI Express Active-State Power Management (ASPM) Disabled
PCI Express Active-State Power Management (ASPM) has been disabled due to a known incompatibility with the hardware in this computer.
Warnings
Platform Timer Resolution:Platform Timer Resolution
The default platform timer resolution is 15.6ms (15625000ns) and should be used whenever the system is idle. If the timer resolution is increased, processor power management technologies may not be effective. The timer resolution may be increased due to
multimedia playback or graphical animations.
Current Timer Resolution (100ns units)
10000
Maximum Timer Period (100ns units)
156001
Platform Timer Resolution:Outstanding Timer Request
A program or service has requested a timer resolution smaller than the platform maximum timer resolution.
Requested Period
10000
Requesting Process ID
2768
Requesting Process Path
\Device\HarddiskVolume3\Users\sony\AppData\Local\Google\Chrome\Application\chrome.exe
Platform Timer Resolution:Outstanding Timer Request
A program or service has requested a timer resolution smaller than the platform maximum timer resolution.
Requested Period
10000
Requesting Process ID
7268
Requesting Process Path
\Device\HarddiskVolume3\Users\sony\AppData\Local\Google\Chrome\Application\chrome.exe
Power Policy:802.11 Radio Power Policy is Maximum Performance (Plugged In)
The current power policy for 802.11-compatible wireless network adapters is not configured to use low-power modes.
CPU Utilization:Individual process with significant processor utilization.
This process is responsible for a significant portion of the total processor utilization recorded during the trace.
Process Name
SRService.exe
PID
2632
Average Utilization (%)
1.61
Module
Average Module Utilization (%)
\SystemRoot\system32\ntoskrnl.exe
1.34
\Device\HarddiskVolume3\Windows\SysWOW64\kernel32.dll
0.04
\Device\HarddiskVolume3\Windows\System32\wow64.dll
0.04
CPU Utilization:Individual process with significant processor utilization.
This process is responsible for a significant portion of the total processor utilization recorded during the trace.
Process Name
chrome.exe
PID
1728
Average Utilization (%)
1.40
Module
Average Module Utilization (%)
\Device\HarddiskVolume3\Users\sony\AppData\Local\Google\Chrome\Application\34.0.1847.116\chrome_child.dll
1.21
\SystemRoot\system32\ntoskrnl.exe
0.10
\Device\HarddiskVolume3\Windows\SysWOW64\ntdll.dll
0.01
CPU Utilization:Individual process with significant processor utilization.
This process is responsible for a significant portion of the total processor utilization recorded during the trace.
Process Name
chrome.exe
PID
5264
Average Utilization (%)
0.87
Module
Average Module Utilization (%)
\Device\HarddiskVolume3\Users\sony\AppData\Local\Google\Chrome\Application\34.0.1847.116\chrome.dll
0.33
\SystemRoot\system32\ntoskrnl.exe
0.27
\Device\HarddiskVolume3\Windows\SysWOW64\ntdll.dll
0.04
CPU Utilization:Individual process with significant processor utilization.
This process is responsible for a significant portion of the total processor utilization recorded during the trace.
Process Name
chrome.exe
PID
7268
Average Utilization (%)
0.59
Module
Average Module Utilization (%)
\Device\HarddiskVolume3\Windows\SysWOW64\nvd3dum.dll
0.15
\Device\HarddiskVolume3\Users\sony\AppData\Local\Google\Chrome\Application\34.0.1847.116\libglesv2.dll
0.08
\SystemRoot\system32\ntoskrnl.exe
0.07
CPU Utilization:Individual process with significant processor utilization.
This process is responsible for a significant portion of the total processor utilization recorded during the trace.
Process Name
System
PID
4
Average Utilization (%)
0.55
Module
Average Module Utilization (%)
\SystemRoot\system32\ntoskrnl.exe
0.36
\SystemRoot\System32\drivers\dxgmms1.sys
0.06
\SystemRoot\system32\DRIVERS\nvlddmkm.sys
0.02
CPU Utilization:Individual process with significant processor utilization.
This process is responsible for a significant portion of the total processor utilization recorded during the trace.
Process Name
svchost.exe
PID
860
Average Utilization (%)
0.44
Module
Average Module Utilization (%)
\SystemRoot\system32\ntoskrnl.exe
0.28
\Device\HarddiskVolume3\Windows\System32\rpcrt4.dll
0.04
\Device\HarddiskVolume3\Windows\System32\ntdll.dll
0.03
CPU Utilization:Individual process with significant processor utilization.
This process is responsible for a significant portion of the total processor utilization recorded during the trace.
Process Name
AvastSvc.exe
PID
1316
Average Utilization (%)
0.38
Module
Average Module Utilization (%)
\SystemRoot\system32\ntoskrnl.exe
0.13
\Device\HarddiskVolume3\Program Files\Alwil Software\Avast5\defs\14041100\algo.dll
0.05
\Device\HarddiskVolume3\Windows\winsxs\x86_avast.vc110.crt_2036b14a11e83e4a_11.0.60610.1_none_1d37a43bbfe1dc9c\msvcr110.dll
0.03
CPU Utilization:Individual process with significant processor utilization.
This process is responsible for a significant portion of the total processor utilization recorded during the trace.
Process Name
chrome.exe
PID
6232
Average Utilization (%)
0.29
Module
Average Module Utilization (%)
\Device\HarddiskVolume3\Users\sony\AppData\Local\Google\Chrome\Application\34.0.1847.116\chrome_child.dll
0.21
0.04
\SystemRoot\system32\ntoskrnl.exe
0.01
CPU Utilization:Individual process with significant processor utilization.
This process is responsible for a significant portion of the total processor utilization recorded during the trace.
Process Name
Apoint.exe
PID
4420
Average Utilization (%)
0.28
Module
Average Module Utilization (%)
\SystemRoot\system32\ntoskrnl.exe
0.14
\SystemRoot\System32\win32k.sys
0.06
\SystemRoot\system32\drivers\fltmgr.sys
0.02
CPU Utilization:Individual process with significant processor utilization.
This process is responsible for a significant portion of the total processor utilization recorded during the trace.
Process Name
explorer.exe
PID
4056
Average Utilization (%)
0.21
Module
Average Module Utilization (%)
\SystemRoot\System32\win32k.sys
0.09
\SystemRoot\system32\ntoskrnl.exe
0.07
\Device\HarddiskVolume3\Windows\winsxs\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_fa396087175ac9ac\comctl32.dll
0.00
Information
Platform Timer Resolution:Timer Request Stack
The stack of modules responsible for the lowest platform timer setting in this process.
Requested Period
10000
Requesting Process ID
2768
Requesting Process Path
\Device\HarddiskVolume3\Users\sony\AppData\Local\Google\Chrome\Application\chrome.exe
Calling Module Stack
\Device\HarddiskVolume3\Windows\SysWOW64\ntdll.dll
\Device\HarddiskVolume3\Windows\SysWOW64\winmm.dll
\Device\HarddiskVolume3\Users\sony\AppData\Local\Google\Chrome\Application\34.0.1847.116\chrome_child.dll
\Device\HarddiskVolume3\Windows\SysWOW64\kernel32.dll
\Device\HarddiskVolume3\Windows\SysWOW64\ntdll.dll
Platform Timer Resolution:Timer Request Stack
The stack of modules responsible for the lowest platform timer setting in this process.
Requested Period
10000
Requesting Process ID
7268
Requesting Process Path
\Device\HarddiskVolume3\Users\sony\AppData\Local\Google\Chrome\Application\chrome.exe
Calling Module Stack
\Device\HarddiskVolume3\Windows\SysWOW64\ntdll.dll
\Device\HarddiskVolume3\Windows\SysWOW64\winmm.dll
\Device\HarddiskVolume3\Windows\SysWOW64\d3d9.dll
\Device\HarddiskVolume3\Users\sony\AppData\Local\Google\Chrome\Application\34.0.1847.116\libglesv2.dll
\Device\HarddiskVolume3\Users\sony\AppData\Local\Google\Chrome\Application\34.0.1847.116\libegl.dll
\Device\HarddiskVolume3\Users\sony\AppData\Local\Google\Chrome\Application\34.0.1847.116\chrome_child.dll
Power Policy:Active Power Plan
The current power plan in use
Plan Name
OEM Balanced
Plan GUID
{381b4222-f694-41f0-9685-ff5bb260df2e}
Power Policy:Power Plan Personality (On Battery)
The personality of the current power plan when the system is on battery power.
Personality
Balanced
Power Policy:Video Quality (On Battery)
Enables Windows Media Player to optimize for quality or power savings when playing video.
Quality Mode
Balance Video Quality and Power Savings
Power Policy:Power Plan Personality (Plugged In)
The personality of the current power plan when the system is plugged in.
Personality
Balanced
Power Policy:Video quality (Plugged In)
Enables Windows Media Player to optimize for quality or power savings when playing video.
Quality Mode
Optimize for Video Quality
System Availability Requests:Analysis Success
Analysis was successful. No energy efficiency problems were found. No information was returned.
Battery:Battery Information
Battery ID
5950SONY Corp. VGP-BPS26
Manufacturer
SONY Corp.
Serial Number
5950
Chemistry
LION
Long Term
1
Design Capacity
45040
Last Full Charge
34940
Platform Power Management Capabilities:Supported Sleep States
Sleep states allow the computer to enter low-power modes after a period of inactivity. The S3 sleep state is the default sleep state for Windows platforms. The S3 sleep state consumes only enough power to preserve memory contents and allow the computer
to resume working quickly. Very few platforms support the S1 or S2 Sleep states.
S1 Sleep Supported
false
S2 Sleep Supported
false
S3 Sleep Supported
true
S4 Sleep Supported
true
Platform Power Management Capabilities:Adaptive Display Brightness is supported.
This computer enables Windows to automatically control the brightness of the integrated display.
Platform Power Management Capabilities:Processor Power Management Capabilities
Effective processor power management enables the computer to automatically balance performance and energy consumption.
Group
0
Index
0
Idle (C) State Count
3
Performance (P) State Count
14
Throttle (T) State Count
8
Platform Power Management Capabilities:Processor Power Management Capabilities
Effective processor power management enables the computer to automatically balance performance and energy consumption.
Group
0
Index
1
Idle (C) State Count
3
Performance (P) State Count
14
Throttle (T) State Count
8
Platform Power Management Capabilities:Processor Power Management Capabilities
Effective processor power management enables the computer to automatically balance performance and energy consumption.
Group
0
Index
2
Idle (C) State Count
3
Performance (P) State Count
14
Throttle (T) State Count
8
Platform Power Management Capabilities:Processor Power Management Capabilities
Effective processor power management enables the computer to automatically balance performance and energy consumption.
Group
0
Index
3
Idle (C) State Count
3
Performance (P) State Count
14
Throttle (T) State Count
8Hi,
What is the symptom of the issue you encountered? The report shows there's a "known incompatibility with the hardware" and all "USB Suspend:USB Device not Entering Suspend" errors are caused by the prevention of Power Management (which is disabled due to
hardware issue) so have you made any hardware change rencently?
You can also manually check the Power Management setting, control panel\power options\chang plan settings\change advanced power settings, scroll down to PCI Express (check if you can set it to "Moderate Power Savings") and Process Power Management(should be
active).
Yolanda Zhu
TechNet Community Support -
Can't update apps bought from different stores efficiently any more, why?
After the latest update of iTune 11, I found I can not any more update iOS Apps efficiently in iTunes. I have three different iTunes Store accounts for different country stores and they are all active.
Before this iTunes update, I had been able to update apps by store - which means when I am in a certain App Store, iTunes shows all apps need-to-update in that store only. I could press 'Update All" and sign-off so as to switch to another App Store while the updating running by itselfs and do the same in another store. This has been quite an effective way when there are more than 10 apps to update.
The new iTunes has a category "Update", which is good. However, it doesn't further categorize the apps by Store. The problem now is that I had 300+ updates waiting there and they belong to 3 stores. When I start updating with Store A, I can't sign-off (so no way to switch) until the apps update in Store A completes. Then it comes another big problem - when app No 22 to 26 were bought through Store B, 27 to 30 from Store A, 30-31 from Store C, etc, the udpate will stop when app 22 is detected and iTunes pops up a dialogue saying something like "this app was from another store, you have to switch to that store". If I don't switch, the udpate will not continue; if I do, it will stop the updating of app 20 and 21 (if haven't finished by then).
Once I switch, the same thing will repeat when app 27 is detected, then app 30, then app 32, then... then it is a total catastrophy.
On iOS devices, I don't have to switch to update apps from multiple stores, except when some apps were for certain store only, such as China Sore. Even the latter, I don't have to switch "BACK and FORTH".
Why can't iTunes on Mac do the same? At least, iTunes should continue to allow app update by Store and allow updating continues when the accounts is signed off.
Has anyone had the same problem? Is this a bug or not?Just updated to iTunes 11 two days ago and am also seeing
the same behavior. The only way to find out if there is an update
to an app in iTunes is to enable the side bar, click on Apps. Then in
the lower right corner, click check for updates. If you are already logged
into the iTunes Store, I believe it will show the updates automatically.
But yes, it should show that an update is available in the store, as it used to. -
How to share the music folder with multiple libraries efficiently?
Hi,
Me and my husband use the same computer, but have our own seperate user account on it. We have setup iTunes such that for each user account iTunes points to the same central music folder (on a seperate large disc). So effectively we are sharing the mp3/m4p/m4a files, but not the library.
So each user account has it's own iTunes library file with playlists, ratings etc. This is all fine, but if either of us adds something to the library (by importing a CD or by purchasing music), it is not automatically reflected in the other library.
The workaround we found for this is to drag the iTunes folder to the library every time you know that the other user made changes... It works, but it is not very efficient.
Any suggestions are welcome!
As a sidenote: for photo's we use Picasa from Google in a similar fashion (shared storage, different libraries) and here it works. When starting, Picasa automatically detects changes in the photo folder and updates the library accordingly.You are doing the same thing I do at home. Except we just add the files that have been newly added rather than the whole library each time.
What we did is decide that all importing from CD will be with one account. This is just to make things easier keeping track of new adds. What we do is CDs that have been added are kept in a rack next to computer. If my wife wants the files all she has to do is add the files from the common storage drive then put the disc in storage. -
I just purchased a new computer. My old computer has several "libraries" that have been saved. How do I know how to transfer the data most efficiently?
The progress for some games will transfer since some games synce progress to a cental server. For other games you will have to have the backup of the old iPod.
You can restore from backup or access the backup. See:
How to transfer game saves between iOS devices, without iTunes, and without jailbreaking | TUAW - The Unofficial Apple Weblog
If you have acces to the old iPod yu can make a backup by connecting the iPod to the computer and right click on the iPOd under Devices in iTunes and select Back Up. Then restore from that backup. -
Advice needed: Efficient way to scan users
Hi all,
I wish to know the efficient way to scan users in Lighthouse. I need to write a workflow that checkout all the users and perform some updates. This workflow should run everyday at midnight.
I have created a scanner myself. Basically what It did are:
1. call FormUtils.getUsers method to return all users' name into a variable.
2. loop through this list and call a subprocess workflow to process every user. This subprocess checks out a user view, performs updates, and then checks in view.
This solution is not efficient at all since it causes my JVM to be Out of Memory. (1G RAM assigned to JVM with about 78,000 users)
Any advice is highly appreciated. Thank you.
SteveOk...I know understand what you are doing and why you need this.
A long, long, long time ago (back in 3.x days) the deferred task scanner was really bad. Its nightly scan would scan ALL users each time. This is fine when your client had 4k users...but not when it has 140k users.
Additionally, the "set deferred task" function had problems with two tasks with the same name "i.e. disable resource" since it used the name as the xml object name which can not be duplicated.
soooo, to beat this I rewrote the deferred task handler to allow me to do all of this. Part of this was to add a searchable field called 'nextTaskDate' on the user object. After each workflow this 'date" is updated so it is always correctly populated with the users "next deferred task date"
each night the scanner runs and querys all users with a nextTaskDate of today. This then gives us a result set that we can iterate over instead of having to list each user and search for tasks. It's a billion times faster.
Your best bet is to store the task date in miliseconds and make your query a "all users with next task date BEFORE now"...this way if the server is hosed you can execute tasks you may have missed.
We have an entire re-usable implmentation framework that we have patented (of which this code is a part) that answers most of these types of issues you are bringing up. It makes these implementations much much simpler, faster, scalable and maintainable.
this make sense?
Dana Reed
AegisUSA
Denver, CO 80211
[email protected]
773.412.3782
"Now hiring best-in-class IdM architects. Inquire via emai" -
My Mac Book Pro has slowed to less than a crawl (possibly from a worm or virus). How do I make sure it's running at peak efficiency before I complain to comcast
Please answer as many of the following questions as you can. You may already have answered some of them; in that case, there's no need to repeat the answers.
Restart the router and the broadband device, if they're separate. Any change?
Run Software Update and install all available updates for OS X or the computer's firmware. Any change?
If possible, connect to the router with an Ethernet cable and turn off Wi-Fi. Any difference?
Are any other devices on the network, and if so, are they the same?
If you can connect to more than one network, are they all the same?
Are all network applications affected, or only some? If only some, which ones?
Is networking always the same, or is the problem intermittent?
Disconnect all other devices from the network. Any change?
If you're running a MacBook with the lid closed, open the lid. Any difference?
Start up in safe mode and test. Any difference?
Start up in Recovery mode. From the OS X Utilities screen, select Get Help Online. A clean copy of Safari will launch. No plugins, such as Flash, will be available. Any difference?
If possible, turn off Bluetooth and disconnect any USB 3 devices. Any difference? -
Does anyone have a suggestion for an alternative to iCal that will interface with the Cloud so it works on the iPhone and the Macbook? I find iCal to be poorly designed and not very efficient. I waste a lot of time entering information because you can't go to a specific day and enter information, nor can you navigate between months and add information on a specific date by clicking on the date. You can't easily scroll month-to-month and once you do by scrolling through nine months to get to where you want to be, you cannot enter information by clicking on a specific day in the month and entering information. I just called Apple and they verified that this is the way it works. You cannot go to a date and enter information, you keep getting thrown back to today and then you have to go into the calendar and change it manually on the screen. It is just not efficient.
APC, CyberPower are reliable.
Look for 1500VA. As example:
APC
http://www.amazon.co.uk/APC-Back-UPS-Pro-1500-Connector/dp/B0041MP81Y/
Cyperpower:
http://www.amazon.co.uk/Dell-CyberPower-Intelligent-LCD-1500VA/dp/B005DL5L50/
Maybe you are looking for
-
WebLogic searches for DataControls.dcx in wrong package. (JBO-25002)
Hi, I've just started a simple Fusion Web Application in JDeveloper (11.1.1.3.PS2_GENERIC_100408.2356.5660) and am running on the Integrated WebLogic Server (10.3.3.0 ). I created a POJO in my Model project that contains a method that I want to call
-
I get the following error when i try and access a site I'm working on through internet explorer, but it works fine when i run it in the visual studio 2005 environment.<br /><br />(I'm trying to complete a pdf with form fields)<br /><br />======<br />
-
Conflict in planning workbench
Hello, Our purchasers are using WWP2 as their primary tool for purchasing and after an upgrade from 46C to ECC6 they have run into some problem. In the Material Selection part of WWP2 selection screen the field Delivery date have appeared with some n
-
Hi, Was wondering if i could get a firm response on whether the standard cache location can be modified for users of the application by defaut from C:\ My Documents\My Adobe Captivate Projects. We require the location to be set to D:\My Adobe Captiva
-
Granular Permissions on a Shared Mailbox
I've created a Shared mailbox in our Exchange environment. The managers don't want everyone to have the ability to delete messages in that box, but they want everyone to be able to read. During the setup of a Shared mailbox you grant Full Access