Slow report caused by 85K record dataset

I'm developing a report that cross validates fields in the Item table, based on criteria-FILTERS. I have 30 such FILTERS.
Item Table is all about Item SKU properties and has Fields like: group, category, colour, price, cost, brand,class, etc
Filters should cross validate the fields that has not been set properly, for example: For category field = ABC , group field <> class field.
The output of each filter expected to be 5-50 records (possible mismatches) 
My initial plan was
Use full  big single  dataset -  85K records x 20 fields  from  Item table NOT FILTERED
Create 30 Tablixes in the report and APPLY FILTERS on Tablix level 
After  creating 3 tablixes with filters, my report 's become very slow.
QUESTION: for the better performance is it better to use 1 big dataset, 30 tablixes will reuse this dataset but apply own filters , each filter expected to be 5-50 records (my initial plan).
OR create 30 datasets and each dataset would return  5-50 records ???

Hi BrBa,
As per my understanding, I think the second plan that create 30 datasets and each dataset returns 5-50 records can improve the report performance. The reasons are as follows:
There are 85k records in your database, while only about 1000 records are needed. If we use the first plan, we should add a lot of filters on the tablix. This would spend much more time than directly filter the values using SQL server database engine.
Additional, if you need all 85k records, maybe the first pane would be better. Because SQL server database engine can quickly retrieve the data using table scan, it still needs a lot of filters on the tablix. But in the second plan, it needs good enough
quick search method. This would depends on your data.
The following document about Troubleshooting Reports: Report Performance is for your reference:
http://technet.microsoft.com/en-us/library/bb522806(v=sql.105).aspx
If there are any other questions, please feel free to ask.
Regards,
Katherine Xiong
Katherine Xiong
TechNet Community Support

Similar Messages

  • Better user experience for slow reports (loading in background, progressbar

    Hi
    In our application, some reports take a long time till they are displayed. Therefore it would be nice, if i could provide the user with some feedback (example: progressbar). Is it possible to have this? Upon print, when a pdf file is being constructed (in web) we already have such functionality in place, is it possible to have it generally?
    Mayb,e it would also be possible to have the report load the first page quickly, so the user has already something to look at, and load all the other needed data in a background thread. (i dont think it is possible, however, somebody may have an idea)
    Does anybody have an idea how we could achieve a better user experience for our reports. Any help is appreciated. Thanks.
    Greetings
    I am using:
    Crystal Reports 2008 (in Asp.net, Windows Forms)
    Version .NET 3.5 (SP1)
    PS: of course a very fast report would be the finest solution. However, i guess this will not be possible with our reports and the volume of data they access

    Hi Daniel,
    Crystal Report 2008 we have a inbuilt functionality of progress bar .If you are not getting progress bar for every report that means those reports are not taking to much time.
    For more info regarding progressbar  this check this link:
    [https://boc.sdn.sap.com/node/8035]
    Look for processingIndicatorDelay and processingIndicatorText.
    If you want to improve performance of report then we need to keep in mind few thing while creating report in Crystal report designer:
    Here are a few points related to performance issue .
    The performance of a report is related to:
    External factors:
    1. The amount of time the database server takes to process the SQL query.
    ( Crystal Reports send the SQL query to the database, the database process it, and returns the data set to Crystal Reports. )
    2. Network traffics.
    3. Local computer processor speed.
    ( When Crystal Reports receives the data set, it generates a temp file to further filter the data when necessary, as well as to group, sort, process formulas, ... )
    4. The number of records returned
    ( If a SQL query returns a large number of records, it will take longer to format and display than if was returning a smaller data set.)
    Report design:
    1. Where is the Record Selection evaluated?
    Ensure your Record Selection Formula can be translated in SQL, so the data can be filter down on the server, otherwise the filtering will be done in a temp file on the local machine which will be much slower.
    They have many functions that cannot be translated in SQL because they may not have a standard SQL for it.
    For example, control structure like IF THEN ELSE cannot be translated into SQL. It will always be evaluated
    in Crystal Reports. But if you use an IF THEN ELSE on a parameter, it will convert the result of the condition to
    SQL, but as soon as uses database fileds in the conditions it will not be translated in SQL.
    2. How many subreports the report contains and in section section they are located.
    Minimise the number of subreports used, or avoid using subreports if possible because
    subreports are reports within a report, and if you have a subreport in a details section, and the report returns 100
    records, the subreport will be evaluated 100 times, so it will query the database 100 times. It is often the biggest
    factor why a report takes a long time to preview.
    3. How many records will be returned to the report.
    Large number of records will slow down the preview of the reports. Ensure you only returns the necessary data on the report, by creating a Record Selection Formula, or basing your report off a Stored Procedure, or a Command Object that only returns the desired data set.
    4. Do you use the special field "Page N of M", or "TotalPageCount"
    When the special field "Page N of M" or "TotalPageCount" is used on a report, it will have to generate each page
    of the report before it displays the first page, therfore it will take more time to display the first page of the report.
    If you want to improve the speed of a report, remove the special field "Page N of M" or "Total Page Count" or formula that uses the function "TotalPageCount". If those aren't use when you view a report it only format the page requested. It won't format the whole report.
    5. Link tables on indexed fields whenever possible.
    6. Remove unused tables, unused formulas, unused running totals from the report.
    7. Suppress unnecessary sections.
    8. For summaries, use conditional formulas instead of running totals when possible.
    9. Whenever possible, limit records through selection, not suppression.
    10. Use SQL expressions to convert fields to be used in record selection instead of using formula functions.
    For example, if you need to concatenate 2 fields together, instead of doing it in a formula, you can create a SQL Expression Field. It will concatenate the fields on the database server, instead of doing in Crystal Reports.
    SQL Expression Fields are added to the SELECT clause of the SQL Query send to the database.
    11. Using one command as the datasource can be faster if you returns only the desired data set. It can be faster if the SQL query written only return the desired data.
    12. Perform grouping on server
    This is only relevant if you only need to return the summary to your report but not the details. It will be faster as less data will be returned to the reports.
    Hope this helps!!
    Regards,
    Shweta

  • Break Column in Group Above Report - Causing Error in Data Groupings

    Since I'm required to designate at least one Break Column in my Group Above report, I created a dummy column in my SELECT statement. I did this so that I could designate the required minimum of at least one break column, but I designated one that won't have any impact on how the report is ordered, because it will be the same value (NULL) for every record. So, my SELECT statement starts out looking something like this:
    SELECT
    NULL break_column,
    column_1 column1_name,
    column_2 column2_name,
    column_3 column3_name,
    column_4 column4_name,
    column_5 column5_name
    I needed for the break column to have no impact on the ordering of the report because I need for the ORDER BY clause to completely control how the report is sorted, w/o any interference by a hard-coded break column. I need this because my intention is to make the ORDER BY clause dynamic, and a hard-coded break column with actual data would supercede the ORDER BY clause, thereby making it static.
    Everything is working correctly with regard to how the report is sorting the records designated as group columns; however, the detail columns are getting all messed up as far as what main record they're grouped under.
    By this I mean that when I designate only one break column, some details may display under the wrong group, where they're not supposed to. For example, each page consists of demographic info. about a specific record on a table, and the details listed under it should be the individual comments that have been made on that record. The issue I'm seeing is that for some records, it's showing comments from not only the record for that group, but it continues to list out comments made for other requests as well, when those comments should be displayed under their own respective records.
    Why is this happening when I designate only one break column, and how can I keep it from doing this?

    Did you get a solution for this?
    I have the same problem.
    Any help would be appreciated.
    Thanks,
    Madhu

  • How to make slow reports fast?

    Hi all,
    How to make slow reports fast? What could be the various reasons and optimizations/solutions?
    Thanks,
    Charles.
    ++++++++++++++++++++++++++++++

    Its an on going process. Couple of steps you will have to follow: Did you perform any SQL trace ..?
            Did you perform any ABAP trace...?
            How much business data these reports are processing.Is there a possibility you can do some changes.
    SQL Trace ( SAP in built tool) will give you a fair idea about each and every SQL statements in your report. And you can anlyze bad ones. And also propse optimized SQL or
    index if needed.
    ABAP Trace(SAP in bulit tool), you can find out amount of ABAP run time thats being elapsed by each and individual abap module.
    Also the amount of business data is every  important. While designing the report alogorithm this is very important factor.

  • URL in email to a report on a specific record

    Hi - I have setup an email notification process that will send a URL to bring the user back to a report for a specific record. The link is bringing me back to the right page, but there are no results for the report.
    How do I go to the page AND run the SQL in my report specific to that record?
    A. Page Process for email:
    declare
    l_body_html varchar2(4000);
    begin
    l_body_html := '<p>A new order, number '||:P21_REQ_ID||' has '||
    'been placed. To review and fulfill this order, click the '||
    'link below.[/p><p>[a href="http://'||OWA_UTIL.GET_CGI_ENV('HTTP_HOST')||
    OWA_UTIL.GET_CGI_ENV('SCRIPT_NAME')||'/f?p='||:APP_ID||':100:::::'||':P21_REQ_ID:'||
    :P21_REQ_ID||'">View Order '||:P21_REQ_ID||
    '</a></p>';
    HTMLDB_MAIL.SEND(
    P_TO => '[email protected]',
    P_FROM => '[email protected]',
    P_BODY => l_body_html,
    P_BODY_HTML => l_body_html,
    P_SUBJ => 'Service Request # '||:P21_REQ_ID);
    end;
    *B. URL after clicking the link in the email (goes to correct page, but no results):*
    http://MyServer:7777/pls/apex/f?p=149:100:3573333726951794:::::P21_REQ_ID:42
    *C. SQL for report on page 100:*
    select     "SR_REQUESTS"."REQ_ID" as "Request ID",
         "SR_REQUESTS"."REQ_NAME" as "REQ_NAME"
    from     "SR_REQUESTS" "SR_REQUESTS"
    where "SR_REQUESTS"."REQ_ID" = :P21_REQ_ID
    Edited by: mterlesky on Oct 7, 2008 1:56 PM

    You have one too many colons in the f?p URL.
    Scott

  • Report for freight condition records

    Dear Freinds
    In my transportation module project, requirement is report for freight condition records.
    We have been created two tables in one access sequence, two tables are: 1. route/ship-to-party 2. route
    They maintained more condition records. They want to see all vondition records in one single report.
    Report based on those two tables. But those two tables are storing in KOMG Structure.
    But price is storing in KONP table. How to fetch both in to repor.
    With regards
    Lakki

    Let us say the condition tables are 001 and 002
    Now you need to go to database tables A001 and A002 in SE16
    Give the name of your condition type for which you want to get all the condition records
    Execute now.
    Now you will get all the condition records for the condition type created for the table say A001
    Hope this solves your problem. You can reward if this helps.

  • Create a Formatted report for a single record

    I am trying to create a report for a single record in a document format instead of row and column format
    For example to list a custome information with list of orders.
    CustomerID ---------------------        Name ------------------------------------
    Address 1 ----------------------         Address 2 ------------------------------
    City --------------------------------        State -------------------------------------
    Zip ---------------------------------
    Order List
    Order 1            Qty          Total Cost
    Order 2            Qty          Total Cost
    We dont have crystal reports setup yet.  I am trying to use report designer...but it is not allowing me to do it.  It creates different group for each row in the query.   Can any one suggest how to do it using report designer or another way in BI 7.0 to create this kind of document.   I want to be able to print this document as pdf or other types.
    Any help is greatly appreciated..
    Thanks

    you can do this both in a formatted report or bex, depending on what kind of an outcome that you are looking for.
    basically, you are first going to present the data in a tabular format and then move the cells around, so the next time you execute the report (analyzer or report designer) it will stay in that format.
    if you are doing it in report designer, first create a query that pulls all required data points and gives them to you in an output as a table.  Then, add that query as a data provider for the formatted report, and you can create additional cells and move the key figures around.  Report designer is a little crude for formatting, but it works
    if you are doing this in BEx Analyzer, then you can do the same thing: create a query and then use the BExGetData formula to pull the required data into required cells
    if you are looking for HIGHLY formatted report (for example you want the output to come out on forms, etc), then you would need to use the Crystal Reports.
    Regardless of what you use for the presentation of the data, the data generation is controlled by the Query itself.  This is one of the tools that SAP is not planning to take away: all the future presentation options will use the query as the data source.
    good luck

  • Crystal Report Formula to select Record  of only MAX Value

    hi Everyone,
    i need a simple crystal report formula to select one department whose recived quantity Maximum.
    for example:
    itemcode    dscription      departmen   op       recived       issue        
      1                   a                ab               2              2              2         
      1                   a                bb              0             2              2          
      1                   a                bc               4             8              2         
      1                   a                cc              2              2              2
    i group by item  the item show just once but i want a formula to show one department who's recived quantity is maximum.i suppress the detail section.and just show the group footer/
    itemcode    dscription      departmen   op       recived       issue        
      1                   a                  bc                 8             14             8 

    Thanks
    Re: Crystal Report Formula to select Record  of only MAX Value
    Abhilash Kumar

  • IR Report to update filtered records that are checked - How To

    Hi,
    (APEX 4.0 on 10g)
    Simply stated, I have a IR Report with the followng
    select
    APEX_ITEM.CHECKBOX(1,empid,DECODE(selected_flag,'Y','CHECKED','') AS SELECTED,
    ename,
    job,
    selected_flag
    FROM emp
    ORDER BY 1
    The Interactive Report returns a 1000 records and none of the rows are selected (i.e. selected_flag is not 'Y'; I filter the report for last name = 'SMITH' which returns 100 rows.
    How do I refer to those or updated the SELECTED_FLAG of the 100 rows with the last name of 'SMITH' to 'Y'?
    Thanks in advance for your response.

    Hi,
    I don't know... it might be too late... but I came across this Problem too.
    The trick is to select the the value of the primary key instead of the checkbox value...
    something like this ...
    select apex_item.checkbox(1, pn_modulid, decode
    (V_SOMEVALUE 'J', 'checked', 'unchecked')) as "V_SOMEVALUE"
    and...
    apex_item.hidden(9,pn_modulid||',1:'||nvl(V_VALUE,'N')||',.... as checks
    in the IR.
    And then in the Process one can do something like this....
    nid NUMBER;
    nanz NUMBER;
    ncount NUMBER;
    vsql VARCHAR2 (32676);
    vvar VARCHAR2 (100);
    vvarray VARCHAR2 (1000);
    TYPE reccheckboxen IS RECORD (
    n_id NUMBER,
    v_varray VARCHAR2 (1000),
    v_varrayneu VARCHAR2 (1000)
    TYPE tapcheckboxen IS TABLE OF reccheckboxen
    INDEX BY BINARY_INTEGER;
    tcheckboxen tapcheckboxen;
    begin
    --this is the value of my array from the hidden select...
    FOR ds IN 1 .. apex_application.g_f09.COUNT
    LOOP
    vvarray := apex_application.g_f09 (ds);
    nid := SUBSTR (vvarray, 1, INSTR (vvarray, ',') - 1);
    tcheckboxen (nid).n_id := nid;
    tcheckboxen (nid).v_varray :=
    SUBSTR (vvarray, INSTR (vvarray, ',') + 1);
    tcheckboxen (nid).v_varrayneu :=
    REPLACE (tcheckboxen (nid).v_varray, 'J', 'N');
    END LOOP;
    FOR c IN 1 .. 7
    LOOP
    vsql :=
    'begin :ncount := '
    || 'apex_application.g_f'
    || LPAD (c, 2, '0')
    || '.count; END;';
    EXECUTE IMMEDIATE vsql
    USING OUT ncount;
    FOR v IN 1 .. ncount
    LOOP
    vsql :=
    'begin :vvar := '
    || 'apex_application.g_f'
    || LPAD (c, 2, '0')
    || '('
    || v
    || '); END;';
    EXECUTE IMMEDIATE vsql
    USING OUT vvar;
    tcheckboxen (vvar).v_varrayneu :=
    REPLACE (tcheckboxen (vvar).v_varrayneu,
    c || ':N',
    c || ':J'
    END LOOP;
    END LOOP;
    IF tcheckboxen.COUNT > 0
    THEN
    FOR verg IN tcheckboxen.FIRST .. tcheckboxen.LAST
    LOOP
    IF tcheckboxen.EXISTS (verg)
    THEN
    IF tcheckboxen (verg).v_varray <>
    tcheckboxen (verg).v_varrayneu
    THEN
    vsql :=
    'Update Table
    set value = :01 where pn_modulid = :id';
    EXECUTE IMMEDIATE vsql
    USING vvalue, id;
    END IF;
    END IF;
    END LOOP;
    END IF;
    end;
    I had 7 Checkboxes to check in my report.
    Works fine.... ;-)

  • SAP BO Report Execution time and Record count

    Hi All,
    We have a requirement to set the limits on report execution time and record count centrally. Can you please help me to identify where exactly we have to define the settings in CMC for BO4.
    Thanks in advance,
    Shalini

    Hi Shalini,
    Please follow these steps, also check in for any more details if any;
    Step 1: Launch CMC
    Step 2: Select Servers
    Step 3: Select Web Intelligence processing Server, right click and Goto Properties
    Step 4: Maximum List Of Values Size (entries) default value is 50000.
    Step 5: Increase this value if your "LOVS" greater than this value.
    Step 6: Save and close.
    Step 7: Restart the server.
    Hope this helps.
    - Ram

  • BLOB field in report causes suppresion of one record

    I am using Crystal Reports 10 connecting to a view in an Oracle 10g database using an Oracle driver connection.
    We have a report that has been in use for sometime that displays the image in a BLOB field in the Report Footer.  A parameter based on a unique ID field allows us to select all data that matches that ID number.  The data is displayed as rows in the Details section.  There is one BLOB field for each unique ID.  We recently noted that the 2nd record in all the datasets fail to display in the report.  Regardless of the sort order used, it is always the 2nd record.   The view returns the proper amount of records, and the report's SQL query, when copied and pasted into a SQL editor, also returns the proper amount of records.  However, the 2nd record fails to display.  If the BOB field is removed from the report, the 2nd record appears.  This behaivor can be reproduced at will.  There are no suppression formulas in the report.
    Anybody have any ideas at what may be causing this to occur?

    Please re-post if this is still an issue to the Data Connectivity - Crystal Reports Forum or purchase a case and have a dedicated support engineer work with you directly

  • IR Report found 1 million record with blob files performance is too slow!

    we are using
    oracle apex 4.2.x
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
    mod_plsql with Apache
    Hardware: HP proliant ML350P
    OS: WINDOWS 2008 R2
    customized content management system developed in apex.when open the IR report have 1 ml rows found and each rows have blob(<5MB as pdf/tiff/bmp/jpg) it will be raising rows in future! but the searching performance is very slow!
    how can increasing the performance?
    how can showing progressing status to user while searching progress going on IR report itself?
    Thanx,
    Ram

    It's impossible to make definitive recommendations on performance improvement based on the limited information provided (in particular the absence of APEX debug traces and SQL execution plans), and lacking knowledge of the application  requirements and access to real data.
    As noted above, this is mainly a matter of data model and application design rather than a problem with APEX.
    Based on what has been made available on apex.oracle.com, taking action on the following points may improve performance.
    I have concerns about the data model. The multiple DMS_TOPMGT_MASTER.NWM_DOC_LVL_0x_COD_NUM columns are indications of incomplete normalization, and the use of the DMS_TOPMGT_DETAILS table hints at an EAV model. Look at normalizing the model so that the WM_DOC_LVL_0x_COD_NUM relationship data can be retrieved using a single join rather than multiple scalar subqueries. Store 1:1 document attributes as column values in DMS_TOPMGT_MASTER rather than rows in DMS_TOPMGT_DETAILS.
    There are no statistics on any of the application tables. Make sure statistics are gathered and kept up to date to enable the optimizer to determine correct execution plans.
    There are no indexes on any of the FK columns or search columns. Create indexes on FK columns to improve join performance, and on searched columns to improve search performance.
    More than 50% of the columns in the report query are hidden and not apparently used anywhere in the report. Why is this? A number of these columns are retrieved using scalar subqueries, which will adversely impact performance in a query processing 1 million+ rows. Remove any unnecessary columns from the report query.
    A number of functions are applied to columns in the report query. These will incur processing time for the functions themselves and context switching overhead in the case of the non-kernel dbms_lob.get_length calls. Remove these function calls from the query and replace them with alternative processing that will not impact query performance, particularly the use of APEX column attributes that will only apply transformations to values that are actually displayed, rather than to all rows processed in the query.
    Remove to_char calls from date columns and format them using date format masks in column attributes.
    Remove decode/case switches. Replace this logic using Display as Text (based on LOV, escape special characters) display types based on appropriate LOVs.
    Remove the dbms_lob.get_length calls. Instead add a file length column to the table, compute the file size when files are added/modified using your application or a trigger, and use this as the BLOB column in the query.
    Searching using the Search Field text box in the APEX interactive report Search Bar generates query like:
    select
    from
      (select
      from
        (...your report query...)
      ) r
      where ((instr(upper("NWM_DOC_REF_NO"), upper(:APXWS_SEARCH_STRING_1)) > 0
      or instr(upper("NWM_DOC_DESC"), upper(:APXWS_SEARCH_STRING_1)) > 0
      or instr(upper("SECTION_NAME"), upper(:APXWS_SEARCH_STRING_1)) > 0
      or instr(upper("CODE_TYPE"), upper(:APXWS_SEARCH_STRING_1)) > 0
      or instr(upper("REF_NUMBER_INDEX"), upper(:APXWS_SEARCH_STRING_1)) > 0
      or instr(upper("DATE_INDEX"), upper(:APXWS_SEARCH_STRING_1)) > 0
      or instr(upper("SUBJECT_INDEX"), upper(:apxws_search_string_1)) > 0
      or instr(upper("NWM_DOC_SERIEL"), upper(:APXWS_SEARCH_STRING_1)) > 0
      or instr(upper("NWM_DOC_DESCRIPTION"), upper(:APXWS_SEARCH_STRING_1)) > 0
      or instr(upper("NWM_DOC_STATUS"), upper(:APXWS_SEARCH_STRING_1)) > 0
      or instr(upper("MIME_TYPE"), upper(:APXWS_SEARCH_STRING_1)) > 0
      or instr(upper("NWM_DOC_FILE_BINARY"), upper(:APXWS_SEARCH_STRING_1)) > 0 ))
      ) r
    where
      rownum <= to_number(:APXWS_MAX_ROW_CNT)
    This will clearly never make use of any available indexes on your table. If you only want users to be able to search using values from 3 columns then remove the Search Field from the Search Bar and only allow users to create explicit filters on those columns. It may then be possible for the optimizer to push the resulting simple predicates down into the inlined report query to make use of indexes on the searched column.
    I have created a copy of your search page on page 33 of your app and created an After Regions page process that will create Debug entries containing the complete IR query and bind variables used so they can be extracted for easier performance analysis and tuning outside of APEX. You can copy this to your local app and modify the page and region ID parameters as required.

  • Passing an dataset to a report causes VB 6 application crash

    The problem is around the crdb_adoplus.dll
    Passing parameters from VB 6 application to Crystal object to generate report.
    Normally if i run the report there is no problem. but if i open any other .net application which uses memory, my application suddenly starts crash down if try to generate same report.
    After some analysis i found that Crystal installer installs crdb_adoplus.dll in C:\Program Files\Common Files\Crystal Decisions\2.0\bin,  if i removed this file the report works correctly withour any error.
    Can anubody help me here to findout its solution, the file is of Crystal Reports database driver for Microsoft ADO.NET.
    This file consums lot of memory
    check the code below
       mC1n.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)}; DefaultDir=" & rParameterTwo
                    mC1n.Open
                    DoEvents
                    iSQLStr = "Select * FROM " & rParameterThree
                    Set rRs1 = mC1n.Execute(iSQLStr)
                    mbojCryTables.SetDataSource rRs1, 3   -----On this line application get crashed.               
    Set rRs1 = Nothing

    Please re-post if this is still an issue to the Legacy Application Development SDKs Forum or purchase a case and have a dedicated support engineer work with you directly

  • SLOW report performance with bind variable

    Environment: 11.1.0.7.2, Apex 4.01.
    I've got a simplified report page where the report runs slowly compared to running the same query in sqldeveloper. The report region is based on a pl/sql function returning a query. If I use a bind variable in the query inside apex it takes 13 seconds to run, and if I hard code a string it takes only a few hundredths of a second. The query returns one row from a table which has 1.6 million rows. Statistics are up-to-date and the columns in the joins and where clause are indexed.
    I've run traces using p_trace=YES from Apex for both the bind variable and hard coded strings. They are below.
    The sqldeveloper explain plan is identical to the bind variable plan from the trace, yet the query runs in 0.0x seconds in sqldeveloper.
    What is it about bind variable syntax in Apex that is causing the bad execution plan? Apex Bug? 11g bug? Ideas?
    tkprof output from Apex trace with bind variable is below...
    select p.master_id link, p.first_name||' '||p.middle_name||' '||p.last_name||' '||p.suffix personname,
    p.gender||' '||p.date_of_birth g_dob, p.master_id||'*****'||substr(p.ssn,-4) ssn, p.status status
    from persons p
    where
       p.person_id in (select ps.person_id from person_systems ps where ps.source_key  like  LTRIM(RTRIM(:P71_SEARCH_SOURCE1)))
    order by 1
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.01          0          1         27           0
    Fetch        2     13.15      13.22      67694      72865          0           1
    total        4     13.15      13.23      67694      72866         27           1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 62  (ODPS_PRIVACYVAULT)   (recursive depth: 1)
    Rows     Row Source Operation
          1  SORT ORDER BY (cr=72869 pr=67694 pw=0 time=0 us cost=29615 size=14255040 card=178188)
          1   FILTER  (cr=72869 pr=67694 pw=0 time=0 us)
          1    HASH JOIN RIGHT SEMI (cr=72865 pr=67694 pw=0 time=0 us cost=26308 size=14255040 card=178188)
          1     INDEX FAST FULL SCAN IDX$$_0A300001 (cr=18545 pr=13379 pw=0 time=0 us cost=4993 size=2937776 card=183611)(object id 68485)
    1696485     TABLE ACCESS FULL PERSONS (cr=54320 pr=54315 pw=0 time=21965 us cost=14958 size=108575040 card=1696485)
    Rows     Execution Plan
          0  SELECT STATEMENT   MODE: ALL_ROWS
          1   SORT (ORDER BY)
          1    FILTER
          1     HASH JOIN (RIGHT SEMI)
          1      INDEX   MODE: ANALYZED (FAST FULL SCAN) OF
                     'IDX$$_0A300001' (INDEX)
    1696485      TABLE ACCESS   MODE: ANALYZED (FULL) OF 'PERSONS' (TABLE)
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      db file scattered read                       1276        0.00          0.16
      db file sequential read                       812        0.00          0.02
      direct path read                             1552        0.00          0.61
    ********************************************************************************Here's the tkprof output with a hard coded string:
    select p.master_id link, p.first_name||' '||p.middle_name||' '||p.last_name||' '||p.suffix personname,
    p.gender||' '||p.date_of_birth g_dob, p.master_id||'*****'||substr(p.ssn,-4) ssn, p.status status
    from persons p
    where
       p.person_id in (select ps.person_id from person_systems ps where ps.source_key  like  LTRIM(RTRIM('0b')))
    order by 1
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.02       0.04          0          0          0           0
    Execute      1      0.00       0.00          0          0         13           0
    Fetch        2      0.00       0.00          0          8          0           1
    total        4      0.02       0.04          0          8         13           1
    Misses in library cache during parse: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 62  (ODPS_PRIVACYVAULT)   (recursive depth: 1)
    Rows     Row Source Operation
          1  SORT ORDER BY (cr=10 pr=0 pw=0 time=0 us cost=9 size=80 card=1)
          1   FILTER  (cr=10 pr=0 pw=0 time=0 us)
          1    NESTED LOOPS  (cr=8 pr=0 pw=0 time=0 us)
          1     NESTED LOOPS  (cr=7 pr=0 pw=0 time=0 us cost=8 size=80 card=1)
          1      SORT UNIQUE (cr=4 pr=0 pw=0 time=0 us cost=5 size=16 card=1)
          1       TABLE ACCESS BY INDEX ROWID PERSON_SYSTEMS (cr=4 pr=0 pw=0 time=0 us cost=5 size=16 card=1)
          1        INDEX RANGE SCAN IDX_PERSON_SYSTEMS_SOURCE_KEY (cr=3 pr=0 pw=0 time=0 us cost=3 size=0 card=1)(object id 68561)
          1      INDEX UNIQUE SCAN PK_PERSONS (cr=3 pr=0 pw=0 time=0 us cost=1 size=0 card=1)(object id 68506)
          1     TABLE ACCESS BY INDEX ROWID PERSONS (cr=1 pr=0 pw=0 time=0 us cost=2 size=64 card=1)
    Rows     Execution Plan
          0  SELECT STATEMENT   MODE: ALL_ROWS
          1   SORT (ORDER BY)
          1    FILTER
          1     NESTED LOOPS
          1      NESTED LOOPS
          1       SORT (UNIQUE)
          1        TABLE ACCESS   MODE: ANALYZED (BY INDEX ROWID) OF
                       'PERSON_SYSTEMS' (TABLE)
          1         INDEX   MODE: ANALYZED (RANGE SCAN) OF
                        'IDX_PERSON_SYSTEMS_SOURCE_KEY' (INDEX)
          1       INDEX   MODE: ANALYZED (UNIQUE SCAN) OF 'PK_PERSONS'
                      (INDEX (UNIQUE))
          1      TABLE ACCESS   MODE: ANALYZED (BY INDEX ROWID) OF
                     'PERSONS' (TABLE)

    Patrick, interesting insight. Thank you.
    The optimizer must be peeking at my bind variables with it's eyes closed. I'm the only one testing and I've never passed %anything as a bind value. :)
    Here's what I've learned since my last post:
    I don't think that sqldeveloper is actually using the explain plan it says it is. When I run explain plan in sqldeveloper (with a bind variable) it shows me the exact same plan as Apex with a bind variable. However, when I run autotrace in sqldeveloper, it takes a path that matches the hard coded values, and returns results in half a second. That autotrace run is consistent with actually running the query outside of autotrace. So, I think either sqldeveloper isn't really using bind variables, OR it is using them in some other way that Apex does not, or maybe optimizer peeking works in sqldeveloper?
    Using optimizer hints to tweak the plan helps. I've tried both /*+ FIRST_ROWS */ and /*+ index(ps pk_persons) */ and both drop the query to about a second. However, I'm loath to use hints because of the very dynamic nature of the query (and Tom Kyte doesn't like them either). The hints may end up hurting other variations on the query.
    I also tested the query by wrapping it in a select count(1) from ([long query]) and testing the performance in sqldeveloper and in Apex. The performance in that case is identical with both bind variables and hard coded variables for both Apex and SqlDeveloper. That to me was very interesting and I went so far as to set up two bind variable report regions on the same page. One region wrapped the long query with select count(1) from (...) and the other didn't. The wrapped query ran in 0.01 seconds, the unwrapped took 15ish seconds with no other optimizations. Very strange.
    To get performance up to acceptable levels I have changed my function returning query to:
    1) Set the equality operator to "=" for values without wildcards and "like" for user input with wildcards. This makes a HUGE difference IF no wildcard is used.
    2) Insert a /*+ FIRST_ROWS */ hint when users chose the column that requires the sub-query. This obviously changes the optimizer's plan and improves query speed from 15 seconds to 1.5 seconds even with wildcards.
    I will NOT be hard coding any user supplied values in the query string. As you can probably tell by the query, this is an application where sql injection would be very bad.
    Jeff, regarding your question about "like '%' || :P71_SEARCH_SOURCE1 || '%'". I've found that putting wildcards around values, particularly at the beginning will negate any indexing on the column in question and slows performance even more.
    I'm still left wondering if there isn't something in Apex that is breaking the optimizer "peeking" that Patrick describes. Perhaps something in the way it switches contexts from apex_public_user to the workspace schema?

  • Crystal Reports Causes Application to Hang in crpe32.dll When Viewing Report

    All,
    We have a C# Winform Application that uses Crystal Reports 13.0.9.  In production, our application is intermittently hanging. The crash dump analysis indicates that a Crystal Reports assembly is causing blocked threads (i.e. deadlock).  The results of crash dump analysis from two different workstations and diagnostic information about one of the affected machines is included below.
    When this error occurs, the users are simply trying to view the report.  The database is SQL Server 2012 Express but, the report does not pull data from the database.  Rather, data is pushed to the report via DataSet and Adapter.  The Crystal Runtime is physically installed on the machine (i.e. they are not using a report server).  Unfortunately, our QA and development teams are unable to reproduce this issue in their respective environments.  We have many other users of this application and version of Crystal Reports.  And, this seems to be the only isolated case where the application hangs on the Crystal DLLs.
    Can someone please provide advice and/or feedback on how to interpret and/or further analyze the information in the dump analysis for troubleshooting purposes.  I apologize for putting the dump analysis and diagnostic information in a code block but, it was the only way I could post the information without errors.
    Debug Diagnostic Tool (Dump Analysis)
        Detected a serious critical section related problem in PureService_MINI.dmp
        Lock at crpe32+76f158 is Uninitialized
        Impact analysis
        10.00% of threads blocked
        (Threads 9)
        The following functions are involved in the root cause
        crpe32+13e84
        The following modules are involved in the root cause
        C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\crpe32.dll
        The following vendors were identified for follow up based on root cause analysis
        Unknown vendor for module C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\crpe32.dll
        Please follow up with the vendors identified above
            Report for PureService_MINI.dmp
            Type of Analysis Performed   Hang Analysis
            Machine Name   ADMIN-LSM
            Operating System   Unexpected 
            Number Of Processors   4
            Process ID   3880
            Process Image   C:\Scribble\MarinaOffice.NET\PureService.exe
            System Up-Time   00:00:00
            Process Up-Time   01:03:31
        Top 5 Threads by CPU time
        Note - Times include both user mode and kernel mode for each thread Thread ID: 0     Total CPU Time:
            00:00:31.296 Entry Point for Thread: 0x00000000
            Thread ID: 2     Total CPU Time: 00:00:00.077 Entry Point for Thread: 0x00000000
            Thread ID: 7     Total CPU Time: 00:00:00.015 Entry Point for Thread: 0x00000000
            Thread ID: 5     Total CPU Time: 00:00:00.015 Entry Point for Thread: 0x00000000
            Thread ID: 4     Total CPU Time: 00:00:00.015 Entry Point for Thread: 0x00000000
        NET Analysis Report
              CLR Information
        .NET Threads Summary
        CLR Information
        CLR version = 4.0.30319.34014
        CLR Debugger Extension = C:\Program Files\DebugDiag\x86Support\Exts\psscor4.dll
            .NET Threads Summary
            Failed to request ThreadStore
            Locked critical section report
            Critical Section    crpe32+76f158 
            Lock State   Uninitialized
            Lock Count   1
            Recursion Count   1
            Entry Count   0
            Contention Count   0
            Spin Count   33556432
            Owner Thread System ID   7988 (not present in dump)
        Thread report
            Thread 0 - System ID 7988
            Entry point   0x00000000
            Create time   10/8/2014 2:33:00 PM
            Time spent in user mode   0 Days 00:00:24.687
            Time spent in kernel mode   0 Days 00:00:06.609
        This thread is not fully resolved and may or may not be a problem. Further analysis of these threads may be required.
        .NET Call Stack
        Function
            System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG ByRef)
            System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG ByRef)
            System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG ByRef)
        Full Call Stack
        Function   Source
        ntdll!NtWaitForSingleObject+c
        KERNELBASE!WaitForSingleObjectEx+99
        KERNELBASE!WaitForSingleObject+12
        dtsagent+3376d   
        sacommlayer+965c   
        clientdoc+31995   
        clientdoc+10961   
        clientdoc+10b14   
        clientdoc+27b07   
        clr!JIT_MonExitWorker+a
        0x03eb1310   
        0x09146f40   
        0x114496b4   
        0x114bf320   
        Back to Top
        Thread 1 - System ID 4672
        Entry point   0x00000000
        Create time   10/8/2014 2:33:00 PM
        Time spent in user mode 0 Days 00:00:00.00
        Time spent in kernel mode   0 Days 00:00:00.00
        Function   Source
        ntdll!NtWaitForMultipleObjects+c
        KERNELBASE!WaitForMultipleObjectsEx+dc
        clr!DebuggerRCThread::MainLoop+98
        clr!DebuggerRCThread::ThreadProc+cb
        clr!DebuggerRCThread::ThreadProcStatic+b9
        kernel32!BaseThreadInitThunk+e
        ntdll!__RtlUserThreadStart+20
        ntdll!_RtlUserThreadStart+1b
        Back to Top
        Thread 2 - System ID 7832
        Entry point   0x00000000
        Create time   10/8/2014 2:33:00 PM
        Time spent in user mode 0 Days 00:00:00.062
        Time spent in kernel mode   0 Days 00:00:00.015
        .NET Call Stack
        Function
        Full Call Stack
        Function   Source
        ntdll!NtWaitForMultipleObjects+c
        KERNELBASE!WaitForMultipleObjectsEx+dc
        clr!WKS::WaitForFinalizerEvent+be
        clr!WKS::GCHeap::FinalizerThreadWorker+6e
        clr!ManagedThreadBase_DispatchInner+67
        clr!ManagedThreadBase_DispatchMiddle+82
        clr!ManagedThreadBase_DispatchOuter+5b
        clr!WKS::GCHeap::FinalizerThreadStart+198
        clr!Thread::intermediateThreadProc+4d
        kernel32!BaseThreadInitThunk+e
        ntdll!__RtlUserThreadStart+20
        ntdll!_RtlUserThreadStart+1b
        Back to Top
        Thread 3 - System ID 4668
        Entry point   0x00000000
        Create time   10/8/2014 2:33:01 PM
        Time spent in user mode 0 Days 00:00:00.00
        Time spent in kernel mode   0 Days 00:00:00.00
        .NET Call Stack
        Function
        Full Call Stack
        Function   Source
        ntdll!NtDelayExecution+c
        KERNELBASE!SleepEx+8a
        clr!ThreadpoolMgr::TimerThreadFire+3e
        clr!ThreadpoolMgr::TimerThreadStart+6b
        kernel32!BaseThreadInitThunk+e
        ntdll!__RtlUserThreadStart+20
        ntdll!_RtlUserThreadStart+1b
        Back to Top
        Thread 4 - System ID 4020
        Entry point   0x00000000
        Create time   10/8/2014 2:33:01 PM
        Time spent in user mode 0 Days 00:00:00.015
        Time spent in kernel mode   0 Days 00:00:00.00
        Function   Source
        ntdll!NtRemoveIoCompletion+c
        KERNELBASE!GetQueuedCompletionStatus+44
        System_Data!SNIAsyncWait+71
        kernel32!BaseThreadInitThunk+e
        ntdll!__RtlUserThreadStart+20
        ntdll!_RtlUserThreadStart+1b
        Back to Top
        Thread 5 - System ID 7308
        Entry point   0x00000000
        Create time   10/8/2014 2:33:01 PM
        Time spent in user mode 0 Days 00:00:00.00
        Time spent in kernel mode   0 Days 00:00:00.015
        Function   Source
        ntdll!NtWaitForMultipleObjects+c
        KERNELBASE!WaitForMultipleObjectsEx+dc
        user32!MsgWaitForMultipleObjectsEx+159
        user32!MsgWaitForMultipleObjects+1f
        GdiPlus!BackgroundThreadProc+4b
        GdiPlus!DllRefCountSafeThreadThunk+10
        kernel32!BaseThreadInitThunk+e
        ntdll!__RtlUserThreadStart+20
        ntdll!_RtlUserThreadStart+1b
        Back to Top
        Thread 6 - System ID 1988
        Entry point   0x00000000
        Create time   10/8/2014 3:28:20 PM
        Time spent in user mode 0 Days 00:00:00.00
        Time spent in kernel mode   0 Days 00:00:00.00
        This thread is not fully resolved and may or may not be a problem. Further analysis of these threads may be required.
        Function   Source
        user32!NtUserGetMessage+c
        user32!GetMessageW+2a
        mfc80u!AfxInternalPumpMessage+18 f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 153 + f
        mfc80u!CWinThread::Run+54 f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 625 + 7
        mfc80u!_AfxThreadEntry+10c f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 126
        msvcr80+29bb   
        msvcr80+2a47   
        ntdll!__RtlUserThreadStart+20
        ntdll!_RtlUserThreadStart+1b
        Back to Top
        Thread 7 - System ID 7596
        Entry point   0x00000000
        Create time   10/8/2014 3:28:20 PM
        Time spent in user mode 0 Days 00:00:00.015
        Time spent in kernel mode   0 Days 00:00:00.00
        This thread is not fully resolved and may or may not be a problem. Further analysis of these threads may be required.
        Function   Source
        user32!NtUserGetMessage+c
        user32!GetMessageW+2a
        mfc80u!AfxInternalPumpMessage+18 f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 153 + f
        mfc80u!CWinThread::Run+54 f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 625 + 7
        mfc80u!_AfxThreadEntry+10c f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 126
        msvcr80+29bb   
        msvcr80+2a47   
        ntdll!__RtlUserThreadStart+20
        ntdll!_RtlUserThreadStart+1b
        Back to Top
        Thread 8 - System ID 2880
        Entry point   0x00000000
        Create time   10/8/2014 3:28:20 PM
        Time spent in user mode 0 Days 00:00:00.00
        Time spent in kernel mode   0 Days 00:00:00.00
        This thread is not fully resolved and may or may not be a problem. Further analysis of these threads may be required.
        Function   Source
        user32!NtUserGetMessage+c
        user32!GetMessageW+2a
        mfc80u!AfxInternalPumpMessage+18 f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 153 + f
        mfc80u!CWinThread::Run+54 f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 625 + 7
        mfc80u!_AfxThreadEntry+10c f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 126
        msvcr80+29bb   
        msvcr80+2a47   
        ntdll!__RtlUserThreadStart+20
        ntdll!_RtlUserThreadStart+1b
        Back to Top
        Thread 9 - System ID 8072
        Entry point   0x00000000
        Create time   10/8/2014 3:28:20 PM
        Time spent in user mode 0 Days 00:00:00.00
        Time spent in kernel mode   0 Days 00:00:00.00
        This thread is not fully resolved and may or may not be a problem. Further analysis of these threads may be required.
        Function   Source
        ntdll!NtWaitForSingleObject+c
        ntdll!RtlpWaitOnCriticalSection+d0
        ntdll!RtlpEnterCriticalSectionContended+a0
        ntdll!RtlEnterCriticalSection+42
        crpe32+13e84   
        crpe32+13ec5
        Crash Dump Analysis (Workstation 2)
        WARNING - DebugDiag was unable to locate debug symbols for crpe32.dll, so the information below may be incomplete.
        Detected possible blocking or leaked critical section at crpe32!MWCleanupProcess+3b3998 owned by thread 0 in PureService.dmp
        Impact of this lock
        9.09% of threads blocked
        (Threads 9)
        The following functions are trying to enter this critical section
        crpe32!Ordinal995+13e84
        The following module(s) are involved with this critical section
        C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\crpe32.dll from SAP BusinessObjects
        The following vendors were identified for follow up based on root cause analysis
        SAP BusinessObjects
        Please follow up with the vendors identified above
        Report for PureService.dmp
            Type of Analysis Performed   Hang Analysis
            Machine Name   ADMIN-LSM
            Operating System   Unexpected 
            Number Of Processors   4
            Process ID   3880
            Process Image   C:\Scribble\MarinaOffice.NET\PureService.exe
            System Up-Time   1 day(s) 04:57:28
            Process Up-Time   01:03:06
        Top 5 Threads by CPU time
            Note - Times include both user mode and kernel mode for each thread Thread ID: 0     Total CPU Time: 00:00:31.296 Entry Point for Thread: 0x00000000
            Thread ID: 2     Total CPU Time: 00:00:00.077 Entry Point for Thread: 0x00000000
            Thread ID: 7     Total CPU Time: 00:00:00.015 Entry Point for Thread: 0x00000000
            Thread ID: 5     Total CPU Time: 00:00:00.015 Entry Point for Thread: 0x00000000
            Thread ID: 4     Total CPU Time: 00:00:00.015 Entry Point for Thread: 0x00000000
        .NET Analysis Report
        CLR Information
        .NET Threads Summary
        CLR Information
        CLR version = 4.0.30319.34014
        CLR Debugger Extension = C:\Program Files\DebugDiag\x86Support\Exts\psscor4.dll
        .NET Threads Summary
            Failed to request ThreadStore
            Locked critical section report
            Critical Section    crpe32!MWCleanupProcess+3b3998 
            Lock State   Locked
            Lock Count   1
            Recursion Count   1
            Entry Count   0
            Contention Count   1
            Spin Count   33556432
            Owner Thread   0
            Owner Thread System ID   7988
        Thread report
        Thread 0 - System ID 7988
            Entry point   0x00000000
            Create time   10/8/2014 2:33:00 PM
            Time spent in user mode   0 Days 00:00:24.687
            Time spent in kernel mode   0 Days 00:00:06.609
        This thread is not fully resolved and may or may not be a problem. Further analysis of these threads may be required.
        .NET Call Stack
        Function
            CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(System.Object ByRef, Int32)
            CrystalDecisions.CrystalReports.Engine.CRPE.PEOpenEngineEx(CrystalDecisions.CrystalReports.Engine.PEEngineOptions ByRef)
            System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG ByRef)
            System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG ByRef)
            System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG ByRef)
        Full Call Stack
        Function   Source
            ntdll!NtWaitForSingleObject+c
            KERNELBASE!WaitForSingleObjectEx+99
            KERNELBASE!WaitForSingleObject+12
            dtsagent+3376d
            sacommlayer!DllGetClassObject+16dc
            clientdoc!DllGetClassObject+2b26b
            clientdoc!DllGetClassObject+a237
            clientdoc!DllGetClassObject+a3ea
            clientdoc!DllGetClassObject+213dd
            clr!JIT_MonExitWorker+a
            0x03eb1310
            0x09146f40
            0x114496b4
            0x114bf320
        Back to Top
        Thread 1 - System ID 4672
            Entry point   0x00000000
            Create time   10/8/2014 2:33:00 PM
            Time spent in user mode   0 Days 00:00:00.00
            Time spent in kernel mode   0 Days 00:00:00.00
        Function   Source
            ntdll!NtWaitForMultipleObjects+c
            KERNELBASE!WaitForMultipleObjectsEx+dc
            clr!DebuggerRCThread::MainLoop+98
            clr!DebuggerRCThread::ThreadProc+cb
            clr!DebuggerRCThread::ThreadProcStatic+b9
            kernel32!BaseThreadInitThunk+e
            ntdll!__RtlUserThreadStart+20
            ntdll!_RtlUserThreadStart+1b
        Back to Top
        Thread 2 - System ID 7832
            Entry point   0x00000000
            Create time   10/8/2014 2:33:00 PM
            Time spent in user mode   0 Days 00:00:00.062
            Time spent in kernel mode   0 Days 00:00:00.015
        .NET Call Stack
        Function
        Full Call Stack
        Function   Source
            ntdll!NtWaitForMultipleObjects+c
            KERNELBASE!WaitForMultipleObjectsEx+dc
            clr!WKS::WaitForFinalizerEvent+be
            clr!WKS::GCHeap::FinalizerThreadWorker+6e
            clr!ManagedThreadBase_DispatchInner+67
            clr!ManagedThreadBase_DispatchMiddle+82
            clr!ManagedThreadBase_DispatchOuter+5b
            clr!WKS::GCHeap::FinalizerThreadStart+198
            clr!Thread::intermediateThreadProc+4d
            kernel32!BaseThreadInitThunk+e
            ntdll!__RtlUserThreadStart+20
            ntdll!_RtlUserThreadStart+1b
        Back to Top
        Thread 3 - System ID 4668
            Entry point   0x00000000
            Create time   10/8/2014 2:33:01 PM
            Time spent in user mode   0 Days 00:00:00.00
            Time spent in kernel mode   0 Days 00:00:00.00
        .NET Call Stack
        Function
        Full Call Stack
        Function   Source
            ntdll!NtDelayExecution+c
            KERNELBASE!SleepEx+8a
            clr!ThreadpoolMgr::TimerThreadFire+3e
            clr!ThreadpoolMgr::TimerThreadStart+6b
            kernel32!BaseThreadInitThunk+e
            ntdll!__RtlUserThreadStart+20
            ntdll!_RtlUserThreadStart+1b
        Back to Top
        Thread 4 - System ID 4020
            Entry point   0x00000000
            Create time   10/8/2014 2:33:01 PM
            Time spent in user mode   0 Days 00:00:00.015
            Time spent in kernel mode   0 Days 00:00:00.00
        Function   Source
            ntdll!NtRemoveIoCompletion+c
            KERNELBASE!GetQueuedCompletionStatus+44
            System_Data!SNIAsyncWait+71
            kernel32!BaseThreadInitThunk+e
            ntdll!__RtlUserThreadStart+20
            ntdll!_RtlUserThreadStart+1b
        Back to Top
        Thread 5 - System ID 7308
            Entry point   0x00000000
            Create time   10/8/2014 2:33:01 PM
            Time spent in user mode   0 Days 00:00:00.00
            Time spent in kernel mode   0 Days 00:00:00.015
        Function   Source
            ntdll!NtWaitForMultipleObjects+c
            KERNELBASE!WaitForMultipleObjectsEx+dc
            user32!MsgWaitForMultipleObjectsEx+159
            user32!MsgWaitForMultipleObjects+1f
            GdiPlus!BackgroundThreadProc+4b
            GdiPlus!DllRefCountSafeThreadThunk+10
            kernel32!BaseThreadInitThunk+e
            ntdll!__RtlUserThreadStart+20
            ntdll!_RtlUserThreadStart+1b
        Back to Top
        Thread 6 - System ID 1988
            Entry point   0x00000000
            Create time   10/8/2014 3:28:20 PM
            Time spent in user mode   0 Days 00:00:00.00
            Time spent in kernel mode   0 Days 00:00:00.00
        Function   Source
            user32!NtUserGetMessage+c
            user32!GetMessageW+2a
            mfc80u!AfxInternalPumpMessage+18 f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 153 + f
            mfc80u!CWinThread::Run+54 f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 625 + 7
            mfc80u!_AfxThreadEntry+10c f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 126
            msvcr80!_callthreadstartex+1b f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 348 + 6
            msvcr80!_threadstartex+66 f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 326 + 5
            kernel32!BaseThreadInitThunk+e
            ntdll!__RtlUserThreadStart+20
            ntdll!_RtlUserThreadStart+1b
        Back to Top
        Thread 7 - System ID 7596
            Entry point   0x00000000
            Create time   10/8/2014 3:28:20 PM
            Time spent in user mode   0 Days 00:00:00.015
            Time spent in kernel mode   0 Days 00:00:00.00
        Function   Source
            user32!NtUserGetMessage+c
            user32!GetMessageW+2a
            mfc80u!AfxInternalPumpMessage+18 f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 153 + f
            mfc80u!CWinThread::Run+54 f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 625 + 7
            mfc80u!_AfxThreadEntry+10c f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 126
            msvcr80!_callthreadstartex+1b f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 348 + 6
            msvcr80!_threadstartex+66 f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 326 + 5
            kernel32!BaseThreadInitThunk+e
            ntdll!__RtlUserThreadStart+20
            ntdll!_RtlUserThreadStart+1b
        Back to Top
        Thread 8 - System ID 2880
            Entry point   0x00000000
            Create time   10/8/2014 3:28:20 PM
            Time spent in user mode   0 Days 00:00:00.00
            Time spent in kernel mode   0 Days 00:00:00.00
        Function   Source
            user32!NtUserGetMessage+c
            user32!GetMessageW+2a
            mfc80u!AfxInternalPumpMessage+18 f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 153 + f
            mfc80u!CWinThread::Run+54 f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 625 + 7
            mfc80u!_AfxThreadEntry+10c f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 126
            msvcr80!_callthreadstartex+1b f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 348 + 6
            msvcr80!_threadstartex+66 f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 326 + 5
            kernel32!BaseThreadInitThunk+e
            ntdll!__RtlUserThreadStart+20
            ntdll!_RtlUserThreadStart+1b
        Back to Top
        Thread 9 - System ID 8072
            Entry point   0x00000000
            Create time   10/8/2014 3:28:20 PM
            Time spent in user mode   0 Days 00:00:00.00
            Time spent in kernel mode   0 Days 00:00:00.00
        This thread is not fully resolved and may or may not be a problem. Further analysis of these threads may be required.
        Function   Source
            ntdll!NtWaitForSingleObject+c
            ntdll!RtlpWaitOnCriticalSection+d0
            ntdll!RtlpEnterCriticalSectionContended+a0
            ntdll!RtlEnterCriticalSection+42
            crpe32!Ordinal995+13e84
            crpe32!Ordinal995+13ec5
        Back to Top
        Thread 10 - System ID 4756
            Entry point   0x00000000
            Create time   10/8/2014 3:36:03 PM
            Time spent in user mode   0 Days 00:00:00.00
            Time spent in kernel mode   0 Days 00:00:00.00
        .NET Call Stack
        Function
        Full Call Stack
        Function   Source
            ntdll!NtWaitForSingleObject+c
            KERNELBASE!WaitForSingleObjectEx+99
            clr!CLRSemaphore::Wait+bf
            clr!ThreadpoolMgr::UnfairSemaphore::Wait+12f
            clr!ThreadpoolMgr::WorkerThreadStart+309
            clr!Thread::intermediateThreadProc+4d
            kernel32!BaseThreadInitThunk+e
            ntdll!__RtlUserThreadStart+20
            ntdll!_RtlUserThreadStart+1b
        System Diagnostic Information
            [System Summary]
            Item Value
            OS Name Microsoft Windows 7 Professional x64
            OS Version 6.1 Service Pack 1 (Build 7601)
            System Name RENTAL
            System Model OptiPlex 760
            System Manufacturer Dell Inc.
            Processor Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz
            BIOS Version DELL   - 15
            IP 192.168.234.4
            Windows Directory C:\Windows
            System Directory C:\Windows\system32
            Locale United States
            User Name Rentals
            Time Zone Central Standard Time
            Total Physical Memory 3933 MB
            Available Physical Memory 1100 MB
            Serial number H2RN5J1
            MAC address 00-23-AE-8D-BD-AD

    Hi Aaaron
    This will be one of those; "works here, not there, what's the diff?". E.g.;
    OS?
    Load?
    Runtime - CR, DB clinet, VC++ and other.
    Printer drivers(?)
    If this is a 32 bit app, use the Modules utility to compare the runtime on a working computer and one that does not work. When doing the comparisons, look at the CR runtime, the db runtime, the VC++ runtime and any other runtime differences.
    Since you are using MS SQL 2012, ensure that the SQL Native 11 client is installed.
    Re. printer drivers, check to see that you are using the latest updates for what ever printer is default or used by the reports. Also, make sure the printer driver is designed for the OS.
    Oh. One more thing. You can attach files here; just click on the "Use advanced editor" link. You will have to rename the file to .txt, then attach. Just sayin - that way you don't have to copy paste
    - Ludek
    Senior Support Engineer AGS Product Support, Global Support Center Canada
    Follow us on Twitter
    Message was edited by: Ludek Uher

Maybe you are looking for

  • Help with a program Option Script

    I need some help writing a Option Frame for a Add-in on my program. The basic thing it will do is to call a KeyListener with a KeyAdapter, wait for a key to be pressed, assign the key that was pressed to an int (i.e. LEFT for e.VK_LEFT) and send it t

  • How to exclude the selction in BW When importing Transaction data from Info provider

    Hi ,   I  am trying to Import data from BW infoprovider to BPC cube through Data manager . It works ok if i select Year 2010-2014,value type. But i have G/L account i want to import from 100000 to 100129 exclude 100130 again include 100131 to 999999

  • Prob installing websphere application server5.0 in solaris9

    Dear all, I got a error message while installing IBM Websphere application server 5.0 in solaris 9. The error says mqm user not found I am pasting the error message here for detailed examination: wmsetup: 25Jul05 20:58:25 ============================

  • JPopupMenu Problem

    Is there an easier way to code a JPopupMenu? I keep having trouble with mine. It does not display the Popup menu correctly when I run the Java program. Here is the code: import java.awt.*; import javax.swing.*; import java.awt.event.*; public class P

  • 2 different emails - Photoshop / Behance

    hello. I bought photoshop with an email but for years I have a Behance account with another email. how do I change email in the cloud that I see my accout Behance but I can also make updates with the other mail address? is it possible? thank you