WCP12c: Improve performance of your Search Content Queries
Hi,
A year ago I spoke in NL OUG 2017 on how to improve you Oracle WebCenter Portal 12c performance.
https://es.slideshare.net/DanielMerchnGarca/nloug-2017-oracle-webcenter-portal-12c-performance
Recently, I had a customer who was running a very well tunned Oracle WebCenter Portal 12c platform, but it has been growing a lot during the latest years.
I have realised that queries to Oracle WebCenter Content were performing very bad, so I checked the typical:
The query thrown from Oracle WebCenter Portal was giving very bad answer time
>requestaudit/6 08.14 13:00:18.674 IdcServer-20950 GET_SEARCH_RESULTS [dUser=weblogic][dSecurityGroup=XXX][QueryText=%28+xIdcProfile+%3cmatches%3e+%60YYYYY%60+%3cAND%3e+xNewsSection+%3cmatches%3e+%60Real+Estate+News%60+%3cAND%3e+xEventsDate+%3c%3d+%602018-08-14+00%3a00%3a00%60+%29][IsJava=1] 3.2619810104370117(secs)
However the same query thrown directly from WebCenter Content by URL was giving decent average response time.
>requestaudit/6 08.14 13:00:18.674 IdcServer-20950 GET_SEARCH_RESULTS [dUser=weblogic][dSecurityGroup=XXX][QueryText=%28+xIdcProfile+%3cmatches%3e+%60YYYYY%60+%3cAND%3e+xNewsSection+%3cmatches%3e+%60Real+Estate+News%60+%3cAND%3e+xEventsDate+%3c%3d+%602018-08-14+00%3a00%3a00%60+%29][IsJava=1] 0.28199873787298(secs)
After enabling systemdatabase trace, I have seen the real query thrown in both scenarions.
A year ago I spoke in NL OUG 2017 on how to improve you Oracle WebCenter Portal 12c performance.
https://es.slideshare.net/DanielMerchnGarca/nloug-2017-oracle-webcenter-portal-12c-performance
Recently, I had a customer who was running a very well tunned Oracle WebCenter Portal 12c platform, but it has been growing a lot during the latest years.
I have realised that queries to Oracle WebCenter Content were performing very bad, so I checked the typical:
- Check the fragmentation of the current OTS index by using the PL/SQL command. It shown a perfect 1% and the PL/SQL job was scheduled for being executed each 3 days.
- WebCenter Content configuration and AutoSuggestIndexer. All was good...
- JVM Monitoring and CPU / Memory resources. All good as well.
The query thrown from Oracle WebCenter Portal was giving very bad answer time
>requestaudit/6 08.14 13:00:18.674 IdcServer-20950 GET_SEARCH_RESULTS [dUser=weblogic][dSecurityGroup=XXX][QueryText=%28+xIdcProfile+%3cmatches%3e+%60YYYYY%60+%3cAND%3e+xNewsSection+%3cmatches%3e+%60Real+Estate+News%60+%3cAND%3e+xEventsDate+%3c%3d+%602018-08-14+00%3a00%3a00%60+%29][IsJava=1] 3.2619810104370117(secs)
However the same query thrown directly from WebCenter Content by URL was giving decent average response time.
>requestaudit/6 08.14 13:00:18.674 IdcServer-20950 GET_SEARCH_RESULTS [dUser=weblogic][dSecurityGroup=XXX][QueryText=%28+xIdcProfile+%3cmatches%3e+%60YYYYY%60+%3cAND%3e+xNewsSection+%3cmatches%3e+%60Real+Estate+News%60+%3cAND%3e+xEventsDate+%3c%3d+%602018-08-14+00%3a00%3a00%60+%29][IsJava=1] 0.28199873787298(secs)
After enabling systemdatabase trace, I have seen the real query thrown in both scenarions.
- The slow scenario (from WCP) was adding lot of clauses for the dDocAccount.
>searchquery/6 08.14 13:00:15.483 IdcServer-20950 query(live): (((( ((NewsWebContent) WITHIN xIdcProfile) and SDATA(sdxDPGNewsSection LIKE 'REAL ESTATE NEWS') and SDATA(xEventsDate <= '2018/08/14 04:00:00') )))) and (((((idcnull) WITHIN dDocAccount)) or (((AUTHEN%) WITHIN dDocAccount)) or (((WCILS%) WITHIN dDocAccount)) or (((PEWebCenter/PU%) WITHIN dDocAccount)) or (((WebCenterSpaces/PU%) WITHIN dDocAccount)) or (((PUBLIC%) WITHIN dDocAccount)) or (((scf5139f6597d4aecb2536b63edec01c3%) WITHIN dDocAccount)))) [1,3] sort(xEventsDate DESC) - The direct scenarion (from WCC) was not adding the clauses and performing well without the dDocAccount clause
- Optimize the dDocAccount metadata using the Configuration Manager Applet, Advance settings.
- Configure Oracle WebCenter Content config DoCaseInsensitiveAcctSearch=false to do not make Case Insensitive Account Searching. (It requires restart of the Content Server)
- Perform a Fast Re-Index of Oracle WebCenter Content.
- Check the query generated in the systemdatabase trace. Now it should changed the dDocAccount clause and the performance should increase considerably.
>systemdatabase/6 10.30 13:21:09.825 IdcServer-29950 Parameters: ([indexName:FT_IdcText2],[tableName:IdcText2],[queryText:((((((((((((DEFINESCORE((SHQ), RELEVANCE * .1)) and ( ((idcnull) WITHIN xWebsiteObjectType) or ((Data File) WITHIN xWebsiteObjectType) ) and idccontenttrue NOT ((image/jpeg) WITHIN dFormat) and idccontenttrue NOT ((image/png) WITHIN dFormat) and idccontenttrue NOT SDATA(sdxRegionDefinition LIKE 'RD\_ARTICLE') and idccontenttrue NOT SDATA(sdxRegionDefinition LIKE '\LEGALCASE\_RD') and idccontenttrue NOT SDATA(sdxRegionDefinition LIKE '\NEWJOINERS\_RD') )))))))))) and (((SDATA(sddDocAccount LIKE 'IDCNULL')) or (SDATA(sddDocAccount LIKE 'AUTHEN%')) or (SDATA(sddDocAccount LIKE 'WCILS%')) or (SDATA(sddDocAccount LIKE 'PEWEBCENTER/PU%')) or (SDATA(sddDocAccount LIKE 'WEBCENTERSPACES/PU%')) or (SDATA(sddDocAccount LIKE 'PUBLIC%')) or (SDATA(sddDocAccount LIKE 'SCF5139F6597D4AECB2536B63EDEC01C3%')))))*10.0*10.0]
Comments
Post a Comment