Faces Performance vs Keywording names

I just purchased Aperture 3.1.2 and I've just started importing my 7000+ images.  I'm using this to organize and edit my family photos. I've heard about faces and was initially pretty excited about spending the ?? hours adding faces to my images.  However, after reading about performance issues I'm now wondering if it's worth my time and whether I should just keyword the names rather than using faces.  Is it realistic to assume Apple can fix this performance bottleneck?
Opinions...comments??

I love faces!
I have a library with around 100k images and yes the initial scan took a while, now it is easy to find people. I have my library sorted by companies that I shoot for and am able to click on the top level folder for that company and find people easily. No I have not gone through all the images and tagged them, I do not have names for half the people. However key people in the organisation I have done a number of images of them and then as required have the system find more that might be them, works really well for me. Note I do have a fairly high spec'd machine. An example, one client there are some 20k images, I needed to find as many shots of a director who was retiring, to manually sort through all these images would take ages, the faces feature found all the shots that might be her and cut the time down for me dramatically.
Tony

Similar Messages

  • Is there a way to get Aperture to write changes made in Aperture itself (i.e. keywords, name changes, adjustments, etc) to ITPC automatically?

    I have started creating a library in Aperture but can not see how to automatically link changes to keywords, name changes, adjustments, etc to the original image.  Is this possible?  Tess

    The general workflow with Aperture is:
    - import files
    - make adjustments; add metadata
    - make new image-format files that include the adjustments and metadata changes (this is what "Export" does).
    You can, as Léonie instructs, write (most) of the metadata changes back to your Originals (these files are otherwise never changed by Aperture).  Just be sure that your workflow benefits from it.
    More specifically, in Aperture the Original (the file you import) is _always_ linked to the Version (for the time being, think of this as the images you see in Aperture, and keep in mind you can have as many Versions of any Original as you need), and any files you create by exporting blend the Original and the Version and produce an image-format file.
    Because the Version and the Original are _always_ linked, there is usually (but not always ) no need to write the metadata held by the Version back over the metadata contained in the Original.
    If you are new to Aperture, this very brief guide I wrote may help you avoid some common peregrinations.

  • ADF Faces performance

    Hi All,
    We need to do our project in ADF faces as UI technology. So we want to know the exact performance measures for that. There was some information that ADF faces is a bit slow as comparision to other JSF implementation like MyFaces.
    So can anyone please gives some information or reference for ADF Faces performance with respect to Myfaces or any JSF implemetation ?
    Thanks
    Suhas

    Suhas,
    I am not aware of any performance measurement that compares MyFaces with ADF Faces, especially because ADf Faces is a UI component set only that by default uses the JSF RI engine while MyFaces also contains its own implementation of RI.
    ADF Faces runs on top of any JSF compliant implementation and on MyFaces as well. This means that if the performance of ADF Faces with Sun RFI isn't sufficient, you just swap it.
    There was some information that ADF faces is a bit slow as comparision to other JSF implementation like MyFaces
    Assuming you didn't make this one up, can you point me to the source of information you quote here ?
    Frank

  • Faces Performance vrs Struts

    In evaluating JSF's, I put together a simple customer maintenance application of about 10 screens, first using Struts and then again using JSF's, matching the UI exactly. To measure relative performance between these two technologies, I isolated 3 relative static pages from each and ran individual JMeter benchmarks against them (just cycling between these 3 pages over and over). The struts implementation is approximately 5 times faster (measured in pages/sec) over faces. My question is this the same observation most have seen so far (faces vrs struts)? I understand faces is new and will continue to improve. I am using the lastest snap of faces 1_1_01. I welcome any comments.

    This is a slow moving thread, but the issue stills seems to be hanging around. I got similar results current technology.
    I grabbed the attachments from the original performance bug https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=3 and ran some JMeter tests against the "JSP only" and the JSF versions.
    The pages are really simple, the JSP version outputs a page which is visually identical to the JSF page. The table in question had 10 columns and 50 - 200 rows. Not a huge amount of data. I used MyFaces 1.1.3 as the JSF implementation and ran the test in JBoss 4.0.4 GA running on JDK 1.4.2.
    Here's the results:
                   Table Rows   Average [ms]  Median [ms]   Hits / Min   Samples
    JSF Testcase    50           36            30            1300         5007
    JSP Testcase    50           14            10            4030         5001
    JSF Testcase    100          56            60            1050         5001
    JSP Testcase    100          21            20            2700         5001
    JSF Testcase    200          100           100           590          5001
    JSP Testcase    200          26            30            2170         5001 This data confirms the discussion original JSF bug. The JSF version started out nearly three times slower than the JSP page. The relative performance of the JSF version degraded to nearly four times slower as table rows were added.
    So if you are thinking about adopting JSF you should be aware of the performance hit and make sure that you can architect around the problem or get the performance benchmarks adjusted. Perceived performance is important in real life projects so it's more than a theoretical problem.
    I'd also like to know if anybody has ideas or code samples that make JSF perform better?

  • No faces tag support for Flickr (aka faces don't = keyword)

    Though iPhoto keywords have been always passed along fine to Flickr (using FlickrExport plugin in the past) the Faces info is not passed along as Flickr tags (keywords, however, are passed along as tags). What good does this do me once I've gone through all the facial recognition steps and want to share this insight with my Flickr following? Am I missing something?

    Terence Devlin wrote:
    I wouldn’t think either of these things.
    Why wouldn't you think that? I have to agree w/ Reuben, especially since this is the default behavior for iPhoto 09's built in export to Facebook! It mimics the native FB photo/face tagging verbatim. . .
    Screenshot of a photo I exported (after being facially recognized) from iPhoto '09 after being imported into FB:
    http://i285.photobucket.com/albums/ll78/elvisinvegas/Picture1-1.jpg
    So yes, I think it's bordering on absurd that iPhoto faces don't produce Flickr tags from faces(or at least give us that option) or do the mouse-over-note capability that Reuben was referring to. . .especially since it can and does for Facebook.

  • Multiple Faces for same person/name?

    Hello.
    In iPhoto, I have multiple faces for the same person/name. I think it has to do with something regarding images tagged via Facebook coming back into iPhoto? Sometimes I have images that are part of a Facebook album (sync'd with/via iPhoto) which aren't marked with a face, and then they're tagged in Facebook. These tages make their way back into iPhoto as a Face, but they're not grouped with the Faces of the same person/name as other faces. At the end of the day, when I now try and add a face for this person, I see their name pop up four different times as I start to type their name, their name shows up 4 times (with different results for each one) when I created a smart album based on "Face is", etc. Does anyone know how I fix this?
    Regards,
    Kristin.

    On the cork board, I only have one face showing.
    Everywhere else (in the dropdown when making a smart album, the auto-fill text when naming faces, etc.), there's always the name, four times.
    k.

  • Faces is not remembering names

    I am using Faces in Aperture 3. I converted one of my libraries across. It contains photos of several hundred colleagues often taken in groups. I wanted to name them.
    1 How can I switch off Address Book interference?
    I want the Faces pinboard sorted by Surname. When Aperture recognises the name I am inputting, it replaces what I type with just a First Name!
    Workaround -- I am putting Surname_First.
    2 How can I fix the autoprompt for names?
    Whenever I type in McKenna, it changes the M to a j and gives me a garbage name. Similarly for a few other names. Keyboard is not the issue -- have swapped -- both are apple aluminium.
    Workaround -- finish off name, then go back and edit in the correct few letters.
    3 How do I stop Aperture from forgetting names?
    I have laboriously entered dozens of names and tagged dozens of instances of each in the photos. Then, two different behaviours can occur...
    i) The name inexplicably knocks of the leading Surname and underscore!
    This happens to only a few names but, the behaviour repeats itself after renaming -- but not at once, it may take another half an hour before doing so. One example: Atton_Kevin kept reverting to Kevin.
    ii) Particular Faces disappear. e.g. I set up Bond_Brian and Ahearn_John and Cirino_Caroline -- add to dozens of photos -- move on to other names -- and then, suddenly, they are no longer there and I have to re-enter them and re-confirm all the tags!
    Can anyone help with any of these very annoying issues?
    ta
    ben

    j ben b wrote:
    I want the Faces pinboard sorted by Surname. When Aperture recognises the name I am inputting, it replaces what I type with just a First Name!
    You can change the displayed name (which is used to sort them) in the "Faces" view corkboard by clicking the little 'i' in the bottom-right of the face. It sort of sounds like you're already doing this? But maybe in an odd way...? If you're not familiar with this 'info' window then it might help you to understand the face/address book connection and solve all your probs at once... I hope!
    j ben b wrote:
    2 How can I fix the autoprompt for names?
    Whenever I type in McKenna, it changes the M to a j and gives me a garbage name. Similarly for a few other names. Keyboard is not the issue -- have swapped -- both are apple aluminium.
    Workaround -- finish off name, then go back and edit in the correct few letters.
    This seems to be a bug when the "Full Name" and the "Display Name" don't match (again, in the little info window you get from pressing the 'i' on a face in the cork-board). It matches against Full Names, but types out the text from the display name... remove full names (or change them to match the display names) and it seems to go away.
    j ben b wrote:
    i) The name inexplicably knocks of the leading Surname and underscore!
    This happens to only a few names but, the behaviour repeats itself after renaming -- but not at once, it may take another half an hour before doing so. One example: Atton_Kevin kept reverting to Kevin.
    Not 100% sure but this sounds like you might be selecting the 'address book' entry from your auto-complete list, instead of the 'faces' entry. I've not experienced the behaviours you're talking about in #3 though so I"m not really sure what's going on...

  • Faces vs. Keywords

    Evening all,
    Just wanted to get a consensus...I think the Faces feature in iPhoto '09 is...promising, but doesn't do that good of a job unless the face is head-on.
    Now that I've been playing with it, I find it much easier (and faster as I have a lot of photos left to import) to use keywords for people in the photo vs. clicking each one for missing faces.
    What works for everyone else? Would appreciate your opinions/insight...
    Also, is there a limit to the amount of keywords you can add?
    Thanks,
    Marc
    Message was edited by: LightstormAnimationStudios

    I prefer faces
    TD (who is on Holiday in Italy celebrating San Patrick's day) prefers keywords
    It really is up to you - to me Faces is faster and easier - others disagree
    I use the camera time for when, faces for who, places for where and keywords for what and why giving me Who, What, When, Where and Why for each photo
    There is not limit but practically there is - if you have a bunch you probably want Key Word manager - http://www.bullstorm.se/KeywordManager.php
    LN

  • My ipod shows an unhappy face with a website name!

    Hi. I had my ipod since nov 8(birthday) and right now when I turn it on it shows an unhappy face with a website saying apple/suppot/ipod.. this was odd this was the first time it happened to me. I turn it on and if u listen closely to the ipod u can here start to run and it shuts off in 3 seconds repeatedly. When i charge it it gets really HOT and when i hold the left button and the middle button(4th generation) and I try disk mode, it happens all over again.. can somebody please tell me what to do.. I was thinking of buying a new battery but I don't know if thats the case. i heard about this corrupt 4generation story but i hope it hasn't affected mine yet.. also on the bottom of my screen it says corrupt file and says run chkdisk... so can somebody please give me answers to my problem, i don't really want to spend another 300$ on another ipod!

    hi i can't say i registered it but i don't want to go through the agony of saving 300$ for another ipod so can i go to www.ipodjuice.com and just buy a battery and put it in or do i realy need to get another ipod?

  • How do I rename one wrongly identified photo in Faces? I seem to only be able to merge two stacks of photos to the correct name, but that is not accurate. I only have one photo in a batch under a certain name, that is wrongly identified.

    How do I rename one wrongly identified photo in Faces? I seem to only be able to merge two stacks of photos to the correct name, but that is not accurate. I only have one photo in a batch under a certain name, that is wrongly identified.

    In iPhoto '11: Select the photo in the "Faces" stack, open the "Info" panel, click on the face name in the "faces" brick and then on the name below the face to edit the name.
    Regards
    Léonie

  • When syncing faces: names do not appear and key photo is distorted on iPad

    I'm syncing from Aperture 3.0.3 to an iPad. I select a number of projects to sync, and some faces.
    Most faces appear fine. However, there are a handful of faces with distorted key photos / thumbnails, and no name appears below them. Each key photo contains photos from an individual I selected, and appears in the correct alphabetical order, it just does not have the name.
    With the exception of one face, these photos are of friends, of which I have not selected projects above. So I'm certain this is an issue where the iPad or iTunes has grabbed all photos for that person, and few if any of these photos are in the projects I selected above.
    The other face that is distorted is my newborn daughter! I definitely have several albums selected with her in them.
    Any ideas?

    I had something similar happen, albeit with a few differences. I'm syncing from iPhoto and I discovered that when viewing the list of faces one of the names was missing. All of the photos were there and the group was in the correct alphabetical order, but the name was missing.
    I tried a bunch of things. I removed all photos from the iPad and resynced-- no joy. I renamed the face in iPhoto and resynced-- no joy.
    Here is what did finally work for me, although it is such a kludge I wouldn't be surprised if it didn't work for everyone. First I went to the Photos tab in iTunes switched from 'All photos..' to 'selected..'. Then I unselected all albums, all events, and all faces except for the checkbox next to the name that was "missing" from the iPad's faces label for that person. I allowed it to sync, removing all of the photos except for the faces for that person. To my surprise, it was now properly named on the iPad.
    Then I went back to iTunes, switched back to 'all photos..', synced again, and the face label was still present.

  • CONTEXT index creation - performance!

    Hi,
    I have a table with about 5Million rows. The content that needs to be indexed is of RAW datatype. The average size (length) of this field is about 50 characters (it could be more).
    I am trying to index this column to perform a keyword search. DEtails are furnished below.
    table:
    SQL> desc kwtai
    Name Null? Type
    TSD_HH24 DATE
    COUNTRY_CODE_ALPHA_2 VARCHAR2(2)
    ONETWORK NUMBER(6)
    OADDRESS VARCHAR2(25)
    DNETWORK NUMBER(6)
    DADDRESS VARCHAR2(25)
    MESSAGE_LENGTH NUMBER
    MESSAGE_CONTENT RAW(2000)
    Preferences:-
    begin
    Ctx_Ddl.Create_Preference('mc_storage', 'BASIC_STORAGE');
    ctx_ddl.set_attribute('mc_storage','I_TABLE_CLAUSE',
    'tablespace large_index storage (initial 10M next 10M)');
    ctx_ddl.set_attribute('mc_storage', 'K_TABLE_CLAUSE',
    'tablespace large_index storage (initial 10M next 10M)');
    ctx_ddl.set_attribute('mc_storage', 'R_TABLE_CLAUSE',
    'tablespace large_index storage (initial 1M) lob (data) store as (cache)');
    ctx_ddl.set_attribute('mc_storage', 'N_TABLE_CLAUSE',
    'tablespace large_index storage (initial 1M)');
    ctx_ddl.set_attribute('mc_storage', 'I_INDEX_CLAUSE',
    'tablespace large_index storage (initial 1M) compress 2');
    ctx_ddl.create_preference('mc_lex', 'BASIC_LEXER');
    ctx_ddl.set_attribute('mc_lex', 'skipjoins', '_-"''`~!@#$%^&*()+=|}{[]\:;<>?/.,');
    ctx_ddl.set_attribute('mc_lex', 'INDEX_STEMS','NONE');
    end;
    create index kwtaidx on kwtai (message_content) indextype is ctxsys.context
    parameters (' lexer mc_lex storage mc_storage memory 500M ')
    parallel 16;
    This create index takes about 4 hours to complete on a 8CPU dual core machine.
    This is on Oracle 10g (10.2.0.4)
    The reason i am creating the index as opposed to syncing it is because the data gets loaded into this table only once a day and it gets cleared once my keyword analysis is done.
    Any pointers to speed up the index creation will be really appreciated! Thanks in advance!

    My base table has the text that needs to be indexed stored in the "MESSAGE_CONTENT" column which for now is RAW data type. The data stored in this table are in hex representation.
    Some examples -
    MESSAGE_CONTENT
    616C70686120626574612067616D6D612064656C746120657073696C6F6E207A657461206E69F16F
    616C70686120626574612067616D6D612064656C746120657073696C6F6E207A657461
    616C70686120626574612067616D6D612064656C746120657073696C6F6E207A657461206E69C3B16F
    6865792E2C2C77686174277320676F696E67206F6E2E2E2E7066206368616E67277320697320736F6D652072657374617572616E742E2074686579206172652070736564756F2D636F6F6C
    54686520477265656B20616C7068616265742069732074686520736372697074207468617420686173206265656E
    54686520477265656B20616C7068616265742069732074686520736372697074207468617420686173206265656E20706F73742D64617461
    Now with your suggestion i tried to bypass this. So what i did was added a format column to my base table and updated it to "TEXT". My database is in UTF8.
    Now when i create the index with the following preferences it takes less than a minute.
    begin
    Ctx_Ddl.Create_Preference('kwta_storage', 'BASIC_STORAGE');
    ctx_ddl.set_attribute('kwta_storage','I_TABLE_CLAUSE',
    'tablespace TEXT_INDEX storage (initial 10M next 10M)');
    ctx_ddl.set_attribute('kwta_storage', 'K_TABLE_CLAUSE',
    'tablespace TEXT_INDEX storage (initial 10M next 10M)');
    ctx_ddl.set_attribute('kwta_storage', 'R_TABLE_CLAUSE',
    'tablespace TEXT_INDEX storage (initial 1M) lob (data) store as (cache)');
    ctx_ddl.set_attribute('kwta_storage', 'N_TABLE_CLAUSE',
    'tablespace TEXT_INDEX storage (initial 1M)');
    ctx_ddl.set_attribute('kwta_storage', 'I_INDEX_CLAUSE',
    'tablespace TEXT_INDEX storage (initial 1M) compress 2');
    ctx_ddl.create_preference('mylex', 'BASIC_LEXER');
    ctx_ddl.set_attribute('mylex', 'skipjoins', '_-"''`~!@#$%^&*()+=|}{[]\:;<>?/,');
    ctx_ddl.set_attribute('mylex','punctuations','.?!');
    ctx_ddl.set_attribute('mylex', 'INDEX_STEMS','NONE');
    ctx_ddl.set_attribute('mylex', 'continuation','\-');
    Ctx_Ddl.Create_Stoplist ( 'mystop' );
    Ctx_Ddl.Add_Stopword ( 'mystop', 'is' );
    Ctx_Ddl.Add_Stopword ( 'mystop', 'has' );
    Ctx_Ddl.Add_Stopword ( 'mystop', 'the' );
    Ctx_Ddl.Add_Stopword ( 'mystop', 'that' );
    end;
    create index kwtaidx on kwtai (message_content) indextype is ctxsys.context
    parameters ('filter ctxsys.auto_filter format column fmt stoplist mystop lexer mylex storage kwta_storage memory 500M')
    parallel 16;
    When i select distinct tokens from the $I table i get the following
    TOKEN_TEXT
    RESTAURANT
    GREEK
    WHATS
    ARE
    DELTA
    ZETA
    ALPHA
    ALPHABET
    EPSILON
    PF
    PSEDUOCOOL
    SOME
    CHANGS
    NIÃO
    ON
    POSTDATA
    SCRIPT
    BEEN
    GAMMA
    GOING
    HEY
    NI
    O
    THEY
    BETA
    Now what i am also wondering is if the text (message_content column) is being converted to UTF8 (database characterset) by using AUTO_FILTER. Is my assumption correct? Not sure how to validate this?
    And, would you kindly share of why RAW must not be used in this case?
    Thanks for all your pointers!

  • Bad performance of af:query

    I am working on Oracle Jdeveloper 11g Release 1
    I have a VO which gets executed when the first page gets loaded. suppose the VO is RuleLibraryVO
    I have a view criteria RuleLibraryVOCriteria in the VO which is used in the af:query panel in the page.
    When i do search for any attribute using the query panel the VO gets executed again everytime even if the VO is in the memory. This is hampering the performance of my query panel as it is again calling getters for all 2000+ rows and then searching. The VO Criteria used is:
    <ViewCriteria
        Name="RuleLibraryVOCriteria"
        ViewObjectName="oracle.sysman.core.gccompliance.model.library.rule.view.RuleLibraryVO"
        Conjunction="AND"
        Mode="3">
        <Properties>
          <CustomProperties>
            <Property
              Name="displayOperators"
              Value="InAdvancedMode"/>
            <Property
              Name="autoExecute"
              Value="true"/>
            <Property
              Name="allowConjunctionOverride"
              Value="true"/>
            <Property
              Name="showInList"
              Value="false"/>
            <Property
              Name="mode"
              Value="Basic"/>
            <Property
              Name="displayName"
              ResId="DEFAULT_SEARCH"/>
          </CustomProperties>
        </Properties>
        <ViewCriteriaRow
          Name="vcrow3"
          UpperColumns="1">
          <ViewCriteriaItem
            Name="RuleDnameTransient"
            ViewAttribute="RuleDnameTransient"
            Operator="CONTAINS"
            Conjunction="AND"
            Required="Optional">
            <CompOper
              Name="LessThan"
              ToDo="-1"
              Oper="&lt;"
              MinCardinality="0"
              MaxCardinality="0"/>
            <CompOper
              Name="LessThanOrEqualTo"
              ToDo="-1"
              Oper="&lt;="
              MinCardinality="0"
              MaxCardinality="0"/>
            <CompOper
              Name="GreaterThan"
              ToDo="-1"
              Oper=">"
              MinCardinality="0"
              MaxCardinality="0"/>
            <CompOper
              Name="GreaterThanOrEqualTo"
              ToDo="-1"
              Oper=">="
              MinCardinality="0"
              MaxCardinality="0"/>
          </ViewCriteriaItem>
          <ViewCriteriaItem
            Name="DescriptionTransient"
            ViewAttribute="DescriptionTransient"
            Operator="CONTAINS"
            Conjunction="AND"
            Required="Optional">
            <CompOper
              Name="LessThan"
              ToDo="-1"
              Oper="&lt;"
              MinCardinality="0"
              MaxCardinality="0"/>
            <CompOper
              Name="LessThanOrEqualTo"
              ToDo="-1"
              Oper="&lt;="
              MinCardinality="0"
              MaxCardinality="0"/>
            <CompOper
              Name="GreaterThan"
              ToDo="-1"
              Oper=">"
              MinCardinality="0"
              MaxCardinality="0"/>
            <CompOper
              Name="GreaterThanOrEqualTo"
              ToDo="-1"
              Oper=">="
              MinCardinality="0"
              MaxCardinality="0"/>
          </ViewCriteriaItem>
          <ViewCriteriaItem
            Name="IsSystem"
            ViewAttribute="IsSystem"
            Operator="="
            Conjunction="AND"
            Required="Optional"/>
          <ViewCriteriaItem
            Name="RuleType"
            ViewAttribute="RuleType"
            Operator="="
            Conjunction="AND"
            Required="Optional"/>
          <ViewCriteriaItem
            Name="TargetType"
            ViewAttribute="TargetType"
            Operator="="
            Conjunction="AND"
            Required="Optional"
            Value=":targetType"
            IsBindVarValue="true"/>
          <ViewCriteriaItem
            Name="KeywordsTransient"
            ViewAttribute="KeywordsTransient"
            Operator="CONTAINS"
            Conjunction="AND"
            Required="Optional"/>
        </ViewCriteriaRow>
      </ViewCriteria>The query panel in jspx is:
    <af:query id="qryId2"
                      headerText="#{coregccomplianceuiBundle.COMPLIANCE_SEARCH}"
                      disclosed="false"
                      value="#{bindings.RuleLibraryVOCriteriaQuery.queryDescriptor}"
                      model="#{bindings.RuleLibraryVOCriteriaQuery.queryModel}"
                      queryListener="#{bindings.RuleLibraryVOCriteriaQuery.processQuery}"
                      queryOperationListener="#{bindings.RuleLibraryVOCriteriaQuery.processQueryOperation}"
                      resultComponentId="::pc1:ruleLib" rows="3" maxColumns="2"
                      saveQueryMode="hidden"/>How can i optimize the search behavior so that it only searches using the vo data already loaded in memory.

    Hi Frank,
    Thanks for quick response,
    As suggested i made the Query Execution Mode to - In-Memory. And my view criteria now is:
    <ViewCriteria
        Name="RuleLibraryVOCriteria"
        ViewObjectName="oracle.sysman.core.gccompliance.model.library.rule.view.RuleLibraryVO"
        Conjunction="AND"
        Mode="2">
        <Properties>
          <CustomProperties>
            <Property
              Name="displayOperators"
              Value="InAdvancedMode"/>
            <Property
              Name="autoExecute"
              Value="true"/>
            <Property
              Name="allowConjunctionOverride"
              Value="true"/>
            <Property
              Name="showInList"
              Value="false"/>
            <Property
              Name="mode"
              Value="Basic"/>
            <Property
              Name="displayName"
              ResId="DEFAULT_SEARCH"/>
          </CustomProperties>
        </Properties>
        <ViewCriteriaRow
          Name="vcrow3"
          UpperColumns="1">
          <ViewCriteriaItem
            Name="RuleDnameTransient"
            ViewAttribute="RuleDnameTransient"
            Operator="CONTAINS"
            Conjunction="AND"
            Required="Optional">
            <CompOper
              Name="LessThan"
              ToDo="-1"
              Oper="&lt;"
              MinCardinality="0"
              MaxCardinality="0"/>
            <CompOper
              Name="LessThanOrEqualTo"
              ToDo="-1"
              Oper="&lt;="
              MinCardinality="0"
              MaxCardinality="0"/>
            <CompOper
              Name="GreaterThan"
              ToDo="-1"
              Oper=">"
              MinCardinality="0"
              MaxCardinality="0"/>
            <CompOper
              Name="GreaterThanOrEqualTo"
              ToDo="-1"
              Oper=">="
              MinCardinality="0"
              MaxCardinality="0"/>
          </ViewCriteriaItem>
          <ViewCriteriaItem
            Name="DescriptionTransient"
            ViewAttribute="DescriptionTransient"
            Operator="CONTAINS"
            Conjunction="AND"
            Required="Optional">
            <CompOper
              Name="LessThan"
              ToDo="-1"
              Oper="&lt;"
              MinCardinality="0"
              MaxCardinality="0"/>
            <CompOper
              Name="LessThanOrEqualTo"
              ToDo="-1"
              Oper="&lt;="
              MinCardinality="0"
              MaxCardinality="0"/>
            <CompOper
              Name="GreaterThan"
              ToDo="-1"
              Oper=">"
              MinCardinality="0"
              MaxCardinality="0"/>
            <CompOper
              Name="GreaterThanOrEqualTo"
              ToDo="-1"
              Oper=">="
              MinCardinality="0"
              MaxCardinality="0"/>
          </ViewCriteriaItem>
          <ViewCriteriaItem
            Name="IsSystem"
            ViewAttribute="IsSystem"
            Operator="="
            Conjunction="AND"
            Required="Optional"/>
          <ViewCriteriaItem
            Name="RuleType"
            ViewAttribute="RuleType"
            Operator="="
            Conjunction="AND"
            Required="Optional"/>
          <ViewCriteriaItem
            Name="TargetType"
            ViewAttribute="TargetType"
            Operator="="
            Conjunction="AND"
            Required="Optional"
            Value=":targetType"
            IsBindVarValue="true"/>
          <ViewCriteriaItem
            Name="KeywordsTransient"
            ViewAttribute="*KeywordsTransient*"
            Operator="CONTAINS"
            Conjunction="AND"
            Required="Optional"
            UpperColumns="0"/>
        </ViewCriteriaRow>
      </ViewCriteria>
      The performance hit is when i search for attribute: KeywordsTransient.
    The attribute is as :
      <ViewAttribute
        Name="KeywordsTransient"
        IsSelected="false"
        IsPersistent="false"
        PrecisionRule="true"
        Type="java.lang.String"
        ColumnType="VARCHAR2"
        AliasName="VIEW_ATTR"
        SQLType="VARCHAR">
        <RecalcCondition><![CDATA[return (adf.object.isAttributeChanged("Keywords")]]></RecalcCondition>
        <TransientExpression><![CDATA[object.Keywords]]></TransientExpression>
        <Dependencies>
          <Item
            Value="Keywords"/>
        </Dependencies>
        <Properties>
          <SchemaBasedProperties>
            <LABEL
              ResId="KEYWORDS"/>
          </SchemaBasedProperties>
        </Properties>
      </ViewAttribute>
      This attribute is dependent on Keywords attribute of the VO , The keyword getter is as below:
         * Gets the attribute value for the calculated attribute Keywords.
         * @return the Keywords
        public String getKeywords() {
            if (((String) getAttributeInternal(KEYWORDS)) == null)
                        long startTime = System.currentTimeMillis();
                        String keyword = "";
                        CSRUtil csrUtil = new CSRUtil();
                       // get the keyword name list from RuleKeywordTableVO which stores ruleGuid to KeywordName mapping. This VO is Loaded in memory as soon as bean initailizes.
                        Set<String> keywordList =
                            csrUtil.getRuleKeywordListFromKeywordMapVO(getRuleGuid());
                        if (keywordList != null)
                            Iterator rowIter = keywordList.iterator();
                            while (rowIter.hasNext())
                                keyword =
                                        keyword.concat(csrUtil.getKeywordNlsIdFromTable((String) rowIter.next())) +
                        if (keyword.endsWith(", "))
                            keyword = keyword.substring(0, keyword.length() - 2);
                        setKeywords(keyword);
                        setKeywordsTransient(keyword);
                        long endTime = System.currentTimeMillis();
                        logger.severe("Time taken for this rule in millis : "+ (endTime-startTime));
                    return (String) getAttributeInternal(KEYWORDS);
      This getter is creating keyword list using nlsid translation based on other tables data for a rule.
    Also, I have loaded the rule vo data in memory using invokeAction on my page as below:
        <invokeAction id="ExecuteRuleInvoke" Binds="ExecuteRULE"
                      Refresh="renderModel" RefreshCondition="#{sdk_core_uifwk_refresh_ctrl.executeNeeded}"/>
         <action IterBinding="RuleLibraryVO1Iterator" id="ExecuteRULE"
                InstanceName="ComplianceLibraryAMDataControl.RuleLibraryVO1"
                DataControl="ComplianceLibraryAMDataControl"
                RequiresUpdateModel="true" Action="iteratorExecute"/>
      So now when i search for a keywordTransient attribute using query panel the getter is always called for keywords even if the VO data is in memory.
    So what am i missing, is the data loaded by invokeAction not visible to the query, or i have to use some other optimization.

  • DB Performance issue

    Hi DB Gurus,
    Our application is inserting 60-70K records in a table in each transaction. When multiple sessions are open on this table user face performance issues like application response is too slow.
    Regarding this table:
    1.Size = 56424 Mbytes!
    2.Count = 188,858,094 rows!
    3.Years of data stored = 4 years
    4.Average growth = 10 million records per month, 120 million each year! (has grown 60 million since end of June 2007)
    5.Storage params = 110 extents, Initial=40960, Next=524288000, Min Extents=1, Max Extents=505
    6.There are 14 indexes on this table all of which are in use.
    7. Data is inserted through bulk insert
    8. DB: Oracle 10g
    Sheer size of this table (56G) and its rate of growth may be the culprits behind performance issue. But to ascertain that, we need to dig out more facts so that we can decide conclusively how to mail this issue.
    So my questions are:
    1. What other facts can be collected to find out the root cause of bad performance?
    2. Looking at given statistics, is there a way to resolve the performance issue - by using table partition or archiving or some other better way is there?
    We've already though of dropping some indexes but it looks difficult since they are used in reports based on this table (along with other tables)
    3. Any guess what else can be causing this issue?
    4. How many records per session can be inserted in a table? Is there any limitation?
    Thanks in advance!!

    Run STATSPACK and check what it says are the issues. Try and find the particular INSERT statement in the list of all SQL. Look at all the sections of the report, including block contention, which may show you are waiting for data blocks or index blocks, etc, or even things like latch contention too. Make sure you run it when the INSERT is happening during one of your busy periods.
    Given that you are using Oracle 10g, I assume you are using all the automatic settings now:
    o Local Tablespace Management
    o Automatic Segment Space Management
    o Automatic Undo Management
    If not, you should be. Prior to all this, Oracle always inserted into the last block in a table, which could become a bottleneck point. And space allocation of new blocks was also a problem. When these settings were introduced it alleviated most of these problems, and meant that Oracle could scale far better on such INSERT intensive workloads. If you are not using these for some reason or other, then you need to look at the number of FREELISTS you have on the table, and the setting of INITRANS.
    Also, how many columns does this table have? And how big is an average row. And what is your block size? You can get these from the data dictionary:
    select count (*) from user_tab_columns where table_name = '<tablename>' ;
    select avg_row_len from user_tables where table_name = '<tablename>' ;
    show parameter db_block_size
    Replace <tablename> with the name of your table, in uppercase.
    I ask because a very large row in a small data block will always fill the block quickly and cause new blocks to be allocated. If so, you may just have to live with this.
    And I would be suspicious about all 14 indexes being needed. Are they all single column indexes, or do you have any multi-column indexes? Do any of them share the same leading columns? Again, if you need all 14 indexes, then you must suffer the overhead of maintaining these indexes. But unless you have something like 50 columns in this table, I would guess that there is some overlap between these indexes.
    John

  • Performance of Transfer Statement

    Hi,
      I'm working in a MDMP - Unicode Conversion Project. My job primarily is to enable Custom ABAP code for Unicode syntax.
        I have a generic program which takes the names of tables and fields and the destination path from a file and extracts those table fields to the destination share using transfer statement.
       It is found that this program extracts characters of multiple languages to single file. In the original program there is a single select - endselect loop within which there is a transfer statement.
       Now to accomadate different languages in the same file. I'm collating the data belonging to one language in internal tables and writing the content to the file with a different codepage each time opening and appending to the same file. The approach works good but i face performance issues.
       In the modified version the transfer statement is taking more time than what the transfer statement in the original program is taking. I have no clue of this behaviour. Can someone tell why this change in behaviour of the transfer statement?

    Hi Vijay,
       Let me explain you in detail.
      if i have a transfer statement like this, it is taking approximately 12 seconds to download nearly 50 MB content.
       select * from (extract_info-table) into <tblwa>
       where (where_clause).
       move <tblwa> to o_string.
       transfer o_string to file.
       endselect.
    if i code it this way.
      select * into table <table> from
      (extract_info-table) where (where_clause).
      perform download_file tables <table>
                            using file.
      form download_file tables data_tab
                         using file.
         loop at data_tab.
            transfer data_tab to file.
         endloop.
      endform.
    it is taking 10 times more time ~ 120 secs to download the same content.

Maybe you are looking for

  • Pick data in small batches

    Hi, We have a requirement where we need to pick up only a few files (say 100) from a folder with many more files parked in it. We intend to run a .bat file, which resides in the FTP server itself. The .bat file is supposed to rename the files to a pa

  • How do I update my plug-ins, as prompted?

    In installing Foxfire for the first time, I was prompted to update my plug-ins. When I click on "update," I get a window asking if I want to save this file. I click to save, then I get the original screen with the same plug-in and others still listed

  • How to convert structures defined in VC++ to Labview

    hi I am converting a previously written VC++ code  to labview ... but i m facing a problem ... ie ... in VC++   typedef struct     float X,Y,Z;     int X2,Y2;  }Position;  in VC++ , if i hv to assign a value to structure.I use pointer to structure  s

  • Problem with a PLSQL procedure

    Hi Guys Here a very small stored proc. CREATE OR REPLACE procedure PRODDATA.LECTX123 is type x123_aat is table of PRODDATA.CLIENTS%ROWTYPE index by PLS_INTEGER; l_x123 x123_aat; begin select * bulk collect into l_x123 from PRODDATA.CLIENTS; FOR indx

  • I am trying to find the name of a song from the TV show Blacklist. Where can I look?

    The song is played during the last two minutes of last evening's show, The Cypress Affair. Would like the artist and or Name of song. Thanks