Filter Priv 15 orders!

Hi all, can I filter priv 15 orders of configuration using ACS 3.3? Suppose I want

"tunnel interface" command to be filtered so that one of my users in private 15 is not able to use this command!

is this possible using acs 3.3?

Trick here is to give all users a priv 15 and then set command authorization set according to your need.

Overlooking priv 15 does not mean that the user will be able to run all the commands. You can set permission set and allow that you want specific orders, the user should be able to run.

That's what you need on IOS device,

Router (config) # username [username] password]

GANYMEDE-host [ip]

radius-server [key] key

AAA new-model

AAA authentication login default group Ganymede + local

AAA authorization exec default group Ganymede + authenticated if

AAA authorization commands 1 default group Ganymede + authenticated if

AAA authorization commands 15 default group Ganymede + authenticated if

AAA authorization config-commands

GBA bring to users/groups at level 15

1. go to the user or to set up groups of ACS

2 down until "settings GANYMEDE +".

3. check "Shell (Exec).

4 check 'Privilege level' and enter '15' in the adjacent field

Please see this link

http://www.Cisco.com/en/us/products/sw/secursw/ps2086/products_configuration_example09186a00808d9138.shtml

Kind regards

~ JG

Note the useful messages

Tags: Cisco Security

Similar Questions

  • FPGA 3rd order butterworth

    Hello

    I want to apply butterworth filter of 3rd order in FPGA. It must be possible to change the type (HP, LP, BP, BS) and run (cuttof freq) settings in FPGA. I found it's butterwort VI in FPGA Palette, but it is not possible to change the type of my host during the race.

    I would like to ask what are the other options to implement the 3rd order butterworth in FPGA?

    Now, my idea is to use the Digital filter design toolkit in reception get coef. Depending on settings and implement the polynom filters multiply and add the block in the FPGA. But I'm not sure about this...

    Hello

    You must modify the constant "low pass" level lowest control. See attached picture - I selected the constant in question.

    Hope this helps

  • Butterworth on Labview 8.6 FPGA filter problem

    Hello

    I was testing the filters of reconfigurable low-pass butterworth on FPGA found from the Finder of example (using Reconfigurable Butterworth filter - R - series.lvproj). This VI generates a sinusoidal signal and passes through a filter of Butterworth. When I put the filter low pass frequency to a low value (~ 2 Hz) and generate a sinusoidal signal of 0.5 Hz filttered out is not so much more (see figure). The filter is 2nd order, so this is a characteristic of the filter? And what do I do if I want a taste of high-frequency and use a low cutoff value?

    v: * {behavior:url(#default#VML) ;}
    O'Bryan: * {behavior:url(#default#VML) ;}
    w\: * {behavior:url(#default#VML) ;}
    . Shape {behavior:url(#default#VML) ;}

    Normal
    0

    fake
    fake
    fake

    MicrosoftInternetExplorer4

    / * Style definitions * /.
    p.MsoNormal, li. MsoNormal, div. MsoNormal
    {"mso-style-parent:" ";"}
    margin: 0 cm;
    margin-bottom: .0001pt;
    MSO-pagination: widow-orphan;
    font-size: 12.0pt;
    do-family: "Times New Roman";
    mso-fareast-font-family: 'Times New Roman' ;}
    @page Section1
    {size: 612.0pt 792.0pt;}
    margin: 72.0pt 89.85pt 72.0pt 89.85pt.
    MSO-header-margin: 35.45pt.
    MSO-footer-margin: 35.45pt.
    MSO-paper-source: 0 ;}
    div. 1
    {page: Section1 ;}}
    --> I'm using Labview FPGA Module version 8.6 and PCI-7833R-map. LabVIEW 8.5, I remember that Butterworth filters, for above and below 2 kHz cutoff frequencies are actually different screws but on LV 8.6 they seem the same.

    / * Style definitions * /.
    table. MsoNormalTable
    {mso-style-name: "Table Normal";}
    MSO-knew-rowband-size: 0;
    MSO-knew-colband-size: 0;
    MSO-style - noshow:yes;
    "mso-style-parent:" ";" "
    MSO-padding-alt: 0 cm 0 cm 5.4pt 5.4pt;
    MSO-para-margin: 0 cm;
    MSO-para-margin-bottom: .0001pt;
    MSO-pagination: widow-orphan;
    do-size: 10.0pt;
    do-family: "Times New Roman";
    MSO-ansi-language: #0400;
    mso-fareast-language: #0400;
    mso-bidi-language: #0400 ;}

    -Heikki

    Hi Heikki,

    The reconfigurable version (IE, with 'See the terminal configuration' checked) does not support the implementation of low-frequency modified. This is because we cannot change the filter architectures running. The nonreconfigurable version, however, must use the same implementation updated him you saw in LabVIEW 8.5 for the low cutoff frequencies, defined here as the frequencies less de.01 * sampling frequency.

    Your example of 100 kech sampling rate. / s and 2 Hz cut-off is pretty extreme, even for the implementation changed. The usual technique for situations like this must be a smoothing downsampling at a rate that is better suited to the break you need. Rational resampling of the FPGA Math palette & analysis is designed for this purpose.

    Kind regards

    Jim

  • Restrict users to query for orders shipped from warehouses

    Hi all

    the requirement for the company is to give access to the sales order to a specific group of users who are responsible for 3 warehouses.  Their job is to ask for specific customer orders and then perform the distribution and reservation and realize.  So I would ask how to proceed?  I thought in the creation of a new responsibility in which I require somehow to filter all sales orders that will be shipped to specific warehouses.

    Any ideas would be very appreciated.

    Thank you in advance.

    George

    Hi George,.

    You can do assignments form Transact orders or reservations form.

    You can also enable automatic allocation to some such steps on the release or the reservation.

    If you give users a two forms above so it will be easy to restrict access to the warehouses in the form of access to the Organization in the inventory.

    Kind regards

    Bashar

  • DVD players - cd do not work after the removal of the Trojan horse. the charge of the agent/gen-rogue virus

    Hello, it struck during the night because when I woke up there were some msgs everywhere telling me I was infected and a center of fake security kept popping up.

    I closed and went into safe mode and ran sas scan I couldn't mbam to work, once the infection has been found I checked for removal and came off of sas and rebooted the pc. Everything seemed okay for a while, except that I had lost my wallpaper and photos and documents. But they were in another file owner and I was able to move them to the owner acct, I'm. Now I wanted to copy my docs and photos on a cd for backup and I get access denied or he'll go as far as the files are ready to write, but they will not write, I don't get an error msg. Just a beep.

    So far I uninstalled and reinstalled the drivers, no help.

    This is info on readers

    Description CD-ROM drive

    Loaded media no.

    Type of CD-ROM media

    Name TSSTcorp CDDVDW SH-S223L

    Manufacturer (Standard CD-ROM drives)

    Status OK

    Transfer rate is not available

    SCSI Target ID 0

    IDE\CDROMTSSTCORP_CDDVDW_SH-S223L___SB02___\3951393847365A43303337313234202020202020 PNP device ID

    Driver c:\windows\system32\drivers\cdrom.sys (5.1.2600.5512 (xpsp.080413 - 2108), 61,50 KB (62 976 bytes), 14/04/2008 02:10)

    Drive E:

    Description CD-ROM drive

    Loaded media no.

    Type of CD-ROM media

    Name ATAPI iHAS524 B

    Manufacturer (Standard CD-ROM drives)

    Status OK

    Transfer rate is not available

    ID of target SCSI 1

    IDE\CDROMATAPI_IHAS524___B___AL2A___\3533343234332033413331383234303539303737 PNP device ID

    Driver c:\windows\system32\drivers\cdrom.sys (5.1.2600.5512 (xpsp.080413 - 2108), 61,50 KB (62 976 bytes), 14/04/2008 02:10)

    If I could I would just reinstall the OS, but it is a built-in computer and I don't know how.

    Thank you in advance and any help is appreciated.

    running xp home, svc pk 3, ie 8, updated, have no idea of what kind of computer, it is, but if you need information sys, I stick it in the next reply.

    Thanks for the reply. Sorry, it took more time to get back to you. My meeting lasted a little longer than expected.

    Please can you me what burning software, if any, you have installed? Uninstall it.

    Then, download ImgBurn from HERE. Once installed open ImgBurn > tools > filter Drive load order. When the list appears, click to select each driver filter and then click 'remove the selected filter '. Follow the instructions. See the image below.

    Edit: Go to my computer > right click on each rom device > properties. Make sure that each player has a tab named "registration". Let me know the results.

  • Windows XP Professional download

    I would like to know where I can get the XP free profeesional download so that I can star above the beginning cuse I did a lot of mistakes on my computer. can someone help me please

    Hi bearskitten93257,

    Please see the link below on how to filter of replacement order.

    http://support.Microsoft.com/kb/326246

    I hope this helps!
    Shawn - Support Engineer - MCP, MCDST
    Microsoft Answers Support Engineer
    Visit our Microsoft answers feedback Forum and let us know what you think

  • No connection network in Windows XP

    Have a laptop HP Pavilion dv6000 which was working fine one day and then the next - absolutely no network connection - either wireless or ethernet (local); even if the two network adapters are installed and have more up-to-date drivers.  In network connections there is nothing - all empty.   If I choose "New connection", going to be the Type of connection network and none of the boxes work.  Not going past this dialog box by clicking next.  Network Connection Wizard does not at all.  Some of the services that have air required to operate the wireless / ethernet - seem not to be installed and running.  Cannot find much googling that helps.

    Anyone have any suggestions on how to get my network without reinstalling XP.

    Hi Tlswift,

    Thanks for the information. Have you tested your relocation still. On a note side please remember that your key would be a good thing for this type of media that has been installed on your system. Which means that if you had retail XP you would need a key of the retail, OEM media you would need an OEM key. Alternatively, you can try to order replacement from Microsoft discs.  Please see the link below on how to filter of replacement order for yourself.

    Filter replacement
    Shawn - Support Engineer - MCP, MCDST
    Microsoft Answers Support Engineer
    Visit our Microsoft answers feedback Forum and let us know what you think

  • Where can I download a driver 64 bit Windows 7 for hp CDDVDW TS-L633N on my cpq60-615DX

    EDIT-

    I forgot to say that I tried to update the driver from the Device Manager device window and the result was a message saying that it could not find a newer driver, installed was correct.

    Another EDIT

    Also, I don't say that I uninstalled the device through Device Manager. After the system restarts, the drive was found and software installed but the problem remains.

    --------------------------------------

    Original message follows:

    System: CPQ60-615DX

    Windows 7 Home Premium 64-bit

    Drive: hp CDDVDW TS-L633N

    Installing Roxio software, Creator 9, a driver unusable, are part of one, has been installed. Now that the device does not work.

    When I see him on the list of devices on Windows Explorer, I went to the Manager of peripheral and found it was marked with the 'problem' icon (exclamation mark on a yellow background).

    In the general tab device status box.

    A driver (service) for this device has been disabled.  Another driver can provide this functionality. (Code 32)

    The following information is displayed for the device:

    HP CDDVDW TS - L633N ATA Device Properties windo

    Driver tab:

    HP CDDVDW TS-L633N ATA Device

    Driver provider: Microsoft
    Driver date: 21/06/2006
    Driver version: 6.1.7601.17514
    Digtal signer: Microsoft Windows

    Driver file details:

    HP CDDVDW TS-L633N ATA Device

    Driver files: c:\Windows\system32\Drivers\cdrom.sys

    Provider of: Microsoft Corporation
    File version: 6.1.7600.16385 (win7_rtm.090713 - 1255)
    Copyright: Microsoft Corporation. All rights reserved.
    Digital signer: Microsoft Windows

    c:\Windows\System32Drivers\PxHlpa64.sys

    Supplier: Sonic Solutions
    File version: 2.03.27a
    Copyright: Copyright 2003 Sonic Software
    Digital signer: not digitally signed

    It seems that the creator installation installed the driver but not one that works. It could be a problem with Windows 7, or the fact that this facility is 64-bit.

    I searched HP website and cannot find a driver for the device. When I look at the list of drivers available for this system, the optical drive is not displayed.

    I downloaded and installed the program to search for the driver HP - or whatever we call it - and he ran. There are no devices listed in tab "Optical Drive" when I looked at the results - he could not 'see' the reader.

    I realize that what I need is probably a generic driver of MS, it is why it is not displayed on the HP site, but how do I find the right one for this unit?

    Is there a generic 'one size fits all' driver for Windows 7 which can fly this aircraft?

    Any help will be greatly appreciated.

    Bob and Simon

    I fixed it.

    I hate when someone post a problem and then when they fix what they post only - it - fixed with no details.

    Here is how he is now.

    Installation, I tried a Sonic product install a driver that is not compatible with Windows 7 64 bit.

    I tried several fixes and the problem remains.

    I then started a search on the name of the driver file Sonic showing details of the driver for the device - PxHlpa64

    I found this page - http://forum.slysoft.com/showthread.php?t=34118

    Scroll through the text (or search for it)

    Remove the problematic filters of your registry:

    2.

    1. create a backup of your registry. See here for how to do it.
    2. download ImgBurn (freeware).
    3. launch ImgBurn and go to tools > filter driver load order...
    4. Select "PxHlpa64". Click to remove the selected filter. Select "ASAPIW2k." Click 'delete the selected filter '. Click OK.
    5 reset.

    I had already installed ImgBurn (it's a great piece of software for CD/DVD that will do anything - it isn't a ripper, it is a CD/DVD burning tool)

    I have the poster said to do and when I rebooted the system, the problem was gone.

    Bob

  • BlackBerry Smartphones where to buy private?

    Hello, I would buy the Priv STV100-2 model number. If someone could direct me to where I can do that would be appreciated!

    ShopBlackBerry.com

    According to your country...

    PRIV PRE-ORDER STARTS TODAY

  • Sign up between 2 tables without correspondence with values and keep the number of rows in the first Table

    Hello Experts,

    I have a problem that is a little tricky. Requirement is if 2 columns (region and Code in the tables below) match exactly, then it is Best Fit, if one of the columns match while it is average in shape, if the two columns do not match then it's worse to adapt.

    Create Table Table1 (varchar2 (10), varchar2 (10) of the filter region, Code varchar2 (10), revenue Number (15), owner varchar2 (5));

    Table1:

    Insert into Table1 values ('Test1', 'Midwest', '0900', 3000286, 'P1')

    Insert into Table1 values ('Test1', 'Midwest', '0899', 36472323, 'P2')

    Insert into Table1 values ('Test1', 'Midwest', '0898', 22472742, "P3")

    Insert into Table1 values ('Test1', 'West', '0901', 375237423, 'P1')

    Insert into Table1 values ('Test1', 'West', '0700', 34737523, null)

    Insert into Table1 values ('Test1', 'West', '0701', 95862077, "P3")

    Insert into Table1 values ('Test1', 'South', '0703', 73438953, 'P4')

    Insert into Table1 values ('Test1', 'South', '0704', 87332089, 'P1')

    Insert into Table1 values ('Test1', 'South', '0705', 98735162, 'P4')

    Insert into Table1 values ('Test1', 'South', '0706', 173894762, "P9")

    Insert into Table1 values ('Test1', 'South', '0902', 72642511, 'P6')

    Create Table Table2 (filter varchar2 (10), region varchar2 (10), Code varchar2 (10), plafond1 Number (15), Limit2 Number (15));

    Table2

    Insert into Table2 Values ('Test1', 'ALL', ' 0902', 15000, 10000)

    Insert into Table2 Values ('Test1', 'ALL', 'ALL', 20000, 12000)

    Insert into Table2 Values ('Test1', 'Midwest' ' 0900', 10000, 5000)

    Insert into Table2 Values ('Test1', 'Midwest', 'ALL', 18000, 8000)

    Insert into Table2 Values ('Test1', 'West', 'ALL', 16000, 6000)

    Insert into Table2 Values ('Test1', 'West', '0901', 10000, 5000)

    Final output

    Filter the income Code region owner plafond1 Limit2

    Test1 0900 3000286 P1 10 000 5 000 - Best Midwest (region because both Code Matches)

    Test1 0899 36472323 P2 Midwest 18 000 8 000 - way (because the region corresponds to only), we consider 'ALL' for the Code

    Test1 0898 22472742 P3 Midwest 18 000 8 000 - way (because the region corresponds to only), we consider 'ALL' for the Code

    Test1 West 0901 375237423 10 000 5 000 - Best P1 (region because both Code Matches)

    Test1 West 0700 34737523 16 000 6 000 - medium (because the area corresponds to only), we consider 'ALL' for the Code

    Test1 West 0701 95862077 P3 16 000 6 000 - way (because the region corresponds to only), we consider 'ALL' for the Code

    Test1 South 0703 73438953 P4 20 000 12 000 - worse (because region both Code DON T Match ' "), we consider option as worst 'ALL', 'ALL '.

    Test1 South 0704 87332089 P1 20 000 12 000 - worse (because region both Code DON T Match ' "), we consider option as worst 'ALL', 'ALL '.

    Test1 South 0705 98735162 P4 20 000 12 000 - worse (because region both Code DON T Match ' "), we consider option as worst 'ALL', 'ALL '.

    Test1 South 0706 173894762 P9 20 000 12 000 - worse (because region both Code DON T Match ' "), we consider option as worst 'ALL', 'ALL '.

    Test1 South 0902 72642511 P6 15 000 10 000 - way (because the Code corresponds to only) we consider 'ALL' for the region

    In the final result, we should have row count equal to Table1, and as soon as there's game (best first, then middle, then the worst), then if is once again, that we should ignore.

    There are other columns in the tables as well.

    Thank you very much!

    As you wish...

    select filter, region, code, region2, code2,
    revenue, owner, limit1, limit2, match
    from (
      select filter, region, code, region2, code2,
      revenue, owner, limit1, limit2, match,
      row_number() over(
        partition by filter, region, code order by match
      ) priority
      from (
        select a.filter, a.region, a.code, a.revenue, a.owner,
        b.region region2, b.code code2, b.limit1, b.limit2,
        case
          when (a.region, a.code) = ((b.region, b.code)) then 'Best'
          when a.region = b.region or a.code = b.code then 'Medium'
          else 'Worst'
        end match
        from table1 a
        join table2 b
        on a.filter = b.filter
        and (b.region, b.code) in (
          (a.region, a.code),
          (a.region, 'ALL'),
          ('ALL', a.code),
          ('ALL', 'ALL')
        )
      )
    )
    where priority = 1
    order by region, code;
    
  • Connect the 7 error after upgrade to link 9

    I just upgraded my test environment to 9 connect successfully, but when I connect I get an error from Adobe Acrobat Connect 7 Profesional. I don't have this when we were on Connect 8. Here is the error message in its entirety

    Adobe Acrobat Connect Professional 7

    error internal error title

    body-error-internal error

    Details of the request:
    ============================
    < mode action "multiple" = >
    < name of the action = "report-my-meetings" >
    < param name = "tri-date-begin" > desc < / param >
    < param name = "filter-expiré" / >
    < param name = 'include-user-count' > false < / param >
    < param name = "filter-type-name" / >
    < order by name = "tri-date-begin" / >
    < order of orientation = "descendant" / >
    < / action >
    < / action > +.


    Details of the response:
    ============================
    < results >
    < status code = "some errors" / >
    < result >
    < status code = 'ok' / >
    < sco - nav >
    < sco sco - id = "470507" type = "tree" icon = "folder" depth = "0" >
    < name > training catalog < / name >
    < / sco >
    < / sco - nav >
    < / result >
    < result >
    < code of State = "internal error" >
    incorrect syntax near 'b' < exception > [Macromedia] [SQLServer JDBC Driver] [SQL Server]. < / exception >
    < / status >
    < / result >
    < / results > +.

    Any ideas as to what could be causing this?

    I contacted Adobe support for help with this issue and I would like to add that we have done to solve this problem of thought incase everything else has a similar problem. The main problems have been resolved when we learned that I did not change the compatibility level of the database when I copied the database to a new server. Once this was changed form SQL 2000 to SQL2008 issues went away. I think that Adobe Connect 9 requires that the database or a SQL 2008 database or later version.

    Right-click on the database and select Properties

    Go to Options and change the level of Compatitbilty to SQL Server 2008 (100)

    Hope this helps

  • Ecommerce custom report

    I want to generate a report that shows a list of orders/purchases a specific product with details...

    -I want to just a specific product

    -It is not matter date, able to export all orders for this product

    -Ideally, it lists how much they paid, over a few basic - name, e-mail contact information, etc...

    for example the data report:

    Product A (assigns one, two, three). ProductARefNumber123; Mr. Smith; [email protected]£4.99

    Product A (three one, attributes); ProductARefNumber123; Ms. Jones, [email protected]£3.99

    Product A (assigns two, three); ProductARefNumber123; Ms. Jones, [email protected]£3.99

    I checked the ecommerce custom report - but it allows to filter a sales order by country or by amount?

    Help...?

    HI Mel,

    Not even promising anything, but there is hope

    Please look out for the next release related ads on our blog.

    m

  • Selectively running Tests

    Hey all,.

    My goal is to build a UI that will present a tree of all my cases/suites available test and that the user can choose which tests they want to run.

    I need a boost in the right direction as to the best way to start a program to build partial test suites while keeping all the functionality of large metadata in my test FU4 adds case. Any suggestions?

    Thank you!
    Brian

    Brian,

    The docs are not to do this again, but if you take a look at the static class application it allows you to catch pieces of classes or filter them in order to create an "application" which is really a sub group of tests.

    For example:

    Request.Method (TestTwo, 'testTwo3')

    Mike

  • Select the last row inserted into the table

    Hello
    I have an app that inserts a line in two columns (stamp that contains the time of creation of the line and a float) each seconde.1. I have another app that bed that reads lateset inserted each seconde.1. I had this on SQL Server where I just chose the DateTime max line and had surgery no clustered index on the datetime column. But since I'm moving this course at Oracle I wanted to know if there is a better way to do it. The table will keep up to 30 days of data is about 26 million lines. So I need this facility where querying for last place among the 26 million lines continue with timer deuxieme.1 of my application.

    Here's my insert:
    Insert in testlog (hz, ctime) values (: hz_value, localtimestamp (2))

    Here is my selection:
    Select hz, ctime testlog where ctime = (select max (ctime) of testlog)

    Thank you

    I would use:

    Select hz, ctime of (select hz, ctime, dense_rank() over (order by desc ctime) rnk of testlog) where rnk = 1;

    For example:

    SQL> explain plan for
      2  select * from emp where empno = (select max(empno) from emp)
      3  /
    
    Explained.
    
    SQL> @?\rdbms\admin\utlxpls
    
    PLAN_TABLE_OUTPUT
    ------------------------------------------------------------------------------------------------------------------------------------
    Plan hash value: 1674692883
    
    ---------------------------------------------------------------------------------------
    | Id  | Operation                    | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
    ---------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT             |        |     1 |    37 |     2   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS BY INDEX ROWID | EMP    |     1 |    37 |     1   (0)| 00:00:01 |
    |*  2 |   INDEX UNIQUE SCAN          | PK_EMP |     1 |       |     0   (0)| 00:00:01 |
    |   3 |    SORT AGGREGATE            |        |     1 |     4 |            |          |
    |   4 |     INDEX FULL SCAN (MIN/MAX)| PK_EMP |    14 |    56 |     1   (0)| 00:00:01 |
    ---------------------------------------------------------------------------------------
    
    PLAN_TABLE_OUTPUT
    ------------------------------------------------------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
       2 - access("EMPNO"= (SELECT MAX("EMPNO") FROM "EMP" "EMP"))
    
    16 rows selected.
    
    SQL> explain plan for
      2  select * from (select e.*,dense_rank() over(order by empno desc) rn from emp e) where rn = 1
      3  /
    
    Explained.
    
    SQL> @?\rdbms\admin\utlxpls
    
    PLAN_TABLE_OUTPUT
    ------------------------------------------------------------------------------------------------------------------------------------
    Plan hash value: 2150023773
    
    ----------------------------------------------------------------------------------------
    | Id  | Operation                     | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
    ----------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT              |        |    14 |  1400 |     2   (0)| 00:00:01 |
    |*  1 |  VIEW                         |        |    14 |  1400 |     2   (0)| 00:00:01 |
    |*  2 |   WINDOW NOSORT STOPKEY       |        |    14 |   518 |     2   (0)| 00:00:01 |
    |   3 |    TABLE ACCESS BY INDEX ROWID| EMP    |    14 |   518 |     2   (0)| 00:00:01 |
    |   4 |     INDEX FULL SCAN DESCENDING| PK_EMP |    14 |       |     1   (0)| 00:00:01 |
    ----------------------------------------------------------------------------------------
    
    PLAN_TABLE_OUTPUT
    ------------------------------------------------------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
       1 - filter("RN"=1)
       2 - filter(DENSE_RANK() OVER ( ORDER BY INTERNAL_FUNCTION("EMPNO") DESC )<=1)
    
    17 rows selected.
    
    SQL> 
    

    SY.

  • Rank() is really better than rownum for top-n-queries?

    Several sources say that for databases Oracle rank() should be used instead of ' rownum < = not for top-n-queries. But here we have an application, where we have a lot of top-n queries are run on a large table with several million lines and rank() has a very bad performance. I get much better results when I use a query with rownum < = n, but the application programmer does not have to change it in the software because of these articles on rank() and rownum. I wonder, is it possible to find a better form of the rank () - request or an additional index, which 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 you might need up to half of a free concert space in your space storage for this example).

    create the table big_objects
    as
    Select
    ASCII (m.alpha) * 100000 + o.object_id object_id,.
    owner of o.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
    Of
    (select distinct)
    Upper (substr(object_name,1,1)) alpha
    Of
    sys. DBA_OBJECTS
    where
    m Upper (substr (object_name, 1, 1)) between 'A' and 'Z').
    sys. DBA_OBJECTS o
    order by
    object_name;

    create index bigindex_1 on big_objects (owner, object_type, created);

    analyze the big_objects statistical calculation table.

    So my table looks a bit like dba_objects but with more lines, and I made a synthesis "created" date that is more similar to my actual case, where top-n designates a date of selection of the most recent records of a certain type.

    This is the size of the segments on a nearly empty database 11 GR 2:

    Select nom_segment, bytes, blocks of sys.dba_segments where nom_segment like '% BIG '.

    BLOCKS OF BYTES NOM_SEGMENT
    -------------- ---------- ----------
    BIGINDEX_1 75497472 9216
    BIG_OBJECTS 142606336 17408

    On my database, the example of table is approx. 1.9 Mio rows:

    Select count (*) in the big_objects;

    COUNT (*)
    ----------
    1884246

    and about 1.4% of these lines have owner = 'SYS' and object_type = 'INDEX '.

    Select
    Count (*)
    of big_objects
    where owner = 'SYS '.
    and object_type = 'INDEX ';

    COUNT (*)
    ----------
    25896

    But I want to find the most recent 10 index only for the owner of the SYS. I think that the typical rank() approach would be:

    Select
    owner,
    object_type,
    object_name,
    object_id,
    status,
    created
    Of
    (select
    owner,
    object_type,
    object_name,
    object_id,
    status,
    created,
    Rank() over (order by created desc) rnk
    Of
    big_objects
    where
    owner = 'SYS '.
    and object_type = 'INDEX')
    where rnk < = 10
    order by ASC created;

    OWNER TYPE_OBJET FEATURE_NAME OBJECT_ID STATUS CREATED
    ------------------------------ ------------------- -------------------------------- ---------- ------- --------------------
    SYS B_COLLELEMIND 6600515 INDEX VALID 15.04.2010 19:05:55
    SYS V_I_WRI$ _OPTSTAT_IND_OBJ # _PL 8600466 15.04.2010 VALID INDEX 19:09:03
    SYS G_I_RLS 7100375 INDEX VALID 15.04.2010 19:23:55
    SYS V_I_DIR$ SERVICE_UI 8600320 INDEX VALID 15.04.2010 19:31:33
    SYS L_I_TSM_DST2$ 7600308 INDEX VALID 15.04.2010 19:36:26
    L_I_IDL_UB11 INDEX SYS 7600235 VALID 15.04.2010 19:57:34
    INDEX SYS V_I_VIEWTRCOL1 8600174 15.04.2010 VALID 20:19:21
    INDEX SYS L_I_TRIGGER2 7600162 15.04.2010 VALID 20:31:39
    INDEX SYS L_I_NTAB1 7600089 15.04.2010 VALID 21:35:53
    B_I_SYN1 INDEX SYS 6600077 VALID 15.04.2010 22:08:07

    10 selected lines.

    Elapsed time: 00:00:00.22

    Execution plan
    ----------------------------------------------------------
    Hash value of plan: 2911012437

    ----------------------------------------------------------------------------------------------
    | ID | Operation | Name | Lines | 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 | PUSHED RANK SORTING WINDOW | 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 |
    ----------------------------------------------------------------------------------------------

    Information of predicates (identified by the operation identity card):
    ---------------------------------------------------

    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 back and forth to and from the client
    2 sorts (memory)
    0 sorts (disk)
    10 rows processed

    Using the index, only the first two columns are used, all 25896 records I found above are read and ranked just to find the most recent of ten. Many unnecessary blocks are read and luckily all the necessary database blocks were already in memory. In our case real often enough a lot of physical reads are performed, which further aggravates the performance of the application.

    In my example below with a ' rownum < = 10 ' all three columns in the index are used and the number of block receives is much, much smaller than in the rank() example.

    Select
    owner,
    object_type,
    object_name,
    object_id,
    status,
    created
    Of
    big_objects
    where
    (owner, object_type, created)
    in
    (select
    owner,
    object_type,
    created
    Of
    (select / * + first_rows (10) * /)
    owner,
    object_type,
    created
    Of
    big_objects
    where
    owner = 'SYS '.
    and object_type = 'INDEX '.
    order by
    owner,
    object_type,
    created desc
    )
    where rownum < = 10
    )
    order by ASC created;

    OWNER TYPE_OBJET FEATURE_NAME OBJECT_ID STATUS CREATED
    ------------------------------ ------------------- -------------------------------- ---------- ------- --------------------
    SYS B_COLLELEMIND 6600515 INDEX VALID 15.04.2010 19:05:55
    SYS V_I_WRI$ _OPTSTAT_IND_OBJ # _PL 8600466 15.04.2010 VALID INDEX 19:09:03
    SYS G_I_RLS 7100375 INDEX VALID 15.04.2010 19:23:55
    SYS V_I_DIR$ SERVICE_UI 8600320 INDEX VALID 15.04.2010 19:31:33
    SYS L_I_TSM_DST2$ 7600308 INDEX VALID 15.04.2010 19:36:26
    L_I_IDL_UB11 INDEX SYS 7600235 VALID 15.04.2010 19:57:34
    INDEX SYS V_I_VIEWTRCOL1 8600174 15.04.2010 VALID 20:19:21
    INDEX SYS L_I_TRIGGER2 7600162 15.04.2010 VALID 20:31:39
    INDEX SYS L_I_NTAB1 7600089 15.04.2010 VALID 21:35:53
    B_I_SYN1 INDEX SYS 6600077 VALID 15.04.2010 22:08:07

    10 selected lines.

    Elapsed time: 00:00:00.03

    Execution plan
    ----------------------------------------------------------
    Hash value of plan: 3360237620

    --------------------------------------------------------------------------------------------------
    | ID | Operation | Name | Lines | 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. UNIQUE HASH | 10. 200 | 4 (25) | 00:00:01 |
    |* 6 | COUNTY 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 |
    --------------------------------------------------------------------------------------------------

    Information of predicates (identified by the operation identity card):
    ---------------------------------------------------

    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
    Gets 26 consistent
    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 back and forth to and from the client
    1 sorts (memory)
    0 sorts (disk)
    10 rows processed

    I made this comparison with versions of Oracle 10.2 and 11.2 and the result was more or less the same. How can I change the rank() query so that only the small number of really needed blocks are read from the database?
    
    Looks like this is one more place Oracle needs little hint :)
    
      1  select
      2  owner,
      3  object_type,
      4  object_name,
      5  object_id,
      6  status,
      7  created
      8  from
      9  ( select  /*+ index_desc(big_objects bigindex_1 ) */
     10  owner,
     11  object_type,
     12  object_name,
     13  object_id,
     14  status,
     15  created,
     16  rank() over (order by created desc) rnk
     17  from
     18  big_objects
     19  where
     20  owner = 'SYS'
     21  and object_type = 'INDEX')
     22  where rnk <= 10
     23* order by created asc
    SQL> /
    
    OWNER                          OBJECT_TYPE         OBJECT_NAME
    ------------------------------ ------------------- -------------------------------------
    SYS                            INDEX               B_I_TSM_SRC1$
    SYS                            INDEX               G_I_IDL_UB21
    SYS                            INDEX               B_I_PROCEDUREINFO1
    SYS                            INDEX               Q_I_TRIGGERJAVAC
    SYS                            INDEX               B_I3_JIJOIN$
    SYS                            INDEX               V_I_FIXED_OBJ$_OBJ#
    SYS                            INDEX               Q_I_OPQTYPE1
    SYS                            INDEX               L_I_NTAB2
    SYS                            INDEX               G_I_COLTYPE1
    SYS                            INDEX               B_I_SYN1                             
    
    10 rows selected.
    
    Execution Plan
    ----------------------------------------------------------
       0      SELECT STATEMENT Optimizer=ALL_ROWS (Cost=41064 Card=38923 B
              ytes=5293528)
    
       1    0   SORT (ORDER BY) (Cost=41064 Card=38923 Bytes=5293528)
       2    1     VIEW (Cost=39884 Card=38923 Bytes=5293528)
       3    2       WINDOW (NOSORT STOPKEY) (Cost=39884 Card=38923 Bytes=2
              335380)
    
       4    3         TABLE ACCESS (BY INDEX ROWID) OF 'BIG_OBJECTS' (TABL
              E) (Cost=39320 Card=38923 Bytes=2335380)
    
       5    4           INDEX (RANGE SCAN DESCENDING) OF 'BIGINDEX_1' (IND
              EX) (Cost=190 Card=40151)
    
    Statistics
    ----------------------------------------------------------
              0  recursive calls
              0  db block gets
             14  consistent gets
              0  physical reads
              0  redo size
           1083  bytes sent via SQL*Net to client
            512  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              1  sorts (memory)
              0  sorts (disk)
             10  rows processed
    

    Published by: Ramesh Eega, 21 May 2010 16:01

    Published by: Ramesh Eega, 21 May 2010 16:05

Maybe you are looking for