Comparing Top-n queries for performance

I would like to know which version of the query is performance efficient.
Query1: Using analytic functions:
select * from (
select pv.vendor_name, aia.invoice_num
, aia.invoice_date, aia.invoice_amount
,pvs.vendor_site_code,att.name terms
*,row_number() OVER (ORDER BY aia.invoice_id) AS row_num*
from ap_invoices_all aia, po_vendors pv
,po_vendor_sites_all pvs,ap_terms_tl att
where aia.vendor_id = pv.vendor_id
and pv.vendor_id= pvs.vendor_id
and pvs.vendor_site_id = aia.vendor_site_id
and pvs.terms_id=att.term_id
and att.language=userenv('LANG')
and aia.invoice_date between to_date('01-Jan-96','DD-MM-RR')
and to_date('31-Dec-09','DD-MM-RR')
where row_num<1000
Query2: Using Sort and Filter:
select * from (
select pv.vendor_name, aia.invoice_num
, aia.invoice_date, aia.invoice_amount
,pvs.vendor_site_code,att.name terms
from ap_invoices_all aia, po_vendors pv
,po_vendor_sites_all pvs,ap_terms_tl att
where aia.vendor_id = pv.vendor_id
and pv.vendor_id= pvs.vendor_id
and pvs.vendor_site_id = aia.vendor_site_id
and pvs.terms_id=att.term_id
and att.language=userenv('LANG')
and aia.invoice_date between to_date('01-Jan-96','DD-MM-RR')
and to_date('31-Dec-09','DD-MM-RR')
order by aia.invoice_id
where rownum<1000
I have tried to get the 'Explain plan', I dont see cost differences. But there is a difference in the way the operation is performed.
I would like to know which one is efficient, analytic functions or the other way.
Thanks.

Read Hoek's response and the link he posted carefully
If you want to know which of two queries is more efficent you will have to do some work: get execution plans and run metrics to compare the two. The fact that the operations are different suggests one may be more efficient than the other but you need the run metrics to tell.
Don't rely on cost. The cost, bytes, and other execution plan metrics are estimates and may not perform as expected.
The metrics I use to measure queries are run time, disk reads, memory reads, and cpu. The run time is okay but needs the other metrics to support - lower run time consistently is good but the other metrics help explain why. I get the disk reads and memory reads from AUTOTRACE (easier) or tkprof (more work), and CPU usage can come from V$SQL (if you can find the query you're running; sometimes its hard) or again tkprof reports.

Similar Messages

  • Top 10 Queries in Database...

    Hello Guys,
    My boss wants to know the database queries ran in last 10 days. What is the best way to get this informatiom.
    He also wants to know the top 10 heavy quries that took the most cpu resources and time.
    We have database 10g release 2 and OEM is working.
    Please help.
    Regards, Imran

    This information is not available. Oracle does not keep a log of queries. Perhaps it would have been good if you boss had come to you and asked for all of the queries that run over the next 10 days -- that would be more doable.
    Some of the info may be available from grid control. To get the top 10 queries, you can use statspack to take a snapshot, then some time later, take another and run the report. The top 10 queries for that time interval, by various measures, will be in the report.

  • Comparing SELECTs for performance

    I have a long-running function module and through SAT, I've identified its SELECT from BSEG as a potential hotspot and way that I can improve the run time, etc.
    Through some research in SCN, I found I can/should use one of the component tables (BSID) to improve performance, but I don't know *how much* of an improvement it will be.
    Rather than change the code of the FM and transport it to QA just to analyze performance gains, I was hoping there was some sort of tool that I could use to analyze separate code comparatively.
    I thought of making 2 Quickviewer queries (one for BSEG and one for BSID) and then using ST05 to analyze each.  Is there a better way?
    Basically in PRD, I'd like to compare isolated SELECTs for performance to see what gains I could make.
    Thanks
    Jeremy H.

    You can find some interesting discussions linked here, some also talk about index access:
    FAQ's, intros and memorable discussions in the ABAP Testing and Troubleshooting Space
    Regarding your point 4), make sure your WHERE-condition contains as many fields of the index top down without gaps.
    Looking at BSID~4:
    MANDT
    Client
    BUKRS
    Company Code
    REBZG
    Number of the Invoice the Transaction Belongs to
    REBZJ
    Fiscal Year of the Relevant Invoice (for Credit Memo)
    REBZZ
    Line Item in the Relevant Invoice
    KUNNR
    Customer Number
    UMSKS
    Special G/L Transaction Type
    REBZT
    Follow-On Document Type
    MANDT will be included automatically. BUKRS is not very selective (not many distinct values), but you must include it since it is the leading field of the index. REBZG sounds like a selective field, so you can likely use the index effectively by having just BUKRS and REBZG in your WHERE-condition, but the more the better.
    Also have a look at transactions DB05 and TAANA which can give you a good idea about the actual data distribution.
    Thomas

  • Is rank() really better than rownum for top-n-queries?

    Several sources say that for Oracle databases rank() should be used instead of 'rownum <= n' for top-n-queries. But here we have an application, where we a lot of top-n queries are executed on a big table with several million rows and rank() has a quite bad performance. I get much better results when I use a query with rownum <= n but the programmer of the application doesn't want to change it in the software because of those articles about rank() and rownum. I wonder, whether it is possible, to find a better form of the rank()-query or an additional index, that gives me the same performance.
    To explain my case I created the following example (if you try it, be aware that depending on the size of your dba_objects view you might need up to half a gig free space in your tablespace for this example).
    create table big_objects
    as
    select
    ascii(m.alpha)*100000+o.object_id object_id,
    o.owner owner,
    o.object_type,
    m.alpha||'_'||o.object_name object_name,
    sysdate-400+mod(100*object_id+99*ascii(m.alpha),365)+24/(o.object_id+ascii(m.alpha)) created,
    o.status
    from
    (select distinct
    upper(substr(object_name,1,1)) alpha
    from
    sys.dba_objects
    where
    upper(substr(object_name,1,1)) between 'A' and 'Z') m,
    sys.dba_objects o
    order by
    object_name;
    create index bigindex_1 on big_objects (owner, object_type, created);
    analyze table big_objects compute statistics;
    So my table looks a bit like dba_objects but with much more rows and I made a synthetic "created" date which is more similar to my real case, where top-n means a date selection of the newest records from a certain type.
    Here is the size of the segments on an nearly empty 11gR2 database:
    select segment_name, bytes, blocks from sys.dba_segments where segment_name like 'BIG%'
    SEGMENT_NAME BYTES BLOCKS
    BIGINDEX_1 75497472 9216
    BIG_OBJECTS 142606336 17408
    On my database the example table has approx. 1,9 Mio rows:
    select count(*) from big_objects;
    COUNT(*)
    1884246
    and some 1,4% of those rows have owner = 'SYS' and object_type = 'INDEX'
    select
    count(*)
    from big_objects
    where owner = 'SYS'
    and object_type = 'INDEX';
    COUNT(*)
    25896
    But I want to find only the 10 newest indexes for the owner SYS. I think the typical rank() approach would be:
    select
    owner,
    object_type,
    object_name,
    object_id,
    status,
    created
    from
    ( select
    owner,
    object_type,
    object_name,
    object_id,
    status,
    created,
    rank() over (order by created desc) rnk
    from
    big_objects
    where
    owner = 'SYS'
    and object_type = 'INDEX')
    where rnk <= 10
    order by created asc;
    OWNER OBJECT_TYPE OBJECT_NAME OBJECT_ID STATUS CREATED
    SYS INDEX B_COLLELEMIND 6600515 VALID 15.04.2010 19:05:55
    SYS INDEX V_I_WRI$_OPTSTAT_IND_OBJ#_ST 8600466 VALID 15.04.2010 19:09:03
    SYS INDEX G_I_RLS 7100375 VALID 15.04.2010 19:23:55
    SYS INDEX V_I_DIR$SERVICE_UI 8600320 VALID 15.04.2010 19:31:33
    SYS INDEX L_I_TSM_DST2$ 7600308 VALID 15.04.2010 19:36:26
    SYS INDEX L_I_IDL_UB11 7600235 VALID 15.04.2010 19:57:34
    SYS INDEX V_I_VIEWTRCOL1 8600174 VALID 15.04.2010 20:19:21
    SYS INDEX L_I_TRIGGER2 7600162 VALID 15.04.2010 20:31:39
    SYS INDEX L_I_NTAB1 7600089 VALID 15.04.2010 21:35:53
    SYS INDEX B_I_SYN1 6600077 VALID 15.04.2010 22:08:07
    10 rows selected.
    Elapsed: 00:00:00.22
    Execution Plan
    Plan hash value: 2911012437
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1427 | 188K| 1400 (1)| 00:00:17 |
    | 1 | SORT ORDER BY | | 1427 | 188K| 1400 (1)| 00:00:17 |
    |* 2 | VIEW | | 1427 | 188K| 1399 (1)| 00:00:17 |
    |* 3 | WINDOW SORT PUSHED RANK | | 1427 | 79912 | 1399 (1)| 00:00:17 |
    | 4 | TABLE ACCESS BY INDEX ROWID| BIG_OBJECTS | 1427 | 79912 | 1398 (0)| 00:00:17 |
    |* 5 | INDEX RANGE SCAN | BIGINDEX_1 | 1427 | | 9 (0)| 00:00:01 |
    Predicate Information (identified by operation id):
    2 - filter("RNK"<=10)
    3 - filter(RANK() OVER ( ORDER BY INTERNAL_FUNCTION("CREATED") DESC )<=10)
    5 - access("OWNER"='SYS' AND "OBJECT_TYPE"='INDEX')
    Statistics
    1 recursive calls
    0 db block gets
    25870 consistent gets
    0 physical reads
    0 redo size
    1281 bytes sent via SQL*Net to client
    524 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    2 sorts (memory)
    0 sorts (disk)
    10 rows processed
    As from the index only the first two columns are used, all the 25896 records that I found above are read and sorted just to find the ten newest ones. Many unnecessary blocks are read and luckily all needed database blocks were in memory already. In our real case quite often a lot of physical reads are performed, which makes the performance of the application even worse.
    In my following example with a "rownum <= 10" all three columns of the index are used and the number of block gets is much, much smaller than in the rank() example.
    select
    owner,
    object_type,
    object_name,
    object_id,
    status,
    created
    from
    big_objects
    where
    (owner, object_type, created)
    in
    ( select
    owner,
    object_type,
    created
    from
    ( select /*+ first_rows(10) */
    owner,
    object_type,
    created
    from
    big_objects
    where
    owner = 'SYS'
    and object_type = 'INDEX'
    order by
    owner,
    object_type,
    created desc
    where rownum <= 10
    order by created asc;
    OWNER OBJECT_TYPE OBJECT_NAME OBJECT_ID STATUS CREATED
    SYS INDEX B_COLLELEMIND 6600515 VALID 15.04.2010 19:05:55
    SYS INDEX V_I_WRI$_OPTSTAT_IND_OBJ#_ST 8600466 VALID 15.04.2010 19:09:03
    SYS INDEX G_I_RLS 7100375 VALID 15.04.2010 19:23:55
    SYS INDEX V_I_DIR$SERVICE_UI 8600320 VALID 15.04.2010 19:31:33
    SYS INDEX L_I_TSM_DST2$ 7600308 VALID 15.04.2010 19:36:26
    SYS INDEX L_I_IDL_UB11 7600235 VALID 15.04.2010 19:57:34
    SYS INDEX V_I_VIEWTRCOL1 8600174 VALID 15.04.2010 20:19:21
    SYS INDEX L_I_TRIGGER2 7600162 VALID 15.04.2010 20:31:39
    SYS INDEX L_I_NTAB1 7600089 VALID 15.04.2010 21:35:53
    SYS INDEX B_I_SYN1 6600077 VALID 15.04.2010 22:08:07
    10 rows selected.
    Elapsed: 00:00:00.03
    Execution Plan
    Plan hash value: 3360237620
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 10 | 760 | 17 (0)| 00:00:01 |
    | 1 | SORT ORDER BY | | 10 | 760 | 17 (0)| 00:00:01 |
    | 2 | NESTED LOOPS | | | | | |
    | 3 | NESTED LOOPS | | 10 | 760 | 17 (0)| 00:00:01 |
    | 4 | VIEW | VW_NSO_1 | 10 | 200 | 2 (50)| 00:00:01 |
    | 5 | HASH UNIQUE | | 10 | 200 | 4 (25)| 00:00:01 |
    |* 6 | COUNT STOPKEY | | | | | |
    | 7 | VIEW | | 11 | 220 | 3 (0)| 00:00:01 |
    |* 8 | INDEX RANGE SCAN DESCENDING| BIGINDEX_1 | 1427 | 28540 | 3 (0)| 00:00:01 |
    |* 9 | INDEX RANGE SCAN | BIGINDEX_1 | 3 | | 2 (0)| 00:00:01 |
    | 10 | TABLE ACCESS BY INDEX ROWID | BIG_OBJECTS | 3 | 168 | 6 (0)| 00:00:01 |
    Predicate Information (identified by operation id):
    6 - filter(ROWNUM<=10)
    8 - access("OWNER"='SYS' AND "OBJECT_TYPE"='INDEX')
    9 - access("OWNER"="OWNER" AND "OBJECT_TYPE"="OBJECT_TYPE" AND "CREATED"="CREATED")
    Statistics
    1 recursive calls
    0 db block gets
    26 consistent gets
    0 physical reads
    0 redo size
    1281 bytes sent via SQL*Net to client
    524 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    1 sorts (memory)
    0 sorts (disk)
    10 rows processed
    I made this comparison with the Oracle versions 10.2 and 11.2 and the result was more or less the same. How can I change the rank() query in a way that only the small number of really needed blocks are read from the database?

    this was exactly the hint, I was looking for. Generally speaking hints are not the preferred way to go to tune queries. They can have nasty side-effects when data changes.
    Now the rank()-query is similar fast and much better to read than my fast one with three nested SELECTs.
    Your rownum query was needlessly complicated, and could be simplified to:
    select owner, object_type, object_name, object_id, status, created
    from (select owner, object_type, created
          from big_objects
          where owner = 'SYS' and
                object_type = 'INDEX'
          order by created desc)
    where rownum <= 10
    order by created ascand very likely get the same speed.
    One more question. How did you format those sql queries and results. When I copy/paste them into the editor of forums.oracle.com the format allways gets lost.To preserve formatting use {noformat}{noformat} before and after the section you want ot keep formatted.  In general, if you want to see how someone generated an effect, reply to the post and hit the quote original icon.  You will see all the formatting codes used in the original.
    John                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Standard Query for Top 10 queries and Users

    Hi Experts,
    Is there any query which gives the details like ,
    1. Top 10 queries executed in a month
    2. Top 10 users ( By no of queries executed )
    Regards,
    Bhadri M.

    1. Top 10 queries executed in a month
    Use Query 0TCT_MCA1_Q0142.
    In this report you will have to filter variable BI Object to Queries and also it gives stats for the last 30 days, you have have to remove the SAP User exit variable in case you do not want to use the 30 days option. And then you will have to define Condition for Top 10.
    2. Top 10 users ( By no of queries executed )
    Use Query 0TCT_MCA1_Q0141.
    Similarly you have to modify this query.
    -Neelesh

  • SQL queries for finding values in 4 different tables

    I need to have certain queries to find specific data in this table, this is just an example table, but I will use the same ideas for my actual website and database.
    customers (customerID: integer, fName: string, lName: string)
    items (itemID: integer, description: string, price: float)
    orders (orderID: integer, itemID: integer, aID: integer, customerID: integer, date: date)
    addresses (aID: integer, housenum: integer, streetName: string, town:string, state: string, zip:integer)
    Values I need to find are
     List the town, first name, and last name of any customer who has shipped an item to the same town as another customer.
    Return the average amount of money each customer spent in March of 2013. (Note that the answer will be a single number
    List the first and last names of all customers who have had the same item shipped to at least two different addresses.
    List the top two states that have generated the most total revenue and the revenue they generated
    I did try a few different queries, for #3 I tried 
    SELECT customers.fName,
    customers.lName,
    COUNT(orders.itemID) AS `total items with diff address >= 2`
    FROM customers
    JOIN (SELECT customerID,itemID,
    COUNT(DISTINCT aID) AS diff_address
    FROM orders
    GROUP BY orders.itemID
              HAVING diff_address >= 2
             ) AS orders
          ON orders.customerID = customers.customerID 
    but I only got 1 result, and I do not think thats correct.
    Thanks for the help and I appreciate you taking the time to help me

    Why not post the sample data + desired result? Always state what version you are using.
    SELECT lname,A.aID,COUNT(*) cnt  FROM customers C JOIN orders O ON c.Customerid=O.Customerid 
    JOIN address A  ON A.aID=O.aID
    GROUP BY lname,aID
    Sorry  cannot test it right now...
    Best Regards,Uri Dimant SQL Server MVP,
    http://sqlblog.com/blogs/uri_dimant/
    MS SQL optimization: MS SQL Development and Optimization
    MS SQL Consulting:
    Large scale of database and data cleansing
    Remote DBA Services:
    Improves MS SQL Database Performance
    SQL Server Integration Services:
    Business Intelligence

  • How to Find out what are the top 20 queries executed in the system

    Hi Guru's,
    I would like to know how to gather the information regarding the Top 20 queries used in the system per week, by a multicube.
    Note: I am using BI 7.0 and also Statistics are turned on.
    People have provided me the Cube name and table name last time but nothing seems to work.
    I do not have the query names and I just have my multiprovider name and with the help of that, I want to find out what are all the queries which were executed related to that multiprovider.
    Thanks and regards,

    Hi,
    Here is an idea for your request.
    Basically you can create a simple query on multiprovider 0TCT_MC01.
    Filter: you can use a variable for restriction of time ( calday, or calmonth) since you should be interested for a time period.
    Choose following characters into your objects:
    InfoProvider ( 0TCTIFPROV )  - you can create a variable for choosing infoprovider before query runs.
    *Tp.[Type of BI Application Object] 0TCTBISOTYP  = filter this with 'QUERY' or whatever your need is.
    *BI Application Object 0TCTBISBOBJ,  ( this will give you the name of the queries)
    In key figures choose,  Count for BI Appl. (0TCTWTCOUNT).
    (number for query run)
    Create a condition , for top 20.
    Hope this helps.
    Derya

  • I am using i 4 phone. recently I had a problem with my lap top and had formatted hard disk of it. Now I want to use sync data in my iphone back to itune n my lap top. how can I perform this task with out loosing data in my i phone.

    I am using i 4 phone. recently I had a problem with my lap top and had formatted hard disk of it. Now I want to sync data in my iphone back to itune on my lap top. how can I perform this task with out loosing data in my i phone.

    Hey floridiansue,
    Do you have an installed email program such as Microsoft Outlook?  If your email is through an online login, such as Gmail, etc, then one will have to create an email association with a program such as Microsoft Outlook on the PC for this Scan to Email system to function.
    -------------How do I give Kudos? | How do I mark a post as Solved? --------------------------------------------------------
    I am not an HP employee.

  • Requiring several database queries for my GUI - where to put the reads?

    Requiring several database queries for my GUI
    Hi all,
    I am to create a GUI with a couple of drop downs
    These are populated from database queries, as well as the main program reading from the database based on all inputs in the GUI.
    Should I put all database reads into a class as seperate methods.
    e.g,
    one method for the database read to populate the first combo box.
    a second method to take the choice from combobox 1 and read from the database to populate combobox 2
    a third method to then perform the main database read based on GUI selections from the above two methods..
    is this the 'right' way to do it.
    my GUI would then be in a sperate class.
    or should I sperate the 3 database reads into 3 different classes?
    thanks in advance,
    Matt

    BigDaddyLoveHandles wrote:
    walker8 wrote:
    You might also read some info on three tier design using MVC (Model, View, Control) if i recall correctly.
    Here's an article by Martin Fowler on GUI architecture: [http://martinfowler.com/eaaDev/uiArchs.html]
    awesome! that's just what i needed. i haven't read all of it yet but it gives me ideas about the classes i need.
    regards
    walker8

  • Top 10 queries in oracle 9i

    Hi,
    how to get top 10 queries.. then which query is cosuming more cpu.

    I would suggest using statspack (free of cost ! ) and using SQL ordered by gets section to find the top queries consuming maximum CPu. To read about it more refer to performance tuning guide in 9i docs or check spdoc.txt in oracle-home/rdbms/admin
    Regards
    Amit

  • SSRS 2012: The permissions granted to user '' are insufficient for performing this operation. (rsAccessDenied)

    Hello
    Can you please help me with this error that I'm getting with SSRS 2012.  I've searched the forums and I can only find solutions for SQL Server 2008 and not 2012.
    When I try to go to the url on our server
    http://server:port/ReportServer, I get the following error.
    "The permissions granted to user 'WW004\z0008x5e' are insufficient for performing this operation. (rsAccessDenied)". 
    Can you please help me troubleshoot this.  I have not been able to find a solution.
    Andy

    Hi AndyMcV,
    According to your description, when you try to go to the URL
    http://server:port/ReportServer, the error occurred: The permissions granted to user 'WW004\z0008x5e' are insufficient for performing this operation. In fact, reporting Services uses role-based security to grant user access to a report server, and there
    are two types of roles: Item-level roles and System-level roles. On a new installation, only local administrators have access to a report server. In order to grant access to visit the URL
    http://server:port/ReportServer to users, a local administrator must create a role assignment to define the tasks a user can perform. To workaround this issue, please refer to the following steps:
    Start Report Manager by going to URL
    http://server:port/ReportServer.
    Click Site Settings at the top right of the page.
    Click Security in the left pane.
    If a role assignment already exists for the user, click Edit.
    Otherwise, click New Role Assignment. In user, enter the user account.
    Select appropriate access, and then click Apply.
    Besides, if the user need to have access to reports, folders, models and shared data sources, we can assign Item-level roles on the root node (the Home folder) or on specific folders or items.
    For more information about Role Assignments, please refer to the following article:
    http://technet.microsoft.com/en-us/library/aa337471(v=SQL.105).aspx
    If you have any questions, please feel free to let me know.
    Thanks,
    Wendy Fu

  • Data Source Level SRS (SSRS) Issue - Permissions granted to user... are insufficient for performing this operation. (rsAccessDenied)

    I've inherited a bit of a security issue and would appreciate any insight.  
    The bottom line is that I have a user than can run one report from folder "X", but not the report next to it.
    Here is the problem context.  The names are changed to protect the innocent.  Sharepoint is not involved.
    The SSRS Home Folder has Security "Group or User" of "DomainX\SSRS_Browsers"   with Role(s) "Browser"
    "SSRS_Browsers" is an AD group.  The user with the issue (DomainX\UnhappyUser) is a member of this group.
    The user is able to navigate to folder "X" (one level below Home) and run Report "A" successfully.  But, when they try to run report "B", they get: 
    "An error has occurred during report processing. (rsProcessingAborted)  The permissions granted to user "DomainX\UnhappyUser" are insufficient for performing this operation. (rsAccessDenied)
    The difference between report "A" that works, and report "B" that doesn't is that report "B" references a data set from a different data source.
    Both reports reference DataSource1.  The failing report additionally references DataSource2.   The SSRS logs confirm this is where the problem is:
    ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.AccessDeniedException: , Microsoft.ReportingServices.Diagnostics.Utilities.AccessDeniedException: The permissions granted to user 'DomainX\UnhappyUser' are insufficient for performing this operation.;
    processing!ReportServer_0-34!c58!07/16/2014-16:45:41:: e ERROR: An exception has occurred in data set 'DataSource2'. blah blah blah
    Both data sources have "stored" credentials with the same AD user: "DomainX\SSRS_Reports".  Both data sources reference the same instance of SQL Server.  They do have different "Initial Catalog" values.  (DatabaseA
    and DatabaseB).  I can run both reports successfully, but I more authority.
    "SSRS_Reports" is defined as a "Login" user under "Security" in SSMS at the instance level.  The Server Role is "public".
    DatabaseA (which is behind the data source that works) has Security->Users->DomainX\DataBaseA_Readers.   This is an AD group, that includes has "SSRS_Reports" as a member.
    DataBaseA_readers (in SQL Server, at the DatabaseA level) is a member of role db_datareader.
    DataBaseB (which is behind the data source that fails) has Security->Users->DomainX\DataBaseB_Readers.  This is also an AD group, that includes "SSRS_Reports" as a member.
    DataBaseA_readers (in SQL Server, at the DatabaseB level) is a member of role db_datareader.
    Does anyone have any insights as to where my problem may be?
    Thank you.  Sorry for the verbosity.  

    Hi Steve,
    After testing the issue in my local environment, I can reproduce it. The Home Folder has Security for "DomainX\SSRS_Browsers" group with "Browser" Role, the folder “X” and Report “A” security is inherited from its parent item, but the Report “B” Item security
    is not inherited from its parent item. In this way, the DomainX\UnhappyUser has insufficient permission to render the Report “B”.
    So, please try to check the Security page of Report “B” and compare it with Report “A” security settings. If possible, we can click “Revert to Parent Security” button to replace all the defined security settings with the security settings of its parent folder
    ”X”.
    Hope this helps.
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • Top-of-page for list display thru ALV

    Hi All,
    I was suppose to write a detail report thru ALV, this I have handled thru hotspot and in the user_command,I am have the below code.. for ALv I am using FM REUSE_ALV_GRID_DISPLAY
    FORM User_command.
    WHEN '&IC1'.
    PERFORM LIST_DISPLAY using RS_SELFIELD-tabindex.
    ENDFORM.
    FORM LIST_DISPLAY USING    P_INDEX.
    LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 500.
    SET PF-STATUS space.
    SUPPRESS DIALOG.
    Read table g_t_sum index p_index.
    loop at g_t_emp where code = g_t_sum-code and
                          keyfld = g_t_sum-keyfld
      write :/ g_t_emp-pernr, 10(25) g_t_emp-sname.
    endloop.
    ENDFORM.
    The above write statment is not trigerring either top-of-page ot top-od-page during line-selection.
    I have even tried pushing the event and form name into it it_events..
    Kindly suggest how to go about this, I need to get top-of-page for this list-display.
    Thanks in advance
    Regards,
    Mangalagi S V

    Hi All,
    Thanks for all your replies.
    I am not looking at top_of_page for GRID, it's working for me but I need top_of_page for the list display that is for the list which I am generating when the users double click it particular row.
    By default I am getting the below header automatically.
    Dynamic data selection                         1
    Though I have coded the header in top-of-page during line selection since I am writing the list under USER_COMMAND, I thought I will get the header but it's not..
    The FM is attached below..
    Ausgaberoutine mit FB REUSE_ALV_GRID_DISPLAY
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
              i_callback_program          = g_f_repid
              i_callback_pf_status_set    = 'SET_PF_STATUS'
              i_callback_user_command     = 'USER_COMMAND'
              i_callback_top_of_page      = 'TOP_OF_PAGE'
              is_layout                   = g_r_layout
              it_fieldcat                 = g_t_fcat
              i_save                      = 'A'
             is_variant                  = s_variant         "70492INF0039
              is_variant                  = g_f_variant        "70492INF0039
              is_events                   = it_events[]
           TABLES
               t_outtab                    = g_t_sum.
          FORM USER_COMMAND                                             *
         Callbackroutine: Ausgabe Fehlerliste             XDGL9CK069538 *
    FORM USER_COMMAND USING R_UCOMM
                            RS_SELFIELD TYPE SLIS_SELFIELD.
    case r_ucomm.
    when 'OK'.
    WHEN '&IC1'.
    PERFORM LIST_DISPLAY using RS_SELFIELD-tabindex.
    endcase.
    ENDFORM.
    Kindly suggest
    Thanks in advance.
    Regards,
    Mangalagi S V

  • When I tap on Top 25 button for the app store I get a window that says "to many HTTP redirects" it also happens when I tap on the categories button

    When I tap on Top 25 button for the app store I get a window that says "to many HTTP redirects" it also happens when I tap on the categories button

    Restart your device
    Reset All Settings (Settings > General > Reset)
    Backup and Restore
    Do all of those in order - although I almost guarantee you won't need to perform the last step.
    Sounds like your phone is just getting a resource error.

  • DB analysis for performance

    I have been assigned DB analysis for performance/problem detection. What things i should look in statspack report , & what other things i should check for over all analysis.

    From statsPack you can look for
    Top 5 wait events
    wait event section
    Redo log activity
    db file scattered read (I/O)
    sql parse, execution times.
    huge number of execution of same sql in a short duration
    On a Broader Level look for
    Application transaction volumes, response times
    database statistics
    Operating system statistics
    I/O
    Network
    Excessive CPU usage
    Physical I/O
    Non-Oracle Processes
    Oracle Processes
    Oracle CPU Statistics
    Resource bottlenecks on the client process
    usage of dblinks for network bottleneck
    Use OS tools like -- sar, top, prstat, vmstat, etc...
    Use Oracle tools like -- TK Prof, SQL Trace, EM Diagnostic Pack, Stats Pack.

Maybe you are looking for

  • How can I watch purchased TV shows on my analog TV?

    Is there any practical way to watch the TV shows I have purchased from the iTunes store on my analog TV? Correct me if I'm wrong, but I don't believe AppleTV is an option for me because it outputs to digital TVs, only, right? I am willing to go eithe

  • ITunes U, iPad, and PDFs

    Is any one viewing content from their iTunes U private site on the iPad? Videos work properly but PDFs get an error and won't download (iPad 2).

  • Registering JOBS in OEM

    Hello everybody ! I4m writing because I4m having problems when I try to execute a JOB in OEM that I registered with OWB. If I run this script(OWB MAP) from OWB it works and populate the table perfectly. But when I try to run this same thing, but now

  • Creating a Function logic for dynamically created XML buttons

    Hi! It's me...... again! Now I've dynamically created some buttons using XML. They're spread around the stage and I've modified a tooltip script to give each button a tooltip on Mouse_Over. But to se the logic and make it work using AS3 is hard (for

  • Lvm voltage input problem

    Hi there, I am trying to import a simple voltage profile in a lvm file (made by a NI 6009 USB DAQ), and run it through a simple rectifier: I attached a pic of the circuit.  If I disconnect the rectifier I do get the correct profile from the voltage.