Severe DML Performance Issue using Oracle RLS on 11.2.0.3

Hi Experts/Gurus,
We are trying to implement Oracle RLS in one our Corporate Application
Purpose of using RLS is to convert Single Company Application into Multiple Company Application
by adding COMPANY_ID Column and Index to make Application Multi-Company.
Each user would be allowed only to view/edit records from his own Company
RLS function we defined is very simple and static.
When we did some DML Tests using 8 parallel sessions, find DML Performance is
severely degraded (response time is twice our existing Application without RLS)
Top 5 Timed Foreground Events
Event Waits Time(s) Avg wait (ms) % DB time Wait Class
db file sequential read 1,312,910 6,197 5 43.08 User I/O DB CPU 2,976 20.69
library cache: mutex X 80,808 1,139 14 7.91 Concurrency
WCR: replay lock order 1,705 1,107 649 7.69 Application
gc current grant 2-way 309,886 550 2 3.83 Cluster
Would like to know why we encounter library cache: mutex X
Checked Mutex Sleep Summary section of AWR and it has following:
Mutex Sleep Summary
ordered by number of sleeps desc
Mutex Type Location Sleeps Wait Time (ms)
Library Cache kglpin1 4 26,849 0
Library Cache kglpnal2 91 25,230 0
Library Cache kglpndl1 95 21,382 0
Library Cache kglpnal1 90 12,823 0
Cursor Pin kksfbc [KKSCHLFSP2] 5,196 0
Would like to know how to interpret
each of the Library Cache entries such as kglpin1 4.
What does the keyword after Libary Cache (starting with kglpin mean)
Thanks in advance

Welcome to the forum!
Please see the FAQ #3 at the top of the thread list for how to post a tuning request and the information you need to provide
SQL and PL/SQL FAQ
>
We are trying to implement Oracle RLS in one our Corporate Application
Purpose of using RLS is to convert Single Company Application into Multiple Company Application
by adding COMPANY_ID Column and Index to make Application Multi-Company.
Each user would be allowed only to view/edit records from his own Company
RLS function we defined is very simple and static.
When we did some DML Tests using 8 parallel sessions, find DML Performance is
severely degraded (response time is twice our existing Application without RLS)
What does the keyword after Libary Cache (starting with kglpin mean)
>
The short answer is that those are pinned objects in the library cache.
The short question is why you are focusing on trivia instead of collecting, and posting, information that might shed some light on your problem?
Read the FAQ thread above and post the information needed.
Your RLS function may be 'very simple and static' but we can't see it. And we can't comment on what we can't see.
We also can't see:
1. your table or index DDL
2. the query you are using that you say is non-performant
3. any data about statistics and whether they are current
4. any data about row counts for the table, the (unknown) query predicates, the expected result set
5. any data about the query predicates
6. any execution plans for the query from the standard table and from the current table
7. any info about the RLS security you are using and how you implemented and configured it.

Similar Messages

  • Performance issues with Oracle EE 9.2.0.4 and RedHat 2.1

    Hello,
    I am having some serious performance issues with Oracle Enterprise Edition 9.2.0.4 and RedHat Linux 2.1. The processor goes berserk at 100% for long (some 5 min.) periods of time, and all the ram memory gets used.
    Some environment characteristics:
    Machine: Intel Pentium IV 2.0GHz with 1GB of RAM.
    OS: RedHat Linux 2.1 Enterprise.
    Oracle: Oracle Enterprise Edition 9.2.0.4
    Application: We have a small web-application with 10 users (for now) and very basic queries (all in stored procedures). Also we use the latest version of ODP.NET with default connection settings (some low pooling, etc).
    Does anyone know what could be going on?
    Is anybody else having this similar behavior?
    We change from SQL-Server so we are not the world expert on the matter. But we want a reliable system nonetheless.
    Please help us out, gives some tips, tricks, or guides…
    Thanks to all,
    Frank

    Thank you very much and sorry I couldn’t write sooner. It seems that the administrator doesn’t see the kswap going on so much, so I don’t really know what is going on.
    We are looking at some queries and some indexing but this is nuts, if I had some poor queries, which we don’t really, the server would show pick right?
    But he goes crazy and has two oracle processes taking all the resources. There seems to be little swapping going on.
    Son now what? They are all ready talking about MS-SQL please help me out here, this is crazy!!!
    We have, may be the most powerful combinations here. What is oracle doing?
    We even kill the Working Process of the IIS and have no one do anything with the database and still dose two processes going on.
    Can some one help me?
    Thanks,
    Frank

  • Help with Video Performance Issues using Flash

    Asking on behalf of a customer who has been unable to get any answers so far - are you able to help?
    Background:
    We have a port of our Game Development Kit which allows us to recompile all our games using Crossbridge (http://adobe-flash.github.io/crossbridge/) into SWF without any code modifications.
    Overview:
    Our framework is using OpenGL for rendering and we have successfully ported it along with the audio and video to run in Flash.
    We are experiencing performance issues using Video. We cannot use image sequence as some of the video animations are too long and would increase the download to an unacceptable size.  Assets vary between 256x256 - 1024x1024 videos.

    Here's the rest of the story.  Let me know if you can see any resolution, and I will connect him to the forums.  Thank you.
    Current Video Solution:
    We create an instance of NetConnection, NetStream, and Video according to most samples out there, and invoke draw to rasterize the Video DisplayObject into a BitmapData instance.
    The BitmapData instance has a fixed color component layout which is not compatible with Stage3D texture and is therefore has to be reformatted before uploaded to Stage3D Texture (See Code Listing below).
    Our Problems:
    Performance issues with RGBA conversion (either using copyChannel or manually reformatting is not fast enough) natively in as3; this required for stage3d texture.Copying each channel individual using bitmapdata.Copychannel seems faster, but not significantly faster.
    Cannot detect when video frame has been updated, therefore we may copy pixels that are not needed in enterframe (processpixel).
    Looping video, our current solution uses the NET_STATUS event Buffer empty; Is there a better way to loop videos than checking buffer and seeking to 0.
    Stepping video, loading FLV or MP4 side by side assets from HTTP or embedded does not support stepping? Is there another way?
    ActionScript Code Listing:
    video_nc = new NetConnection();
    video_nc.addEventListener(NetStatusEvent.NET_STATUS , onConnect);
    video_nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR , trace);
    video_nc.connect(null);
    // OnConnect Event:
    this.ns = new NetStream(e.target as NetConnection);
    eventclient = new Object();
    eventclient.onMetaData = onMetaData;
    this.ns.client = eventclient;
    ns.play(flvfile);
    ns.pause();
    //onMetaData event:
    this.width = infoObject.width;
    this.height = infoObject.height;
    this.textureWidth = NextPowerOfTwo(this.width);
    this.textureHeight = NextPowerOfTwo(this.height);
    cliprect = new Rectangle(0, 0, this.width ,this.height);
    cliprect.x = 0;
    cliprect.y = 0;
    cliprect.width = this.textureWidth;
    cliprect.height = this.textureHeight;
    totalFrames = infoObject.duration * infoObject.fps;
    this.hasAlpha = true;
    if(infoObject.videocodecid == 5)
    this.hasAlpha = true;
    this.bitmapData = new BitmapData(this.textureWidth, this.textureHeight, hasAlpha, 0xff000000);
    this.video = new Video(this.width, this.height);
    this.video.attachNetStream(ns);
    this.video.addEventListener(Event.ENTER_FRAME, processPixels);
    // processPixel method:
    BitmapData.draw(video);
    GLAPI.instance.glBindTexture(GLAPI.GL_TEXTURE_2D,this.textureId);
    var fmt:uint = GLAPI.GL_ARGB;
    // converting pixels using copychannel or loop through pixels
    GLAPI.instance.glBindTexture(GLAPI.GL_TEXTURE_2D,this.textureId);
    GLAPI.instance.glTexImage2D(GLAPI.GL_TEXTURE_2D, 0, fmt, this.textureWidth, this.textureHeight, 0,fmt, GLAPI.GL_UNSIGNED_BYTE, 0, convBitmapData.getPixels(cliprect));

  • Performance Issue in Oracle EBS

    Hi Group,
    I am working in a performance issue at customer site, let me explain the behaviour.
    There is one node for the database and other for the application.
    Application server is running all the services.
    EBS version is 12.1.3 and database version is: 11.1.0.7 with AIX both servers..
    Customer has added memory to both servers (database and application) initially they had 32 Gbytes, now they have 128 Gbytes.
    Today, I have increased memory parameters for the database and also I have increased JVM's proceesses from 1 to 2 for Forms and OAcore, both JVM's are 1024M.
    The behaviour is when users are navigating inside of the form, and they push the down button quickly the form gets thinking (reloading and waiting 1 or 2 minutes to response), it is no particular for a specific form, it is just happening in several forms.
    Gathering statistics job is scheduled every weekend, I am not sure what can be the problem, I have collected a trace of the form and uploaded it to Oracle Support with no success or advice.
    I have just send a ping command and the reponse time between servers is below to 5 ms.
    I have several activities in mind like:
    - OATM conversion.
    - ASM implementation.
    - Upgrade to 11.2.0.4.
    Has anybody had this behaviour?, any advice about this problem will be really appreciated.
    Thanks in advance.
    Kind regards,
    Francisco Mtz.

    Hi Bashar, thank you very much for your quick response.
    If both servers are on the same network then the ping should not exceed 2 ms.
    If I remember, I did a ping last Wednesday, and there were some peaks over 5 ms.
    Have you checked the network performance between the clients and the application server?
    Also, I did a ping from the PC to the application and database, and it was responding in less than 1 ms.
    What is the status of the CPU usage on both servers?
    There aren't overhead in the CPU side, I tested it (scrolling getting frozen) with no users in the application.
    Did this happen after you performed the hardware upgrade?
    Yes, it happened after changing some memory parameters in the JVM and the database.
    Oracle has suggested to apply the latest Forms patches according to this Note: Doc ID 437878.1
    Thanks in advance.
    Kind regards,
    Francisco Mtz.

  • Issues using Oracle Text conditions

    Hi all,
    I'm facing an issue executing a query on a VIEW using Oracle Text Indexes.
    The DB version I'm using is "Enterprise 9.2.0.5".
    TEST_VIEW is an sql-view that has a query on several tables where one of them has two Oracle Text indexes, one on field FIELD2 and another on FIELD3
    executing this query I get 10 rows:
    select *
    from TEST_VIEW
    where FIELD1 = 1001 -- regular condition
    and (contains(FIELD2, 'Blitz') > 0 ) -- Oracle text condition
    But if I add another condition on an existent Oracle Text Index, I'll get only 1 row:
    select *
    from TEST_VIEW
    where FIELD1 = 1001
    where (contains(FIELD2, 'Blitz') > 0 OR contains(FIELD3, 'Blitz') > 0)
    As you can see the third condition was added using a logical OR, so I should get at least 10 rows ...
    Can anyone help me ?
    ThaNks in advance.
    Eduardo.

    Eduardo,
    Without a full test case, it is hard to see if there is something wrong or not. I did the following, and all worked fine on my 10g instance. I had to assume some things, but I at least think I have the basic gist of your inquiry in this example. Run it/change it to match your situation, and post back when you can.
    Thanks,
    Ron
    CREATE TABLE Z_TEST1 (
    FIELD1 VARCHAR2(30));
    INSERT INTO Z_TEST1
    VALUES ('QUICK');
    INSERT INTO Z_TEST1
    VALUES ('BROWN');
    INSERT INTO Z_TEST1
    VALUES ('FOX');
    INSERT INTO Z_TEST1
    VALUES ('QUICK');
    INSERT INTO Z_TEST1
    VALUES ('BROWN');
    INSERT INTO Z_TEST1
    VALUES ('FOX');
    CREATE TABLE Z_TEST2 (
    FIELD2 VARCHAR2(30));
    INSERT INTO Z_TEST2
    VALUES ('JUMPED');
    INSERT INTO Z_TEST2
    VALUES ('OVER');
    INSERT INTO Z_TEST2
    VALUES ('LAZY');
    INSERT INTO Z_TEST2
    VALUES ('DOG');
    INSERT INTO Z_TEST2
    VALUES ('QUICK');
    INSERT INTO Z_TEST2
    VALUES ('BROWN');
    INSERT INTO Z_TEST2
    VALUES ('FOX');
    commit;
    CREATE VIEW TEST_VIEW
    AS
    SELECT Z_TEST1.FIELD1 AS "FIELD1", Z_TEST2.FIELD2 AS "FIELD2"
    FROM Z_TEST1, Z_TEST2;
    CREATE INDEX Z_TEST1_IDX ON Z_TEST1(FIELD1)
    INDEXTYPE IS CTXSYS.CONTEXT;
    CREATE INDEX Z_TEST2_IDX ON Z_TEST2(FIELD2)
    INDEXTYPE IS CTXSYS.CONTEXT;
    select *
    from TEST_VIEW
    where CONTAINS(FIELD1, 'FOX') > 0;
    14 rows
    select *
    from TEST_VIEW
    where (CONTAINS(FIELD1, 'FOX') > 0 OR CONTAINS(FIELD2, 'FOX') > 0);
    18 rows

  • Issues using Oracle SQL server Developer migration work bench

    Hi all,
    We are trying to migrate the application databases from SQL server 2000 to Oracle 10g using Oracle SQL Developer 1.2.1.32.13:
    Following is the list of issues that we faced while trying out this migration on dev environment.
    1. The data migration was successful for only around 90 tables out of the total 166 tables present. No error message was logged for the rest of the tables but still it was completed.
    2. Some of the tables which had got the data inserted did not have the full data. Only some of the rows were inserted for these tables. Error message was logged only for few of the rows and not all.
    3. Few error messages were logged which said problems about “Inserting ' ' into column <tablename>.<columnname>”. There was no such constraint in the target database that the particular column can not be null or can not have only a space. Please check the logs for the same error messages.
    4. The status box at the end of migration had shown only 3 errors.
    5. The total data for migration was around 500MB. The time taken for migration was around 75 minutes. Are there any optimization techniques that will improve the performance?
    Please note that there were no Foreign Key references for the source schema or target schema.
    Any pointers/info/resolutions related to above mentioned issues will be much useful for us.
    Thanks,

    Hi Adam,
    There are 2 sets of scripts created for you.
    1) For SQL Servers BCP to dump out the data to dat files
    2) For Oracles SQL*Loader to load the dat files
    You run the SQL Server BCP scripts on the machine with SQL Server.
    The dat files will be dumped out on that server.
    You can then move the dat files to your Oracle server.
    Then run the Oracle SQL*Loader scripts to load the dat files into Oracle.
    Give it a go and follow the doc and viewlets.
    Your Questions:
    So the datadump from the source location would be saved on my local disk?it will be saved on the same machine you run the bcp scripts from. Usually the same machine SQL Server is on, because you require SQL Server BCP tool.
    So once it is migrated to the destination database will that dump be created automatically? Or do I need to modify the script to take care of this?I dont know what you mean by this, hopefully above clears things up.
    The only modifications you need to make to the scripts are adding in the databasename username password servername. These are outlined in the scripts themselves. I would want to do something fancy like dump the dat files to a different directory, then you can modify the scripts, but you should understand what they do first.
    Most people would have 500MB of space on their discs , so I can see the problem creating these dat files . The same goes for your 30 GB database.
    I hope this helps, but as always you wont get a good idea of how it works until you give it a go.
    Regards,
    Dermot.

  • Tool for diagnosing performance issues in oracle database

    Is there any tool to diagnose performance issues in queries and stored procedures in oracle similar to sql profiler for sql server
    Thanks

    you can use oem oracle enterprise manager to diagnose and monitor database .
    Chapter 10: Monitoring and Tuning the Database(refer the link , oracle obe series, step by step procedures with screenshot presentation)
    This chapter introduces you to some of the monitoring and tuning operations as performed through Enterprise Manager.
    http://www.oracle.com/technology/obe/2day_dba/monitoring/monitoring.htm
    refer: Monitoring and Tuning the Database
    http://download.oracle.com/docs/cd/B14117_01/server.101/b10742/montune.htm
    hope, this will helps you.
    Edited by: rajeysh on Jul 14, 2010 9:28 PM

  • Performance issue with Oracle Text index

    Hi Experts,
    We are on Oracle 11.2..0.3 on Solaris 10. I have implemented Oracle Text in our environment and I am facing a strange performance issue that is happening in our environment.
    One sql having CONTAINS clause is taking forever - more than 20 minutes and still does not complete. This sql has a contains clause and an exists clause and a not exists clause.
    Now if I remove the exists clause and a not exists clause , it completes fast. but with those two clauses it is just taking forever. It is late night so i am not able to post the table and sql query details and will do so tomorrow but based on this general description, are there any pointers for me to review?
    sql query doing fine:
    SELECT
        U.CLNT_OID, U.USR_OID, S.MAILADDR
    FROM
        access_usr U
        INNER JOIN access_sia S
            ON S.USR_OID = U.USR_OID AND S.CLNT_OID = U.CLNT_OID
        WHERE U.CLNT_OID = 'ABCX32S'
        AND CONTAINS(LAST_NAME , 'TO%' ) >0
    --sql query that hangs forever:
    SELECT
        U.CLNT_OID, U.USR_OID, S.MAILADDR
    FROM
        access_usr U
        INNER JOIN access_sia S
            ON S.USR_OID = U.USR_OID AND S.CLNT_OID = U.CLNT_OID
        WHERE U.CLNT_OID = 'ABCX32S'
        AND CONTAINS(LAST_NAME , 'TO%' ) >0
    and exists (--one clause here wiht a few table joins)
    and not exists (--one clause here wiht a few table joins);
    --Now another strange thing I found is if instead of 'TO%' in this sql, if I were to use 'ZZ%' or 'L1%' it works fast but for 'TO%' it goes slow with those two exists not exists clauses!
    I will be most thankful for the inputs.
    OrauserN

    Hi Barbara,
    First of all, thanks a lot for reviewing the issue.
    Unluckily making the change to empty_stoplist did not work out. I am today copying the entire sql here that has this issue and will be most thankful for more insights/pointers on what can be done.
    Here is the entire sql:
    SELECT U.CLNT_OID,
           U.USR_OID,
           S.EMAILADDRESS,
           U.FIRST_NAME,
           U.LAST_NAME,
           S.JOBCODE,
           S.LOCATION,
           S.DEPARTMENT,
           S.ASSOCIATEID,
           S.ENTERPRISECOMPANYCODE,
           S.EMPLOYEEID,
           S.PAYGROUP,
           S.PRODUCTLOCALE
      FROM    ACCESS_USR U
           INNER JOIN
              ACCESS_SIA S
           ON S.USR_OID = U.USR_OID AND S.CLNT_OID = U.CLNT_OID
    WHERE     U.CLNT_OID = 'G39NY3D25942TXDA'
           AND EXISTS
                  (SELECT 1
                     FROM ACCESS_USR_GROUP_XREF UGX
                          INNER JOIN ACCESS_GROUP RELG
                             ON     RELG.CLNT_OID = UGX.CLNT_OID
                                AND RELG.GROUP_OID = UGX.GROUP_OID
                          INNER JOIN ACCESS_GROUP G
                             ON     G.CLNT_OID = RELG.CLNT_OID
                                AND G.GROUP_TYPE_OID = RELG.GROUP_TYPE_OID
                    WHERE     UGX.CLNT_OID = U.CLNT_OID
                          AND UGX.USR_OID = U.USR_OID
                          AND G.GROUP_OID = 920512943
                          AND UGX.INCLUDED = 1)
           AND NOT EXISTS
                      (SELECT 1
                         FROM    ACCESS_USR_GROUP_XREF UGX
                              INNER JOIN
                                 ACCESS_GROUP G
                              ON     G.CLNT_OID = UGX.CLNT_OID
                                 AND G.GROUP_OID = UGX.GROUP_OID
                        WHERE     UGX.CLNT_OID = U.CLNT_OID
                              AND UGX.USR_OID = U.USR_OID
                              AND G.GROUP_OID = 920512943
                              AND UGX.INCLUDED = 1)
           AND CONTAINS (U.LAST_NAME, 'Bon%') > 0;
    Like I said before if the EXISTS and NOT EXISTS clause are removed it works in sub-second. But with those EXISTS and NOT EXISTS CLAUSE IT TAKES ANY WHERE FROM 25 minutes to more than one hour.
    NOte also that it was not TO% but Bon% in the CONTAINS clause that is giving the issue - sorry that was wrong on my part.
    Also please see below the ORACLE TEXT index defined on the table ACCESS_USER:
    --definition of preferences used in the index:
    SET SERVEROUTPUT ON size unlimited
    WHENEVER SQLERROR EXIT SQL.SQLCODE
    DECLARE
       v_err       VARCHAR2 (1000);
       v_sqlcode   NUMBER;
       v_count     NUMBER;
    BEGIN
       ctxsys.ctx_ddl.create_preference ('cust_lexer', 'BASIC_LEXER');
       ctxsys.ctx_ddl.set_attribute ('cust_lexer', 'base_letter', 'YES'); -- removes diacritics
    EXCEPTION
       WHEN OTHERS
       THEN
          v_err := SQLERRM;
          v_sqlcode := SQLCODE;
          v_count := INSTR (v_err, 'DRG-10701');
          IF v_count > 0
          THEN
             DBMS_OUTPUT.put_line (
                'The required preference named CUST_LEXER with BASIC LEXER is already set up');
          ELSE
             RAISE;
          END IF;
    END;
    DECLARE
       v_err       VARCHAR2 (1000);
       v_sqlcode   NUMBER;
       v_count     NUMBER;
    BEGIN
       ctxsys.ctx_ddl.create_preference ('cust_wl', 'BASIC_WORDLIST');
       ctxsys.ctx_ddl.set_attribute ('cust_wl', 'SUBSTRING_INDEX', 'true'); -- to improve performance
    EXCEPTION
       WHEN OTHERS
       THEN
          v_err := SQLERRM;
          v_sqlcode := SQLCODE;
          v_count := INSTR (v_err, 'DRG-10701');
          IF v_count > 0
          THEN
             DBMS_OUTPUT.put_line (
                'The required preference named CUST_WL with BASIC WORDLIST is already set up');
          ELSE
             RAISE;
          END IF;
    END;
    --now below is the code of the index:
    CREATE INDEX ACCESS_USR_IDX3 ON ACCESS_USR
    (FIRST_NAME)
    INDEXTYPE IS CTXSYS.CONTEXT
    PARAMETERS('LEXER cust_lexer WORDLIST cust_wl SYNC (ON COMMIT)');
    CREATE INDEX ACCESS_USR_IDX4 ON ACCESS_USR
    (LAST_NAME)
    INDEXTYPE IS CTXSYS.CONTEXT
    PARAMETERS('LEXER cust_lexer WORDLIST cust_wl SYNC (ON COMMIT)');
    The strange thing is that, like I said, If I remove the exists clause the query returns very fast. Also if I modify the query to use only one NOT EXISTS clause and remove the other EXISTS clause it returns in less than one second.  Also if I remove the EXISTS clause and use only the NOT EXISTS  clause it returns in less than 4 seconds. But with both clauses it runs forever!
    When I tried to get dbms_xplan.display_cursor to get the query plan (for the case of both exists and not exists clause in the query), it said that previous statement's sql id was 0 or something like that so that I was not able to see the query plan. I will keep trying to get this plan (it takes 25 minutes to one hour each time but will get this info soon). Again any pointers are most helpful.
    Regards
    OrauserN

  • Performance issue in oracle 11.1.0.7 version

    Hi ,
    In production environment we have some cronjobs are scheduled, they will run every Saturday. One of the cronjob is taking more time to finish the job.
    Previous oracle version is 10.2.0.4, that time it was taking 36hrs to complete it. After upgrading to 11gr1, now it's taking 47hrs some time 50hrs to finish.
    I have asked my production DBA take AWR report after finish the cronjob.
    Now he sent the AWR report, but i don't know how to read it. Can you please help me to read the AWR reports, and i need to give some recommendations to reduce the overall running time.
    I don't know how to attach the AWR report here.
    Please help me on this.
    Thanks
    Shravan Kumar

    Hi,
    Now he sent the AWR report, but i don't know how to read it. Can you please help me to read the AWR reports, and i need to give some recommendations to reduce the overall running time.An't you a DBA? Probably you should seek help of you DBA to read the AWR and mean while you should also have AWR of 10g where this job was running previously so that you can compare the things.
    Did you do a testing before upgrade? you SHOULD have done a thorough testing of your applications/reports before the upgrade and resolve the performance issues before the production upgrade.
    Mean while you do investigation, you can set optimizer_features_enable=10.2.0.4 for only cron job session to check whether you job returns to same 26 hours time
    alter session set optimizer_features_enable='10.2.0.4';Salman

  • Query Performance issue in Oracle Forms

    Hi All,
    I am using oracle 9i DB and forms 6i.
    In query form ,qry took long time to load the data into form.
    There are two tables used here.
    1 table(A) contains 5 crore records another table(B) has 2 crore records.
    The recods fetching range 1-500 records.
    Table (A) has no index on main columns,after created the index on main columns in table A ,the query is fetched the data quickly.
    But DBA team dont want to create index on table A.Because of table space problem.
    If create the index on main table (A) ,then performance overhead in production.
    Concurrent user capacity is 1500.
    Is there any alternative methods to handle this problem.
    Regards,
    RS

    1) What is a crore? Wikipedia seems to indicate that it's either 10,000,000 or 500,000
    http://en.wikipedia.org/wiki/Crore
    I'll assume that we're talking about tables with 50 million and 20 million rows, respectively.
    2) Large tables with no indexes are definitely going to be slow. If you don't have the disk space to create an appropriate index, surely the right answer is to throw a bit of disk into the system.
    3) I don't understand the comment "If create the index on main table (A) ,then performance overhead in production." That seems to contradict the comment you made earlier that the query performs well when you add the index. Are you talking about some other performance overhead?
    Justin

  • Performance issue using webelements and crystal

    We have 2 reports named, u201CDAMAGE_REPORTSu201D AND u201CTDI_CHARTu201D
    DAMAGE_REPORTS
    There are 13 dynamic or static Prompts created using Webelements .After clicking on submit button(using
    webelement)  by selecting the prompt values, TDI_CHART report will get opened below the u201CDAMAGE_REPORTSu201D report.
    TDI_CHART
    TDI_CHART created using free-hand SQL which contains 2 commands
            1. Command-SQL is created based on two categories.
                  Trend -Trend By Month ,Trend By Quarter,Trend By Week
                   Non-Trend- Current Month ,Current Year to Date,Last Year to Date,Current Quarter,Last
                                 Quarter,Current Week,Last Week,Last Month,Last Year Total
                 Charts,Cross-tabs and table information is coming from this Query
           2.Image count-contains number of images information based on the prompt selection and it acts as a 
                  URL(opendocument) in the report to open TDI_THUMBNAIL report to display the thumbnail images.
    Report information
    TDI_CHART Report contains 8 charts,4 cross-tabs, summary information showing in table format(Detail
           section) and2 open document links(1.For image count 2.Export to excel(which shows the detail information
            of summary table)
    Description
    If the selection is Non-Trend Value from the Time period parameter , corresponding Chart will be shown along   with table information.(Table information is only required for Non-Trend Values).
    If the Selection is Trend Value from the Time period parameter,the corresponding cross tab and chart will be shown and others will get suppressed.
    Problem Area
    After the prompt selection from u201CDamage_Reportsu201D, TDI_CHART report is taking around 1min 30 sec to show the chart and table or cross-tab.
    In Database when we execute the above queries, it comes in 12 secs but whereas in reports it takes 1min 30 sec,can you guide us some steps to bring down this time?

    hello Mufiza,
    copy the url created at the step "After the prompt selection from u201CDamage_Reports".
    paste this url into a new browser window and press enter.
    what is the time to return this report?...this time should also be 1.5 minutes.
    it sounds like you are using 2 commands in the same report. this will often cause performance issues, just like linking two stored procedures together or linking two disparate datasources together.
    this would not be an issue related to webelements but related to the design of your target report.
    jw

  • Performance Issues on Oracle Database Lite 10.3.0.3

    Hello,
    we have a big problem with one of our customers. He uses Oracle Database Lite in the standalone version. There are about 600 clients running a project with about 20 Publication Items. The customer works in the logistics field, so the Main time where nearly all clients want to sync and get their tours is from 02 AM to 05 AM, so that is the time with the most traffic.
    Everything went well before last week. Suddenly the compose cycle needs (at least between that hours) about ten times longer than before. Normally we had about 40 - 80 seconds, now we have about 300 - 500 average with max values from over 1200 seconds.
    Therefore we have a lot of conflicts and Disconnects on the clients. It is sometimes that bad, that nearly no client can sync successfully.
    We checked our Selects in the publication Items, all are very fast and look good in the explain plan, so that shouldnt be the problem.
    The installation is nearly in the Default state as oracle does when you install Oracle Lite. Are there any standard settings we can change? Does anyone had the same problem already?
    The Machine is a Windows Server 2003 with an Intel Xeon CPU E7-4820 and 4 GB of RAM.
    Of course our customer gets a lot of trouble because of that and we have to improve and fix that as fast as we can.
    Any recommendation or opinions are very welcome.
    If I have to give more Info about somewhat please feel free to ask, I will give it as fast as possible.
    Thanks in advance
    Holger

    Hey,
    many thanks for your proposals. The MGP runs every minute like the default settings are, because our application is a time sensitive. The data have to be very fast on the clients in the nights and thex are only a few minutes before available. I think the parameters are important in environemnts where the mgps runs only after a few minutes?
    Let me summarize the situation since my las post:
    We have days (nights) where everything goes quite well. Mainly that is thrusday and friday. But on the other hand, there are days where everything really is a mess.
    The mgp caycles increase and when you look to mobile manager you see 70 clients syncing very very slowly (about 300 - 600 seconds) for just a little bit of data. Then we get the disonnects and the messages in the err.log. 
    What do you think, is this somehow network related, or ist this a logical problem in the Mobile Server itself? 
    Like postes earlier, there are 500 clients syncing against a standalone mobile server.
    We just couldnt figure out, why the mgp times somehow and sometimes increase that much, that there are these problems.
    First we thought, that they sync newly over wireless (GPRS or Edge) and that syncing is that slowly, that everything goes down, but arent sure. Is this possible because of the architecture of the Mobile Server? That a very slow network can slow down the mgps and that does timeouts and all the other stuff?
    How many clients can a Standalone Mobile Server normally serve at same time without performance problems. What do you thin about the hardware I wrote? Is it powerful enough?

  • SQL Performance issue: Using user defined function with group by

    Hi Everyone,
    im new here and I really could need some help on a weird performance issue. I hope this is the right topic for SQL performance issues.
    Well ok, i create a function for converting a date from timezone GMT to a specified timzeone.
    CREATE OR REPLACE FUNCTION I3S_REP_1.fnc_user_rep_date_to_local (date_in IN date, tz_name_in IN VARCHAR2) RETURN date
    IS
    tz_name VARCHAR2(100);
    date_out date;
    BEGIN
    SELECT
    to_date(to_char(cast(from_tz(cast( date_in AS TIMESTAMP),'GMT')AT
    TIME ZONE (tz_name_in) AS DATE),'dd-mm-yyyy hh24:mi:ss'),'dd-mm-yyyy hh24:mi:ss')
    INTO date_out
    FROM dual;
    RETURN date_out;
    END fnc_user_rep_date_to_local;The following statement is just an example, the real statement is much more complex. So I select some date values from a table and aggregate a little.
    select
    stp_end_stamp,
    count(*) noi
    from step
    where
    stp_end_stamp
    BETWEEN
    to_date('23-05-2009 00:00:00','dd-mm-yyyy hh24:mi:ss')      
    AND
    to_date('23-07-2009 00:00:00','dd-mm-yyyy hh24:mi:ss')
    group by
    stp_end_stampThis statement selects ~70000 rows and needs ~ 70ms
    If i use the function it selects the same number of rows ;-) and takes ~ 4 sec ...
    select
    fnc_user_rep_date_to_local(stp_end_stamp,'Europe/Berlin'),
    count(*) noi
    from step
    where
    stp_end_stamp
    BETWEEN
    to_date('23-05-2009 00:00:00','dd-mm-yyyy hh24:mi:ss')      
    AND
    to_date('23-07-2009 00:00:00','dd-mm-yyyy hh24:mi:ss')
    group by
    fnc_user_rep_date_to_local(stp_end_stamp,'Europe/Berlin')I understand that the DB has to execute the function for each row.
    But if I execute the following statement, it takes only ~90ms ...
    select
    fnc_user_rep_date_to_gmt(stp_end_stamp,'Europe/Berlin','ny21654'),
    noi
    from
    select
    stp_end_stamp,
    count(*) noi
    from step
    where
    stp_end_stamp
    BETWEEN
    to_date('23-05-2009 00:00:00','dd-mm-yyyy hh24:mi:ss')      
    AND
    to_date('23-07-2009 00:00:00','dd-mm-yyyy hh24:mi:ss')
    group by
    stp_end_stamp
    )The execution plan for all three statements is EXACTLY the same!!!
    Usually i would say, that I use the third statement and the world is in order. BUT I'm working on a BI project with a tool called Business Objects and it generates SQL, so my hands are bound and I can't make this tool to generate the SQL as a subselect.
    My questions are:
    Why is the second statement sooo much slower than the third?
    and
    Howcan I force the optimizer to do whatever he is doing to make the third statement so fast?
    I would really appreciate some help on this really weird issue.
    Thanks in advance,
    Andi

    Hi,
    The execution plan for all three statements is EXACTLY the same!!!Not exactly. Plans are the same - true. They uses slightly different approach to call function. See:
    drop table t cascade constraints purge;
    create table t as select mod(rownum,10) id, cast('x' as char(500)) pad from dual connect by level <= 10000;
    exec dbms_stats.gather_table_stats(user, 't');
    create or replace function test_fnc(p_int number) return number is
    begin
        return trunc(p_int);
    end;
    explain plan for select id from t group by id;
    select * from table(dbms_xplan.display(null,null,'advanced'));
    explain plan for select test_fnc(id) from t group by test_fnc(id);
    select * from table(dbms_xplan.display(null,null,'advanced'));
    explain plan for select test_fnc(id) from (select id from t group by id);
    select * from table(dbms_xplan.display(null,null,'advanced'));Output:
    PLAN_TABLE_OUTPUT
    Plan hash value: 47235625
    | Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT   |      |    10 |    30 |   162   (3)| 00:00:02 |
    |   1 |  HASH GROUP BY     |      |    10 |    30 |   162   (3)| 00:00:02 |
    |   2 |   TABLE ACCESS FULL| T    | 10000 | 30000 |   159   (1)| 00:00:02 |
    Query Block Name / Object Alias (identified by operation id):
       1 - SEL$1
       2 - SEL$1 / T@SEL$1
    Outline Data
      /*+
          BEGIN_OUTLINE_DATA
          FULL(@"SEL$1" "T"@"SEL$1")
          OUTLINE_LEAF(@"SEL$1")
          ALL_ROWS
          OPTIMIZER_FEATURES_ENABLE('10.2.0.4')
          IGNORE_OPTIM_EMBEDDED_HINTS
          END_OUTLINE_DATA
    Column Projection Information (identified by operation id):
       1 - (#keys=1) "ID"[NUMBER,22]
       2 - "ID"[NUMBER,22]
    34 rows selected.
    SQL>
    Explained.
    SQL>
    PLAN_TABLE_OUTPUT
    Plan hash value: 47235625
    | Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT   |      |    10 |    30 |   162   (3)| 00:00:02 |
    |   1 |  HASH GROUP BY     |      |    10 |    30 |   162   (3)| 00:00:02 |
    |   2 |   TABLE ACCESS FULL| T    | 10000 | 30000 |   159   (1)| 00:00:02 |
    Query Block Name / Object Alias (identified by operation id):
       1 - SEL$1
       2 - SEL$1 / T@SEL$1
    Outline Data
      /*+
          BEGIN_OUTLINE_DATA
          FULL(@"SEL$1" "T"@"SEL$1")
          OUTLINE_LEAF(@"SEL$1")
          ALL_ROWS
          OPTIMIZER_FEATURES_ENABLE('10.2.0.4')
          IGNORE_OPTIM_EMBEDDED_HINTS
          END_OUTLINE_DATA
    Column Projection Information (identified by operation id):
       1 - (#keys=1) "TEST_FNC"("ID")[22]
       2 - "ID"[NUMBER,22]
    34 rows selected.
    SQL>
    Explained.
    SQL> select * from table(dbms_xplan.display(null,null,'advanced'));
    PLAN_TABLE_OUTPUT
    Plan hash value: 47235625
    | Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT   |      |    10 |    30 |   162   (3)| 00:00:02 |
    |   1 |  HASH GROUP BY     |      |    10 |    30 |   162   (3)| 00:00:02 |
    |   2 |   TABLE ACCESS FULL| T    | 10000 | 30000 |   159   (1)| 00:00:02 |
    Query Block Name / Object Alias (identified by operation id):
       1 - SEL$F5BB74E1
       2 - SEL$F5BB74E1 / T@SEL$2
    Outline Data
      /*+
          BEGIN_OUTLINE_DATA
          FULL(@"SEL$F5BB74E1" "T"@"SEL$2")
          OUTLINE(@"SEL$2")
          OUTLINE(@"SEL$1")
          MERGE(@"SEL$2")
          OUTLINE_LEAF(@"SEL$F5BB74E1")
          ALL_ROWS
          OPTIMIZER_FEATURES_ENABLE('10.2.0.4')
          IGNORE_OPTIM_EMBEDDED_HINTS
          END_OUTLINE_DATA
    Column Projection Information (identified by operation id):
       1 - (#keys=1) "ID"[NUMBER,22]
       2 - "ID"[NUMBER,22]
    37 rows selected.

  • Performance issues using JavaFX on different notebooks

    Hello,
    unfortunately i feel forced to ask a question about performance issues. As far as i understood, most of the problems with JavaFX 2.0 that are discussed here or somewhere else seem to have there roots in a huge count of nodes and/or some kind of animations. In opposition to this I'm writing a business application for the desktop with JavaFX as a Swing-replacement. There are no permanent animations at all and the scene has all in all 200 nodes(measured it with ScenicView) yet. I use no WebView-Nodes.
    The application runs very well on my development computer with 16 GB of RAM, a Intel Corei7 2600K processor and a mid-class AMD grafics device. Also, there are no performance issues on a Core i3 Notebook. As soon as i start the application on my Thinkpad X220 with Core i7-2620M CPU, 8 GB RAM and Intel HD graphics it get's almost unusable. For example, there is a diagramm(see attached screenshot), which is situated in a scrollpane. As soon as i try to pan it, the panning extremely slow(i'd say 2-4 fps). Another example is that hovering buttons is not very responsive. Moving the mouse over a button causes the hover effect 0.3-0.5 seconds after it entered the button. Fading transitions that i use at some places are not smooth as well.
    I made sure that the app is running using a hardware renderer on each computer. Also, i tried to force a fallback to the software renderer using the "-Dprism.order=j2d" switch but it only performed worse.
    So my first question is: Are there known issues with mobile processors/graphic devices of the mentioned type?

    I just tested it with Java 8 ea build 61 and beside the fact that a small amount of css didn't work anymore, it runs very well with this version of Java(/FX). Damn...i hope that some of this performance fixes will be backported to some Java 7 update.

  • Performance issues using multiple CC design programs?

    Hey! I'm Gwidz, and I'm having some performance issues with my adobe programs. I primarily use Photoshop, InDesign and Illustrator for design work. I find that when I have any two of them open, I experience delays in clicking and dragging using my pen tablet, and laggy zooming in/scrolling. This issue disappears when I only have one program open.
    I just bought this laptop to use these programs. Here's the specs:
    Operating system: Windows 8 64 bit
    Processor: 4th gen intel i7 4700HQ
    Ram: 16gb DDR3
    Graphics: NVIDIA GeForce GTX 770M 3GB GDDR5
    Cost me 2000 bucks on amazon, and I'm pretty disappointed in how things are going right now. I definitely don't think it could be a hardware issue, could it?
    I'm using an SSD as my scratch disc, and using the 64 bit versions of all programs that have it. Nothing else running in the background except these programs, and yet still I experience poor performance.
    Admitedly, I'm new to windows 8, and I'm learning everything that I can about it in hopes of resolving this issue.
    If anyone has any advice, any and all is greatly aprpeciated!

    I'm seeing this exact same choppiness and VERY slow response times with the same low use of CPU and memory... WITH JUST ONE APP OPEN!  Illustrator.
    Macbook Retina Pro, 15 inch.
    I've tried with the GPU forced off, and forced on, and on autoswitching.
    I've tried clean reinstalls.  And reboots. Etc.
    This is not hardware related.  It's something utterly flawed with the way Illustrator (and InDesign) draw do things.  They are just grotesquely inefficient.
    The fact that the program/app makes no effort to use more CPU/GPU to speed up responsiveness to the user input is the real indicator of how poorly optimised this code is. 
    After Effects is better.  But it's adaptive degradation STUTTERS grotesquely, and it's actually better to try to turn that off.  Although I'm having a hard time trying to figure out how to turn that off at the moment.. forgotten where I previously found that switch.
    Photoshop is also better. 
    I'm also talking about small files. Nothing in them.  Just start drawing... Stutters... atrocious frame rates for the update of the screen and very poor response rates to input.
    This is 64 bit optimised?  I don't think so.

Maybe you are looking for

  • FPM : how to subscribe buttons event for Dialog box

    Hi All, I am calling a FPM configuration as popup, i have used standard button CLOSE. Now I wanted to assigned my own action to it. How can i achieve this ? As in webdynpro we can use  SUBSCRIBE_TO_BUTTON_EVENT, similarly which method i can use in FP

  • How to deploy ADF applications in Oracle apps

    Hi, I just gone thru demos on ADF rich client applications using jdeveloper 11g.My doubt is how to deploy and use these from oracle apps.Is ADF supported in R12.If yes then could anybody provide me steps to deploy code at unix file system and how to

  • Always in right-hand landscape and won't do revert to portrait or left-hand landscape

    Has anyone had a problem with their i-phone 4 always going to landscape for every App, Safari, SMS, etc. and won't revert back to portrait or landscape for left-handers? I've tried to restart the phone, but it doesn't want to fix itself. I"ve finally

  • IPhone 1.1.3, times out while syncing on windows

    I've had an iPhone for a day now and everything was fine. Now when I transfer files or do anything, in any USB port on my PC even on my USB 2.0 PCI card, it's painfully slow and then times out. No error number, just a message saying it timed out. I'v

  • Bold font in r12

    i wants to have the fonts on the webform of r12 'bold'. sysadmin tried to find out if there is any profile option to change it, but found nothing similar. let us know how to. thanks.