Tool\Scripts required to tune the init parameter.

Hello All,
We faced lot of problem during Oracle10G migration for example Performance issue, Tuning of init parameter.
Now we are planning to migrate to Oracle 11G.
Can you please let me know how to tune the init parameter. Is any tool \Scripts available for tuning ?
Our system are windows based (window server 2008 32 bit).
Any suggestion or any pointers will be highly appreciated.
Thanks in advance.
With Regards
Hemant Joshi.

My point, though, is that if Oracle has not provided an option to automatically tune a particular parameter, it is very, very unlikely that anyone else has.
You can read through the documentation to understand what each particular parameter does. You can then use your knowledge of your application to make an educated guess at the proper setting. And you can run tests with appropriate application load to determine whether you have improved performance. But it does not sound like that is what you're looking for.
With a lot of these settings, the right value is highly application dependent. For example, I would argue that CURSOR_SHARING should always be exact unless you are temporarily covering bugs in your application code. So if you have set it to something other than EXACT, there should be a project to fix the code bugs that force the setting. As code fixes go in to remedy the bugs you've identified, you'd want to re-examine this setting. Obviously, though, no one other than a human in your organization can figure out when a particular piece of code has been fixed to use bind variables in order to determine that you can change cursor_sharing.
Justin

Similar Messages

  • Help required regarding tunning the query mentioned

    HI all ,
    Query mentioned below takes around 1 hr to complete . It's being used by the autoconfig kindly me in tunning it ..
    QUery :
    UPDATE WF_ITEM_ATTRIBUTE_VALUES WIAV SET WIAV.TEXT_VALUE = REPLACE(WIAV.TEXT_VALUE,:B1,:B2)
    WHERE (WIAV.ITEM_TYPE, WIAV.NAME) = (SELECT WIA.ITEM_TYPE, WIA.NAME
    FROM WF_ITEM_ATTRIBUTES WIA WHERE WIA.TYPE = 'URL'
    AND WIA.ITEM_TYPE = WIAV.ITEM_TYPE
    AND WIA.NAME = WIAV.NAME)
    AND WIAV.TEXT_VALUE IS NOT NULL
    AND INSTR(WIAV.TEXT_VALUE
    , :B1) > 0
    Plan :*
    <pre>
    | Id | Operation | Name | Rows | Bytes | Cost |
    | 0 | UPDATE STATEMENT | | 453 | 14496 | 284K|
    | 1 | UPDATE | WF_ITEM_ATTRIBUTE_VALUES | | | |
    |* 2 | FILTER | | | | |
    |* 3 | TABLE ACCESS FULL | WF_ITEM_ATTRIBUTE_VALUES | 453 | 14496 | 282K|
    |* 4 | TABLE ACCESS BY INDEX ROWID| WF_ITEM_ATTRIBUTES | 1 | 33 | 2 |
    |* 5 | INDEX UNIQUE SCAN | WF_ITEM_ATTRIBUTES_PK | 1 | | 1 |
    Predicate Information (identified by operation id):
    2 - filter(("SYS_ALIAS_2"."ITEM_TYPE","SYS_ALIAS_2"."NAME")= (SELECT /*+ */
    "WIA"."ITEM_TYPE","WIA"."NAME" FROM "APPLSYS"."WF_ITEM_ATTRIBUTES" "WIA" WHERE
    "WIA"."NAME"=:B1 AND "WIA"."ITEM_TYPE"=:B2 AND "WIA"."TYPE"='URL'))
    3 - filter("SYS_ALIAS_2"."TEXT_VALUE" IS NOT NULL AND
    INSTR("SYS_ALIAS_2"."TEXT_VALUE",:Z)>0)
    4 - filter("WIA"."TYPE"='URL')
    5 - access("WIA"."ITEM_TYPE"=:B1 AND "WIA"."NAME"=:B2)
    </pre>
    Index :*
    <pre>
    INDEX_NAME COLUMN_NAME
    APPLSYS WF_ITEM_ATTRIBUTE_VALUES_PK 1 ITEM_TYPE
    2 ITEM_KEY
    3 NAME
    </pre>
    regds
    Rahul
    Edited by: RahulG on Jan 2, 2009 10:47 PM
    Edited by: RahulG on Jan 2, 2009 10:48 PM

    RahulG wrote:
    HI all ,
    Query mentioned below takes around 1 hr to complete . It's being used by the autoconfig kindly me in tunning it ..
    A few notes:
    1. Your query is using bind variables. If you're already on 9i or later (probably 9iR2 according to plan output), this statement will be subject to bind variable peeking and therefore the output of EXPLAIN PLAN is only of limited use, since the actual execution plan might be different and/or might be based on different cardinality estimates based on the actual bind values peeked at hard parse time. You can use the V$SQL_PLAN view to get the actual execution plan(s) if the statement is still cached in the shared pool, from 10g on DBMS_XPLAN.DISPLAY_CURSOR is available for that purpose.
    2. The execution plan posted suggests that only 453 rows will correspond to the filter criteria (but, as mentioned in 1. is based on an unknown bind variable value when using EXPLAIN PLAN), and probably therefore the optimizer didn't unnest the subquery but runs this as recursive FILTER query potentially for each row passing the filter criteria on the driving table WF_ITEM_ATTRIBUTE_VALUES. Depending on the actual number of rows this might be inefficient, and unnesting the subquery and turning it into a join might be more appropriate. This might accomplished e.g. by providing more representative statistics to the optimizer (are the statistics up-to-date?).
    Although you can't change the SQL you could try this manually by using the UNNEST hint to see if it makes any difference in the execution plan (and run time):
    WHERE (WIAV.ITEM_TYPE, WIAV.NAME) = (SELECT /*+ UNNEST */ WIA.ITEM_TYPE, WIA.NAME
    ...3. The composite index WF_ITEM_ATTRIBUTE_VALUES_PK can only be used on the first column ITEM_TYPE for effective index access, the NAME column would have to be used as filter on all index leaf blocks that would be found using a range scan on ITEM_TYPE. This might be quite inefficient, and/or might lead to a lot of rows/blocks that need to be visited in the table using this index access path.
    4. You could try to trace the execution by enabling extended SQL trace, e.g. using the (undocumented) DBMS_SUPPORT package in 9i. Running the "tkprof" utility on the generated trace file tells you the actual row source cardinalities (which can then be compared to the estimates of the optimizer) and - if the "waits" have been enabled - what your statement has waited for most.
    Regards,
    Randolf
    Oracle related stuff blog:
    http://oracle-randolf.blogspot.com/
    SQLTools++ for Oracle (Open source Oracle GUI for Windows):
    http://www.sqltools-plusplus.org:7676/
    http://sourceforge.net/projects/sqlt-pp/

  • Change the input parameter in Check Status screen

    Hi,
    I have a requirment to change the input parameter option in the check status screen. Currently when we search the SC using the date and staus from the extended search it picks the SC created date and displays the SC, my requirement is to make the date as the approved date insted of SC created date with the status as aprpoved.
    Please suggest if this is possible with the help of any Badi.
    Regards
    GGL

    I managed to find the solution myself. If anyone is interested, just follow those steps here:
    http://apple.stackexchange.com/questions/44913/make-a-custom-keyboard-layout-the -system-default-even-for-the-login-screen
    (terminal skills required tho)

  • How to set UTL_FILE parameter in the INIT.ORA file

    Dear all,
    How can i set UTL_FILE parameter in the INIT.ORA file.
    Also let me know how to create a directory over there.I am new to this area.
    Where exactly i can locate these details and create directory.
    Regards,
    Bala.

    post this in database forum

  • Trying to find the init.ora parameter..

    Hi,
    I am trying to locate the init.ora parameter under the Oracle Database. I was under the impression, that it would be present in the same location as tnsnames.ora, but Ican see that it's not.
    Can someone please advise the right location to look for the init.ora parameter file?
    Thank You.

    It is a good practice to let us know the OS and DB version from the start of the thread, so a more accurate answer can be issued sooner.
    From the above post I can see you are on a 10g Windows platform. Since 9i inti.ora is not used as the first option, but the spfile. 10g is the same thing, it can work with a pfile, but must probably you have an spfile.
    Default location for a 10g spfile in a windows platform is here:
    %ORACLE_HOME%\database\spfile%ORACLE_SID%.ora
    In case you are working with a pfile, path is quite the same:
    %ORACLE_HOME%\database\init%ORACLE_SID%.ora
    You can find the path/name of your spfile from an instance parameter inside a SYSDBA session:
    SQL> show parameter spfile
    HR Madrid

  • Regarding UTL_FILE parameter in the INIT.ORA file

    Dear all,
    How can i set UTL_FILE parameter in the INIT.ORA file.
    Also let me know how to create a directory over there.I am new to this area.
    Where exactly i can locate these details and create directory.
    Regards,
    Bala.

    Dear all,
    How can i set UTL_FILE parameter in the INIT.ORA
    file.
    Also let me know how to create a directory over
    there.I am new to this area.
    Where exactly i can locate these details and create
    directory.
    Regards,
    Bala.Taken note of yingkuan's comments about directory objects - which don't need a utl_file_dir entry - if you really still need to know (on e-business suite or some other product that needs them) then UTL_FILE_DIR is an initialisation parameter which takes a comma separated list of directories on the database server and to which the oracle software owner (usually oracle on *nix systems and system on windows) has read/write access. To set it therefore you'll need to identify or create your directory and then either
    a) add the line UTL_FILE_DIR=/path/to/dir1, /path/to/dir2
    to your init.ora if you are using one or use
    b) ALTER SYSTEM SET UTL_FILE_DIR=/path/to/dir1, /path/to/dir2 SCOPE=SPFILE;
    if you are using a server parameter file.
    You should be able to find this and more information in the documentation for your version of Oracle.
    Niall Litchfield
    http://www.orawin.info/

  • Script for Always Calling the Direct Selection Tool?

    Ok, so first forgive me if this isn't necessarily a scripting question, but I'm hoping it is...
    Would it be possible to write a script that, while using the pen tool, would force Illustrator to always switch to the Direct Selection (white) arrow when holding down Ctrl (Cmd)? In my workflow, I never have use for accessing the regular Selection Tool while I'm using the pen tool (or very rarely). In essence, I would just love if Illy's pen tool behaved the same as InDesign's and Photoshop's! Anyone know if something like this is scriptable?
    Thanks in advance!
    Andy

    Google "illustrator pen tool direct selection" , for example the following...
    http://vector.tutsplus.com/tutorials/tools-tips/illustrators-pen-tool-the-comprehensive-gu ide/
    Select the Direct Selection tool before selecting the Pen tool. Press and hold Command (Ctrl)
    to give you access to the last tool selected (in this case the Direct Selection tool) for editing
    of paths and handles without deselecting the path.
    Is that what you mean?

  • A login webpage gives the message "This script requires that jquery.js be loaded first." then will not show the user ID and password login boxes. How can this be corrected?

    A login webpage gives the message "This script requires that jquery.js be loaded first." then will not show the user ID and password login boxes. How can this be corrected?

    That message is listed in two scripts on the bank's site. One function that can display the message is named PhotoRotator and the other is named PromoRotator. However, I can't seem to trigger the error myself.
    If you have any add-ons that alter the page, such as ad blockers, try creating an exception for these sites and see whether that helps:
    www.northrim.com<br>
    www.northrimbankonline.com
    You also could try this logon page: https://www.northrimbankonline.com/onlineserv/HB/Signon.cgi
    (''Obviously you should be cautious about links offered on public forums to ensure you are not being phished! Check them out carefully before entering your username and password.'')

  • If someone has used Xcelsius 2008, and suddenly there is requirement to design the dashboard in any other BO tool, then will he/she be able to design the dashboards as comfortably as in Xcelsius.

    If someone has used Xcelsius 2008, and suddenly there is requirement to design the dashboard in any other BO tool, then will he/she be able to design the dashboards as comfortably as in Xcelsius.

    Hi,
    Each and every tool has its own flexibility to run. Coming to your question, the use of dashboards is to view the data by more interactive other tool cannot comprise it. when you say, if i want to develop the same sort  of requirement in other BO tool, then you need to check with positive and negative of the tool to accommodate your logic.
    --SumanT

  • Where is the tool script on photoshop ?

    Where is the tool "script" in photoshop. I had this in an old version.

    I am not familiar with a Photoshop Script named "tool" so I assume this is not part of the default installation.
    So you probably need to copy it into the appropriate Scripts-folder.

  • How to make one OR the other parameter required? (but not both)

    Hi all,
    I've got a report showing expenditures by budget code. There's a multi value parameter allowing the user to choose any codes they want, but this can be tedious, since there's a couple hundred of them.
    I would like to offer as an alternative a couple of "pre-packaged budget code groups" on another parameter. How can I set it up so that the user must choose EITHER something out of the full multi value set, OR one of the 2 or 3 pre-packaged options?
    thanks for any tips,
    sff

    Hi sherifffruitfly2,
    In Reporting Services, we can make a parameter optional by setting default values for the parameter. Based on your scenario, you can set one parameter to have no default values and set default values for the other parameter.
    As Josh posted, another approach is to add "All" value to each parameter and set "All" as the default value for each parameter. Then, we can set the visibility of the report to hide when both of the parameter contains "All". That way, the user can get the
    report to run by changing the values of only one parameter. For more information about add a "All" value to a parameter, please see the following thread with a similar topic:
    http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/7773eb1f-445e-461c-a315-e2e3d1161ae7/
    Hope this helps.
    Regards,
    Mike Yin
    TechNet Subscriber Support
    If you are TechNet Subscription user and have any feedback on our support quality, please send your feedback
    here.
    Mike Yin
    TechNet Community Support

  • Apple Script to Sort through the Address Book

    Dear All,
    I am quite new to Apple and just a learner on Apple-scripts. Its been quite a task to learn.. I would require some help on a few things..
    The script will eventually use numbers to send email and get the user inputs and any yet to reach there..
    After going through lots of scripts to sort through the address book and make a clean address book, i found they are quite slow in processing takes about 20~30 Minutes to get through 2000 Contacts..
    Hence after reading posting of Mr. Koenig & Mr. Hiroto and specifically on deep copy. I have written the following code which does the following on 2000 records within 6~8Mins.
    The Script work its way through all the contact is the address List.. and creates Groups
    1. Duplicate Email Id's — List of Contacts with same email ID's including Contacts where the email Id is entered twice.. (Strange.. Address Book Issue, copy of the email Id under work & home)
    2. Duplicate Phone — List of Contacts with same Phone Numbers including Contacts where the Phone Nos is entered twice.
    3. Duplicate Name — List of Contacts with Same Names
    4. Duplicate No Name — List of Contacts without the First Name and Last Name
    it also sort the Contacts under the following Group which you can edit later with all the information's..
    1. Only Email Ids — List of Contacts with Email ID and No Phone Numbers
    2. Only Phone — List of Contacts with Phone Numbers and No Email Id's
    3. No Email or Phone — List of Contacts with No Email Id's and No Phone numbers (some half completed contacts )
    My Question to the forum is why is the following code still taking too much time..
    set onlyDupEList to every person of group theGroupEmail
    repeat with j from 1 to count of Dup_email
    set tempdata to item j of Dup_email
    if onlyDupEList does not contain {tempdata} then add tempdata to group theGroupEmail
    end repeat
    save application "Address Book"
    and the scripts slows down when the items in the list is quite large (over 800 or so )..
    Any help is appreciated and thanks in advance..
    -- the code ---
    global MsgTitle
    on run
    set MsgTitle to "Search for Duplicates in Address Book Contacts"
    display dialog ¬
    "This Script takes a while to finish" & return & "maybe 10 min or More..." & return & "Depending on the Address Book Contacts." & return & return & "Hence Allow it to run for the while" with title MsgTitle ¬
    with icon 1 ¬
    buttons {"Continue"} ¬
    giving up after 5
    set question to display dialog "Select the Duplicate Search Parameter " with icon 1 with title MsgTitle ¬
    buttons {"Contact Name", "Contacts on Phone & Email Id's", "Quit"} default button 3
    set rtnValue to button returned of question
    if rtnValue is "Quit" then
    -- tell application "Address Book" to quit
    tell me to quit
    end if
    if rtnValue is "Contact Name" then
    -- tell application "Address Book" to quit
    GetDup_byName("Duplicate Name")
    end if
    if rtnValue is "Contacts on Phone & Email Id's" then --Contacts on Phone & Email Id's
    -- tell application "Address Book" to quit
    Get_dup()
    end if
    end run
    --- Search on Name Field ---
    on GetDup_byName(theGroupName)
    set question to display dialog "Do you want to search for duplicates based on Names? " with icon 0 with title MsgTitle ¬
    buttons {"Continue", "Quit"} default button 1
    set rtnValue to button returned of question
    if rtnValue is "Quit" then
    -- tell application "Address Book" to quit
    tell me to quit
    end if
    tell application "Address Book"
    activate
    set biglist to {}
    set NoNameList to {}
    set theGroupNoName to "Duplicates No Names"
    set theGroup to theGroupName
    -- if not (exists (group "Dupilicate Entries")) then
    if not (exists (group theGroup)) then
    make new group with properties {name:theGroup}
    save
    end if
    if not (exists (group theGroupNoName)) then
    make new group with properties {name:theGroupNoName}
    save
    end if
    set the_names to name of people
    repeat with i from 1 to number of items in the_names
    set theName to item i of the_names
    -- return theName
    if theName is not in biglist then
    copy theName to end of biglist
    else
    set counter to (people whose name is theName)
    if (count of counter) > 1 then
    repeat with i from 1 to number of items in counter
    set this_item to item i of counter
    -- display dialog this_item
    add this_item to group theGroup
    end repeat
    -- return counter as string
    end if
    end if
    -- captures the Contacts without Name ---
    if theName contains "@" then
    -- display dialog theName
    set counterList to (people whose name is theName)
    repeat with i from 1 to number of items in counterList
    set this_item to item i of counterList
    -- display dialog this_item
    add this_item to group theGroupNoName
    end repeat
    end if
    -- save application "Address Book"
    end repeat
    save application "Address Book"
    set peopleCount to (count every person)
    -- set peopleCount to 50 -- only for testing --
    repeat with i from 1 to peopleCount
    set first_name to first name of person i as string
    set Last_Name to last name of person i as string
    if first_name is equal to "missing value" and Last_Name is equal to "missing value" then
    -- display dialog first_name & " : " & Last_Name
    set end of NoNameList to (id of person i)
    end if
    end repeat
    repeat with j from 1 to the count of NoNameList
    set tempdata to item j of NoNameList
    -- set testdata to person id tempdata
    -- if (name of groups of testdata does not contain theGroupNoEmail) then
    add tempdata to group theGroupNoName
    -- end if
    end repeat
    save application "Address Book"*)
    display dialog ¬
    "This Script Finished Processing Address Book Contacts the Duplicates are in the group" with title MsgTitle ¬
    with icon 1 ¬
    buttons {"Continue"} ¬
    giving up after 5
    end tell
    end GetDup_byName
    on Get_dup()
    set question to display dialog "Do you want to search for duplicates based on Names? " with icon 0 with title MsgTitle ¬
    buttons {"Continue", "Quit"} default button 1
    set rtnValue to button returned of question
    if rtnValue is "Quit" then
    -- tell application "Address Book" to quit
    tell me to quit
    end if
    tell application "Address Book"
    activate
    set theGroupEmail to "Duplicate Email Id's"
    set theGroupPhone to "Duplicate Phone"
    set theGroupNoEmail to "Only Phone Numbers"
    set thegroupNoPhone to "Only Email Id's"
    set theGroupNoData to "No Email or Phone"
    -- set theGroup to theGroupName
    if not (exists (group theGroupEmail)) then
    make new group with properties {name:theGroupEmail}
    save "Address Book"
    end if
    if not (exists (group theGroupPhone)) then
    make new group with properties {name:theGroupPhone}
    save "Address Book"
    end if
    if not (exists (group theGroupNoEmail)) then
    make new group with properties {name:theGroupNoEmail}
    save "Address Book"
    end if
    if not (exists (group thegroupNoPhone)) then
    make new group with properties {name:thegroupNoPhone}
    save "Address Book"
    end if
    if not (exists (group theGroupNoData)) then
    make new group with properties {name:theGroupNoData}
    save "Address Book"
    end if
    set ListofPeople to people --the_ID
    set ListofEmailID to value of emails of people --the_emails
    -- return ListofEmailID
    set ListofPhones to value of phone of people -- the_phones
    -- return ListofPhones
    set biglist to {}
    set ListEmail_Uniq to {}
    set ListEmail_Dup to {}
    set No_PhoneList to {}
    set No_EmailList to {}
    set No_dataList to {}
    set FlagEmail to false
    set FlagPhone to false
    -- repeat with i from 1 to number of items in the_emails
    repeat with i from 1 to count of ListofEmailID
    set thePersonID to item i of ListofPeople
    set theEmails to item i of ListofEmailID
    if theEmails is equal to {} then
    set end of No_EmailList to thePersonID
    else
    -- set FlagEmail to true
    repeat with j from 1 to count of theEmails
    set tmpdata to item j of theEmails
    -- return tmpdata
    if tmpdata is not in biglist then
    set end of biglist to tmpdata
    set end of ListEmail_Uniq to {tmpdata} & {thePersonID}
    else
    set end of ListEmail_Dup to {tmpdata} & {thePersonID}
    end if
    end repeat
    end if
    end repeat
    -- return ListEmail_Uniq
    -- return ListEmail_Dup
    -- save application "Address Book"
    set biglist to {}
    set ListPhone_Uniq to {}
    set ListPhone_Dup to {}
    -- repeat with i from 1 to number of items in the_emails
    repeat with i from 1 to count of ListofPhones
    set thePersonID to item i of ListofPeople
    set thePhones to item i of ListofPhones
    if thePhones is equal to {} then
    set end of No_PhoneList to thePersonID
    else
    -- set FlagPhone to true
    repeat with j from 1 to count of thePhones
    set tmpdata to item j of thePhones
    -- return tmpdata
    if tmpdata is not in biglist then
    set end of biglist to tmpdata
    set end of ListPhone_Uniq to {tmpdata} & {thePersonID}
    else
    set end of ListPhone_Dup to {tmpdata} & {thePersonID}
    end if
    end repeat
    end if
    end repeat
    -- return ListPhone_Uniq
    -- return ListPhone_Dup
    set the Dup_email to {}
    -- Find the Duplicates from the sorted list --
    repeat with i from 1 to the count of ListEmail_Dup
    set tempdata to item i of ListEmail_Dup
    set dataEmailDup to item 1 of tempdata
    set dataPersonDup to item 2 of tempdata
    repeat with j from 1 to the count of ListEmail_Uniq
    set tempdata to item j of ListEmail_Uniq
    set dataEmailUniq to item 1 of tempdata
    set dataPersonUniq to item 2 of tempdata
    -- display dialog mainEmail1 & "=" & mainEmail2 & " " & mainID1 & "=" & mainID2
    if dataEmailDup is equal to dataEmailUniq then
    set end of Dup_email to dataPersonDup -- & "," & dataPersonUniq
    set end of Dup_email to dataPersonUniq
    end if
    (* -- the code takes lot more time if add to group was used --
    if dataEmailDup is equal to dataEmailUniq then
    set testdata to person id dataPersonDup
    add testdata to group theGroup
    set testdata to person id dataPersonUniq
    add testdata to group theGroup
    end if
    end repeat
    end repeat
    -- return Dup_email
    set the Dup_Phone to {}
    -- Find the Duplicates from the sorted list --
    repeat with i from 1 to the count of ListPhone_Dup
    set tempdata to item i of ListPhone_Dup
    set dataPhoneDup to item 1 of tempdata
    set dataPersonDup to item 2 of tempdata
    repeat with j from 1 to the count of ListPhone_Uniq
    set tempdata to item j of ListPhone_Uniq
    set dataPhoneUniq to item 1 of tempdata
    set dataPersonUniq to item 2 of tempdata
    -- display dialog mainEmail1 & "=" & mainEmail2 & " " & mainID1 & "=" & mainID2
    if dataPhoneDup is equal to dataPhoneUniq then
    set end of Dup_Phone to dataPersonDup -- & "," & dataPersonUniq
    set end of Dup_Phone to dataPersonUniq
    end if
    (*if dataPhoneDup is equal to dataPhoneUniq then
    set testdata to person id dataPersonDup
    add testdata to group theGroup
    set testdata to person id dataPersonUniq
    add testdata to group theGroup
    -- save
    end if*)
    end repeat
    end repeat
    -- return Dup_Phone
    set onlyDupEList to every person of group theGroupEmail
    repeat with j from 1 to count of Dup_email
    set tempdata to item j of Dup_email
    if onlyDupEList does not contain {tempdata} then add tempdata to group theGroupEmail
    end repeat
    save application "Address Book"
    set onlyDupPList to every person of group theGroupPhone
    repeat with j from 1 to count of Dup_Phone
    set tempdata to item j of Dup_Phone
    if onlyDupPList does not contain {tempdata} then add tempdata to group theGroupPhone
    end repeat
    save application "Address Book"
    set onlyPhoneList to every person of group theGroupNoEmail
    repeat with j from 1 to the count of No_EmailList
    set tempdata1 to item j of No_EmailList
    if No_PhoneList does not contain {tempdata1} then
    if onlyPhoneList does not contain {tempdata1} then add tempdata1 to group theGroupNoEmail
    end if
    (*set flagE to false
    repeat with i from 1 to the count of No_PhoneList
    set tempdata2 to item i of No_PhoneList
    if tempdata1 is equal to tempdata2 then
    set flagE to true
    exit repeat
    end if
    end repeat
    if flagE is false then add tempdata1 to group theGroupNoEmail*)
    end repeat
    save application "Address Book"
    set onlyEmailList to every person of group thegroupNoPhone
    repeat with j from 1 to the count of No_PhoneList
    set tempdata1 to item j of No_PhoneList
    if No_EmailList does not contain {tempdata1} then
    if onlyEmailList does not contain {tempdata1} then add tempdata1 to group thegroupNoPhone
    end if
    end repeat
    save application "Address Book"
    set onlyList to every person of group theGroupNoData
    repeat with i from 1 to count of ListofPeople
    if (item i of ListofEmailID is equal to {}) and (item i of ListofPhones is equal to {}) then
    set tempdata to item i of ListofPeople
    if onlyList does not contain {tempdata} then add tempdata to group theGroupNoData
    end if
    end repeat
    save application "Address Book"
    display dialog ¬
    "This Script Finished Processing Address Book Contacts the Duplicates are in the group" with title MsgTitle ¬
    with icon 1 ¬
    buttons {"Continue"} ¬
    giving up after 5
    end tell
    end Get_dup
    on quit
    --set MsgTitle to "Change Email ID's Domain Name"
    save application "Address Book"
    display dialog "Contact Srikanth Kamath at [email protected] for any Help" with title MsgTitle with icon 1 buttons "OK"
    continue quit
    end quit

    Hello Srikanth Kamath,
    I'm not sure you're still following this thread, but anyway here's sample code I said I'd post later.
    --SCRIPT2
    main()
    on main()
    script o
    -- input data
    property xx : {1, 2, 3, 4, 5} -- list of parents
    property yy : {{"g", "h"}, {"a", "b"}, {"b", "e", "f"}, {"e"}, {"c", "d"}} -- list of children per parent
    -- work list
    property pp : {} -- list of children tagged by parent; i.e, lits of {child, parent}
    property qq : {}
    property rr : {}
    -- (1) build list of children tagged by parent
    repeat with i from 1 to count my xx
    set x to my xx's item i
    set y to my yy's item i
    repeat with p in y
    set end of my pp to {p's contents, x}
    end repeat
    end repeat
    --return pp -- {{"g", 1}, {"h", 1}, {"a", 2}, {"b", 2}, {"b", 3}, {"e", 3}, {"f", 3}, {"e", 4}, {"c", 5}, {"d", 5}}
    -- (2) sort tagged list by child as key
    msort(my by_key1, my pp)
    --return pp -- {{"a", 2}, {"b", 2}, {"b", 3}, {"c", 5}, {"d", 5}, {"e", 3}, {"e", 4}, {"f", 3}, {"g", 1}, {"h", 1}}
    -- (3) retrieve parents with duplicate child
    (* retrieve list of {child, parent} for duplicate child *)
    set my qq to uniq(my eq_key1, my pp, {_dup:true})
    --return qq -- {{"b", 2}, {"b", 3}, {"e", 3}, {"e", 4}}
    (* retrieve list of parent *)
    repeat with q in my qq
    set r to q's item 2
    if r is not in my rr then set end of my rr to r
    end repeat
    return rr -- {2, 3, 4}
    end script
    tell o to run
    end main
    on by_key1(x, y)
    msort's comparator for list of lists
    key = item 1, ascending
    returns true iff x and y are out of order
    return x's item 1 > y's item 1
    end by_key1
    on eq_key1(x, y)
    uniq's comparator for list of lists
    key = item 1
    returns true iff x and y are considered equal
    return x's item 1 = y's item 1
    end eq_key1
    on msort(cmp_, aa) -- v1.2f2
    Basic recursive merge sort handler having list sorted in place.
    handler cmp_ : comparator
    * cmp_(x, y) must return true iff list element x and y are out of order.
    list aa : list to be sorted in place
    script o
    property parent : {} -- limit closure to minimum
    property xx : aa -- to be sorted in place
    property xxl : count my xx
    property yy : {}
    property cmp : cmp_
    on merge(p, q, r)
    property xx: source list
    integer p, q, r : absolute indices to specify range to be merged such that
    xx's items p thru r is the target range,
    xx's items p thru (q-1) is the first sublist,
    xx's items q thru r is the second sublist.
    (p < q <= r)
    local i, j, k, xp, xr, yi, yj, ix, jx
    if r - p = 1 then
    set xp to my xx's item p
    set xr to my xx's item r
    if my cmp(xp, xr) then
    set my xx's item p to xr
    set my xx's item r to xp
    end if
    return -- exit
    else
    if p < q - 1 then merge(p, (p + q) div 2, q - 1)
    merge(q, (q + r + 1) div 2, r)
    end if
    At this point, sublits xx[p, q-1] and xx[q, r] have been already sorted (p < q <= r)
    if my cmp(my xx's item (q - 1), my xx's item q) then
    else -- xx[p, q-1] & xx[q, r] are already sorted
    return
    end if
    set yy to my xx's items p thru r -- working copy for comparison
    set ix to q - p
    set jx to r - p + 1
    set i to 1
    set j to q - p + 1
    set k to p
    set yi to my yy's item i
    set yj to my yy's item j
    repeat
    if my cmp(yi, yj) then
    set my xx's item k to yj
    set j to j + 1
    set k to k + 1
    if j > jx then
    set my xx's item k to yi
    set i to i + 1
    set k to k + 1
    repeat until k > r
    set my xx's item k to my yy's item i
    set i to i + 1
    set k to k + 1
    end repeat
    return
    end if
    set yj to my yy's item j
    else
    set my xx's item k to yi
    set i to i + 1
    set k to k + 1
    if i > ix then
    set my xx's item k to yj
    set j to j + 1
    set k to k + 1
    repeat until k > r
    set my xx's item k to my yy's item j
    set j to j + 1
    set k to k + 1
    end repeat
    return
    end if
    set yi to my yy's item i
    end if
    end repeat
    end merge
    on cmp(x, y)
    (* primary comparator *)
    return x > y
    end cmp
    local d, i, j
    if xxl ≤ 1 then return
    if cmp_ = {} then set my cmp to cmp -- comparator fallback
    my merge(1, (xxl + 1) div 2, xxl)
    end script
    tell o to run
    end msort
    on uniq(eq_, aa, {dup:dup}) -- v0.21
    handler eq_ : comparator eq_(x, y) that returns true iff x and y are considered equal
    list aa : pre-sorted list
    (precisely, a list organized such that any duplicate items are adjacent to each other)
    boolean _dup : option whether return unique items or duplicate items
    return duplicate if true, unique otherwise.
    script o
    property parent : {} -- limit closure to minimum
    property xx : aa
    property yy : {}
    property eq : eq_
    on eq(x, y)
    (* primitive comparator *)
    x = y
    end eq
    if eq_ = {} then set my eq to my eq -- comparator fallback
    local t, x, _on
    if (count my xx) < 2 then return my xx's contents
    if _dup then
    set _on to false
    set t to my xx's item 1
    repeat with i from 2 to count my xx
    set x to my xx's item i
    if eq(x, t) then
    set end of my yy to t
    set _on to true
    else if _on then
    set end of my yy to t
    set _on to false
    end if
    set t to x
    end repeat
    if _on then set end of my yy to x
    return my yy's contents -- return duplicate elements
    else
    set t to my xx's item 1
    set end of my yy to t
    repeat with i from 2 to count my xx
    set x to my xx's item i
    if eq(x, t) then
    else
    set end of my yy to x
    set t to x
    end if
    end repeat
    return my yy's contents -- return uinque elements
    end if
    end script
    tell o to run
    end uniq
    --END OF SCRIPT2
    In order to apply it to your current Address Book problem, replace the main() handler with something like the following one.
    --SCRIPT2a (part)
    on main()
    script o
    -- input data
    property xx : {} -- list of parent; given later
    property yy : {} -- list of children per parent; given later
    -- work list
    property pp : {} -- list of children tagged by parent; i.e, lits of {child, parent}
    property qq : {}
    property rr : {}
    -- (0) get input data from AB
    tell application "Address Book"
    tell people
    set xx to its id
    set yy to its every email's value
    end tell
    end tell
    -- (1) build list of children tagged by parent *)
    (* omitted (same as the previous) *)
    -- (2) sort tagged list by child as key
    (* omitted (same as the previous) *)
    -- (3) retrieve parents with duplicate child
    (* omitted (same as the previous) *)
    -- (4) group the retrieved people in AB
    tell application "Address Book"
    repeat with r in my rr
    add person id r to group "duplicate email"
    end repeat
    end tell
    end script
    tell o to run
    end main
    --END OF SCRIPT2a
    Good luck,
    Hiroto
    Message was edited by: Hiroto

  • How to add new Controlfile to the CONTROL_FILES-Parameter

    Hi,
    I'm doing exercise 14 in the Admintsrators Workshop 1. The job is to create a new controlfile by copy an existing and rename it in CONTROL04.CTL. Now the CONTROL_FILES-parameter has to be edited. The script says I hve to shut down the instance and start it up in the nomount-mode - I did it. But I'm not able to add a new path to the parameter. Maybe I need some glasses? Thanks for help.
    Ciao
    Torsten

    You have to edit the parameter file (init<SID>.ora). If you are using SPFILE, then create a pfile. Shutdown DB. Manually Copy a control file to new location. edit the pfile and append the new path/file to CONTROL_FILES parameter, startup the database using the pfile option. Once started, you can update the SPFILE with pfile if you are using the SPFILE.
    Christopher Soza
    Oracle BI DBA
    Orix Consultancy Services Ltd
    http://sozaman.blogspot.com

  • How to realize the init-update command in APDU?

    I want to communicate with the card without JCOP IDE but my own program. So I face a problem, there is no APDU for set-key, So I don't know how to change the init-update and ext-auth command to APDU. Does anyone have some experience on that. Please give me some suggestion. Thank you in advance!

    set-key is not a apdu command. In JCOP tools it is just a script command to realize the IDE what keys are going to use in GP authentication. Use the keys to generate cryptograms which is needed in Init-Update and Ex-Auth.
    Go to the following thread:
    http://forum.java.sun.com/thread.jsp?forum=23&thread=395983

  • Warning about the parallel_max_servers parameter in ewa reports

    Hi gurus,
    We produce ewa reports using our solution manager system. The health and performance of the systems are evaluated using these reports.
    For all our sap systems, although the database parameter settings are configured correctly according to the oss note 830576, in the section 9.2, it gives warning for the parameter parallel_max_servers. We are almost sure that the value of the parameter parallel_max_servers is also set correctly. Whatever we did, we couldn't set it green.
    Is there a way to turn it green, or as the sentence says in the report "If it is configured correctly, then ignore the yellow rating for this parameter." means that there is no way, although  the parameter is set correctly, it will stay in yellow?
    Best Regards,
    Tolga

    Hi,
    The optimal value for PARALLEL_MAX_SERVERS depends on the CPU cores in the database server available for database ( total CPU cores on database  server minus CPU requirements of other applications including SAP central instance). As the CPU requirements for all applications other
    than database cannot be determined automatically by the EarlyWatch Alert  tool, it doesnt have a reference value to compare the current setting and comment on it. The optimal setting has to be determined manually. If  the PARALLEL_MAX_SERVERS is set correctly then please ignore the
    alert generated in the EarlyWatch Alert report
    Just because the rating is yellow in the report doesnt mean that the setting is incorrect. The report just tries to alert you that the optimal setting for this parameter could not be determined and asks
    you to ensure it is set optimally.
    Cheers!

Maybe you are looking for