How does Oracle manage to query a view?

Hello,
We are using an Oracle 9i database.
We are using Discoverer, but I experience some difficulties understanding a query built by Discoverer.
I think this is a basic explanation that I want. That's the reason why I decided to post my message under this forum.
The query I would like an explanation is such as this :
SELECT C.colB, count(C.col1), count(C.col2)
FROM (select b.colA, b.colB, a.col1, MAX(a.col2)
FROM tableA, tableB
WHERE a.joinB = b.joinA
GROUP BY b.colA, b.colB, a.col1) C
WHERE C.colA = 'blabla'
GROUP BY C.colB;
So, my question is :
Is the sub-select, (maybe it's not the right name!), executed regardless the condition "C.colA = 'blabla'", basically does it build the full view regardless the "external" condition ?
or, is the sub-select aware of the condition when it is built into memory ?
Is there a web-site, or documentation about such question?
In advance, thanks a lot for your help.
Olivier

Check if the following helps. In your case subquery will be executed first because of 'MAX'.
http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96533/opt_ops.htm#1005152
/*****Extract from above link**********/
Mergeable and Nonmergeable Views
The optimizer can merge a view into a referencing query block when the view has one or more base tables, provided the view does not contain any of the following:
Set operators (UNION, UNION ALL, INTERSECT, MINUS)
A CONNECT BY clause
A ROWNUM pseudocolumn
Aggregate functions (AVG, COUNT, MAX, MIN, SUM) in the select list
When a view contains one of the following structures, it can be merged into a referencing query block only if Complex View Merging is enabled:
A GROUP BY clause
A DISTINCT operator in the select list
/*********************************************/

Similar Messages

  • How does oracle accesses v$ tables or views in mount state

    Hi All,
    I want to know how oracle accesses fixed tables/views while the database is in mount state.
    I did the following:
    1. Started the database in mount state.
    2. Query v$database ,v$datafile--Successful
    3. Queried dba_data_files.---ERROR
    SQL> select * from dba_data_files;
    select * from dba_data_files
    ERROR at line 1:
    ORA-01219: database not open: queries allowed on fixed tables/views only
    As per my understanding goes,all these tables are a part of Data Dictionary which is stored physically on system tablespace.
    Now since the database is mounted ,it cannot access any part of system tablespace's data.Am I right??
    So how does it queries v$ tables and other fixed database tables in mount state???
    Thanks in advance
    Saket Bansal

    the v$(dynamic) view comes from instance
    the dba(static) views comes from dictionary
    but there is only one view can be look while instance is in nomount mode
    and that is
    v$instance ,,,
    BUT ONLY THING I DON KNOW IS WHY WE CAN STILL DESCRIBE THE V$ VIEWS WHILE INSTANCE IS IN NOMOUNT MODE,,,
    ORACLE instance shut down.
    SQL> startup nomount;
    ORACLE instance started.
    Total System Global Area 285212672 bytes
    Fixed Size 1248576 bytes
    Variable Size 75498176 bytes
    Database Buffers 205520896 bytes
    Redo Buffers 2945024 bytes
    SQL> desc v$datafile;
    Name Null? Type
    FILE# NUMBER
    CREATION_CHANGE# NUMBER
    CREATION_TIME DATE
    TS# NUMBER
    RFILE# NUMBER
    STATUS VARCHAR2(7)
    ENABLED VARCHAR2(10)
    CHECKPOINT_CHANGE# NUMBER
    CHECKPOINT_TIME DATE
    UNRECOVERABLE_CHANGE# NUMBER
    UNRECOVERABLE_TIME DATE
    LAST_CHANGE# NUMBER
    LAST_TIME DATE
    OFFLINE_CHANGE# NUMBER
    ONLINE_CHANGE# NUMBER
    ONLINE_TIME DATE
    BYTES NUMBER
    BLOCKS NUMBER
    CREATE_BYTES NUMBER
    BLOCK_SIZE NUMBER
    NAME VARCHAR2(513)
    PLUGGED_IN NUMBER
    BLOCK1_OFFSET NUMBER
    AUX_NAME VARCHAR2(513)
    FIRST_NONLOGGED_SCN NUMBER
    FIRST_NONLOGGED_TIME DATE
    SQL> desc v$tablespace;
    Name Null? Type
    TS# NUMBER
    NAME VARCHAR2(30)
    INCLUDED_IN_DATABASE_BACKUP VARCHAR2(3)
    BIGFILE VARCHAR2(3)
    FLASHBACK_ON VARCHAR2(3)
    ENCRYPT_IN_BACKUP VARCHAR2(3)
    HOW DOES THIS COME FROM ????
    Edited by: jignesh kankrecha on Jul 6, 2009 8:12 AM

  • How does Oracle EM support WBEM

    How does Oracle Enterprise Manager suport Web Based Enterprise Manager (WBEM) and more specifically Windows Management Instrumentation (WMI). Is there a provider for these?

    There are already target-types/integration solutions available for these target-types in Oracle EM. Any reason you are not able to take advantage of the same ?
    For web-services, you should find answer to your query in Section 7 of the latest Extensibility guide (10.2.0.5). Also, refer to the section 10 on out-of-box fetchlets (in specific section 10.4 on URL Timing and section 10.10 on OJMX/SOAP fetchlet).
    The extensibility guide can be downloaded from here .

  • How does one manage these new render setting for previews?

    I placed 4 HD clips from a nested into a sequence 5800 x 768 to mimic 4 side by side monitors for a multi channel video.  Each clip cut from the sequence are at 1280x720 all sitting side by side. However when I rendered the previews, they came look all squished. However when I exported the frame it looks fine in Photoshop. (I changed the uploaded image to what it looks like in Premiere in Photoshop to demonstrate the appearance in Premiere.)
    I imagine that the distortion has to do with the sequence render setting which for some reason comes out to 1918 x 253...or the pixel aspect ratio? How does one manage these new render setting for previews so it looks normal in the monitor? 
      

    Either way, I thought that this format would be a great way to view on the monitor 4 channels at the same time. I may need to place them on a “normal” 1440 x 1080 sequence in a line, bringing them down to 25% scale to make it work in the end. I did just try that. I think it will work...but when I imported and nested the old file, the scratch disks changed from the original set up on a D drive back to the main hard drive so I had to change it agin. Otherwise it works fine...so I’ll go with this for now
    These are the instructions I was given.I attched a screen save of the AE file they asked me to use (They must be on vacation, because I have not been able to get hold of them). I don't know After Effects very well:
    “As you begin creating or adapting work for e4c, you may find an After Effects template developed for this system to be helpful. Attached you'll see a zipped file with two AE templates. There is some detailed information (below) from the artist that developed these for us. In addition, a few bits of information that might help you along are:
    ·        The "Watchout"  playback system can support WMV or a QuickTime files . We like .mov files with H.264 codec best!
    ·        The end resolution of the four screens is 5120 x 720 pixels (1280x720 each).
    ·        If works are four-channel, please provide a separate audio (aiff) file so it doesn't slow any one video down.”
    Thanks for your help!

  • How does oracle write to datafiles in a tablespace?

    hi all
    Suppose I have a tablespace consisting of two datafiles. When I need to wirte data onto it,how does ORACLE
    write ? Does it initially write to the first datafile and then write to the second datafile when the first datafile getting full or write to two datafiles in an random manner?
    Thanks for your reply.

    hi all
    I have read reply in reponse to thread "tablespaces or datafile " and testcase in that thread shows that ORACLE will write to datafiles in round-robin manner.
    But my test show totally different result:
    SQL>
    SQL> create tablespace ts_maoxl
    2 datafile '/crash/oradata/TESTDB/datafile/1.bdf' size 5m,
    3 '/crash/oradata/TESTDB/datafile/2.bdf' size 5m
    4 EXTENT MANAGEMENT LOCAL;
    Tablespace created
    SQL>
    SQL> create table maoxl(id char(2000),id3 char(2000),id2 char(2000)) tablespace ts_maoxl;
    Table created
    SQL>
    SQL> declare
    2 begin
    3 for i in 0..99 loop
    4 insert into maoxl values('x','y','z');
    5 end loop;
    6 commit;
    7 end;
    8 /
    PL/SQL procedure successfully completed
    SQL> select count(*) from maoxl;
    COUNT(*)
    100
    SQL> select t.file_id,t.extent_id,bytes from dba_extents t where tablespace_name='TS_MAOXL';
    FILE_ID EXTENT_ID BYTES
    5 0 65536
    5 1 65536
    5 2 65536
    5 3 65536
    5 4 65536
    5 5 65536
    5 6 65536
    5 7 65536
    5 8 65536
    5 9 65536
    5 10 65536
    5 11 65536
    5 12 65536
    5 13 65536
    14 rows selectedAll extents are allocated from datafile 5,none from datafile 6. My result is different from yours.
    BTW,The result of my testcase was from a 10.2.0.4 database running on HP-UNIX
    What could be the problem?
    thanks

  • How does oracle suggest the archive log

    Hi All,
    My question is about user managed backup and recovery.
    For User managed hot database refreshes.
    We  create a new controlfile and do cancel based recovery.
    How does oracle suggest the next archive to apply when we do "recover database using backup controlfile until cancel;"
    I mean we created a new control file ..rt.
    where is the information about the archivelogs stored.
    Thanks,
    Silver

    In the controlfile.
    The "using backup controlfile" means using a backed up controlfile, and you want to fool Oracle into thinking a point in time recovery will happen so don't use what would be the controlfiles current scn time to automatically say the recovery is complete.  If you have created a new controlfile, all it can know about is where the logs should be and compare to what log sequences the datafile headers have.  So it uses the init.ora parameters and what the data file headers have in them to figure it out. http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:3151992035532#36651366990046
    If you backup controlfile to trace you can see log files that have the incarnation history.  See "Recovering Through a RESETLOGS with a Created Control File"  in Performing User-Managed Recovery: Advanced Scenarios

  • How does Oracle AIA pull details from SOA Suite on installation?

    Quite urgent help:
    How does Oracle AIA pull details from SOA Suite during installation?
    We're encountering an issue with installation of Oracle AIA at step 4. This when providing the SOA Server Details, and the managed server shows:
    "Cannot Connect to Server" error.
    However at the weblogic console, the Admin server and manage server: soa_server1 are running. Please provide us help on this.
    For further details, here are the apps and versions we installed:
    * Oracle Fusion Middleware 11g
    * SOA suite
    * Oracle AIA 11g
    * Weblogic 10.3.4.0
    Thanks!
    -tristan
    Edited by: user8089513 on May 16, 2011 4:58 AM

    Hello,
    Thanks for the reply!
    On my end, i haven't started it yet today, it just leads me to this message when running node manager:
    +<May 17, 2011 3:40:51 PM GMT+08:00> <Info> <Security> <BEA-090906> <Changing the default Random Number Generator in RSA CryptoJ from ECDRBG to FIPS186PRNG. To disable this change, specify -Dweblogic.security.allowCryptoJDefaultPRNG=true>+
    +<May 17, 2011 3:40:52 PM> <INFO> <Secure socket listener started on port 5556, host /10.234.182.26>+
    May 17, 2011 3:40:52 PM weblogic.nodemanager.server.SSLListener run
    INFO: Secure socket listener started on port 5556, host /10.234.182.26
    Should you need to check the nodemanager.properties, here are the details:
    #Fri May 13 10:56:04 GMT+08:00 2011
    DomainsFile=C\:\\Oracle\\MIDDLE~1\\WLSERV~1.3\\common\\NODEMA~1\\nodemanager.domains
    LogLimit=0
    PropertiesVersion=10.3
    DomainsDirRemoteSharingEnabled=false
    #javaHome=C\:\\Oracle\\MIDDLE~1\\JROCKI~1.1-3
    #JavaHome=C\:\\Oracle\\MIDDLE~1\\JROCKI~1.1-3\\jre
    JavaHome=C\:\\Oracle\\MIDDLE~1\\JDK160~21\\jre
    javaHome=C\:\\Oracle\\MIDDLE~1\\JDK160~21
    AuthenticationEnabled=true
    NodeManagerHome=C\:\\Oracle\\MIDDLE~1\\WLSERV~1.3\\common\\NODEMA~1
    LogLevel=INFO
    DomainsFileEnabled=true
    StartScriptName=startWebLogic.cmd
    ListenAddress=10.234.182.26
    NativeVersionEnabled=true
    ListenPort=5556
    LogToStderr=true
    SecureListener=true
    LogCount=1
    DomainRegistrationEnabled=false
    StopScriptEnabled=true
    QuitEnabled=false
    LogAppend=true
    StateCheckInterval=500
    CrashRecoveryEnabled=false
    StartScriptEnabled=true
    LogFile=C\:\\Oracle\\MIDDLE~1\\WLSERV~1.3\\common\\NODEMA~1\\nodemanager.log
    LogFormatter=weblogic.nodemanager.server.LogFormatter
    ListenBacklog=50
    When I check the weblogic console, i manually run the managed server using startManagedWebLogic.cmd.
    Please advise. Do really need help on this.
    Thanks!
    -tristan

  • How does oracle execute a correlated subquery .... some confusion

    How does oracle 10g execute a correlated subquery?
    I read some articles online & i am a little confused.
    example:
    select * from emp e
    where e.deptno in (select d.deptno from dept d
    where e.deptno = d.deptno);
    My questions .......
    1.In the above example, does oracle read the entire outer table first and then run the inner query using the rows returned by the outer query?
    I read in some articles that they execute simultaneously.
    How does this work?
    2.Should the inner query have lesser amount of rows compared to the outer query for a good performance?
    3.Can every correlated subquery be converted to a join and if so which one to use?
    Truly appreciate any inputs on how oracle executes it at the backend.
    Thanks in advance.

    user10541890 wrote:
    How does oracle 10g execute a correlated subquery?
    I read some articles online & i am a little confused.
    example:
    select * from emp e
    where e.deptno in (select d.deptno from dept d
    where e.deptno = d.deptno);
    My questions .......
    1.In the above example, does oracle read the entire outer table first and then run the inner query using the rows returned by the outer query?
    I read in some articles that they execute simultaneously.
    How does this work?SQL is not a procedural language. SQL code specifies what the system sill do, not how the system wlll do it; that's entirely up to the system.
    What does it matter to you whether the two are done together, or if one is completed before the other begins?
    The system will probably choose to run ucorellated subqueiris only once, and correlated queries multiple times as needed.
    2.Should the inner query have lesser amount of rows compared to the outer query for a good performance?That usually doesn't matter.
    It some cases, you may want to consider whether the subquery is correlated or not. If the subquery is very costly, and produces, say, 1 million rows, but you know the main query will only produce about 5 rows, then you may want to do a correlated subquery rather than an uncorrelated one.
    3.Can every correlated subquery be converted to a join and if so which one to use?I believe so.
    Use whichever is easier to code and debug. That will change depnding on the data and the requirements.
    If performance is an issue, try different ways. Usually, where I've noticed a big difference, join was fastest.
    By the way, it's unusual to have a correlated IN-subquery.
    Usually IN-subqueris are uncorrelated, like this:
    select  *
    from      emp     e
    where     e.deptno     in ( select  d.deptno
                        from    dept     d
                      );(This and the queries below produce the same resutls as your original query.)
    Correlated subqueries are usually used for scalar subqueries or EXISTS subqueries, like this:
    select  *
    from      emp     e
    where     EXISTS ( select  d.deptno
               from    dept     d
                    where   e.deptno = d.deptno
                );To do the same thing with a join:
    select  e.*
    from      emp     e
    join     dept     d     on     e.deptno     = d.deptno
    ;assuming dept.deptno is unique.

  • How does XDB optimize XML Query?

    I found the query speed of XDB is much slower than Berkeley XML DB.
    How does XDB optimize XML Query?
    Are there any documents on this subject?
    And can XDB create indices on XMLType ( e.g. the index on element/attribute value and/or structure index)? if yes, how to do that?

    lezhou had a valid question and asked about:
    "I found the query speed of XDB is much slower than Berkeley XML DB"
    "How does XDB optimize XML Query?"
    These point to a "XML DB Concepts Guide", which does not yet exist.
    The procedures are explained, the methods are explained. If you enable event tracing as described in the XMLDB Developers Guide 10gR2, you will see statements in your trace file which will tell you more about the XML DB architecture (and therefor you can deduct performance impact) then the manual will reveal.
    An other example:
    The xdbconfig.xsd file is neatly explained - in regards of http-port-etc
    But not what the implecations are if you alter one of the other ones (the not explained parameters).
    If you know the architecture (GROUND LEVEL), you can give an correct answer to the initial question "I found the query speed of XDB is much slower than Berkeley XML DB. How does XDB optimize XML Query?"
    The balanced tree index is constructed the same way (on the same theory) in Oracle, DB2, but apparantly X is faster because in with the same buildup/architecture/databasestructure for both products, with the same data, with the same X --> value Y is beter constructed and delivers a better performance.
    apples = apples
    oracle xmldb = berkeley xmldb --> how can i test the o.apples=b.apples and that under these circumstances o.apples are faster ;-)
    THEREFOR:
    "I have to disagree a little bit...("It speaks about all these in detail").
    Still waiting for the XMLDB Concepts Guide / Administrators Guide / Performance Guide.

  • How does oracle i officially /i define b Database /b

    <h1>How does oracle <i>officially</i> define <b>Database</b></h1>
    There are many definitions I have found on google ( by searching define: database )
    how does oracle <i>officially</i> define <b>Database</b>.

    From
    http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14220/intro.htm#sthref11
    An Oracle database is a collection of data treated as a unit. The purpose of a database is to store and retrieve related information. A database server is the key to solving the problems of information management. In general, a server reliably manages a large amount of data in a multiuser environment so that many users can concurrently access the same data. All this is accomplished while delivering high performance. A database server also prevents unauthorized access and provides efficient solutions for failure recovery.

  • How does oracle know which AO Framework page or process to execute.

    Hi,
    How does oracle know which AO Framework page or process to execute. I use to think this was defined in the Function definition. But looking through some Function definition in HRMS setup I noticed some of them simply calling the same first page, such as the one below used in many managers menus. This initial page is the page that allows managers to choose the employee they want to work on.
    OA.jsp?akRegionCode=HR_PERSON_TREE_TOP_SS&akRegionApplicationId=800.
    My question is, after executing this initial page, how does Oracle then varies the OA page by the diffferent functions?

    Hi;
    Thanks for sharing
    Please dont forget to change thread status to answered if it possible when u belive your thread has been answered, it pretend to lose time of other forums user while they are searching open question which is not answered,thanks for understanding*
    Regard
    Helios

  • How does Media Manager handle Motion Projects within the Sequence being cop

    How does Media Manager handle Motion Projects within the Sequence being copied?
    I've highlighted my sequence, opened Media Manager, and copied it to another drive. When I open up the sequence in it's new project, the rendered Motion Project plays within my sequence but it won't let me go back into this Motion Project to make changes. I tried starting over. This time I highlighted the actual motion sequence and clip that is created within FCP after sending something to Motion and copied those to the new drive. When I went into the newly created 'media' folder and double clicked on the motion project it launched. It looked liked it was going to play but while my crops moves and borders were there, the filmed material is shown as a freeze frame for the duration of the motion project.
    I did this with and without 'including master clips within selection'. Any advice would be appreciated. Thanks.

    Is there anyone who knows the answer to this? Thanks.

  • How does Oracle client communicate with a database server

    Looking to idenify how Oracle Database Client for OpenVMS communicates with database server and whether the protocol used is secure. Realize that it is using whatever the configured network protocol is (ie. tcpip) but is languauge it uses ( ie. SQL, etc..)  secured/encrypted and if not what steps can be taken to encypt

    Arizuddin wrote:
    I have installed oracle client 10g on client pc for getting connection to Oracle databse 10g (runng on windows server) usng ODBC through SAGE ACC PAC (ERP). Working fine earlier. Now all of a suddent user starts complaining about database connection. When checked his pc registry values. Two values of ODBC keys are reset to null. Those are DSN and DRIVER values. How come this values reset to null? What is causing this to reset?Nothing in this has anything to do with the sever. You need to check what the client did on his machine that caused registry to get modified?
    How does oracle ODBC works with Oracle database? Need to know all the steps involved?The connectoin from any client is initiated by a client process. This client process is supposed to get a server process to do his work. So if this is done, the client can work now with oracle . Please see the concepts guide for the gory details of the entire process.
    HTH
    Aman....

  • How does u find whether query touches aggregates or not?

    Hi gurus
         How does u find whether query touches aggregates or not?
    Thanks in advance
    Raj

    Hi Rajaiah.
    You can test this from TA RSRT -> Execute and debug -> Display aggregate found.
    Hope it helps.
    BR
    Stefan

  • How does oracle know the databse is inconsistent and needs recovery?

    Hello,
    How does Oracle know that the datafiles are inconsistent and db needs recovery when rebuilding the db off of the online/hot backups? Whereas, it doesn’t ask for recovery when rebuilding the database from cold backup (I understand that, for cold backup, database is shutdown immediate and hence the db is consistent). In both scenarios, a new control file is created (that means it won’t have SCN) and only datafile header will have the SCN. What’s that piece of info that oracle check to know if the database is consistent or inconsistent during the backup restore and recovery and where that info resides?
    Thank you for any hints and answers.
    Jay

    Oracle uses the datafiles to identify if they are consistent. If the datafiles backup was taken when the database was OPEN, they are marked as "fuzzy" in the header. Also, likely, the Checkpoint SCNs may be different if tablespace checkpoints (e.g. by ALTER TABLESPACE BEGIN BACKUP) are at different points in time.
    If the backup was a cold backup with the database shutdown normal/immediate, the headers are marked appropriately.
    When you run CREATE CONTROLFILE, it has to read the datafiles because the controlfile, itself, has no SCN and LogSequenceNumbers information.
    Hemant K Chitale

Maybe you are looking for

  • [CRM] Change sales office from within an order

    We've been trying to get the following to work... as you might guess, so far without success. From within a CRM order, if we change the partner number for the department a check is being done whether that partner belongs to the same sales office. If

  • Free of charge with internal tax (not to customer)

    Hi, I have a problem with the case of free of charge items. I have order OR and item category TANN. I need for legal requirements to book the VAT for that item internally and not to the customer. Can anyone help on that? Thank you!

  • IMessage on iPhone 3GS keeps crashing on launch! Help!

    Well I try to open iMessage on my iPhone 3GS and it opens but nothing comes up (blank screen) It stays like for about 5 seconds and then just crashes! I've tried; closing app Restarting Forcing a reboot Nothing has worked. Please help!

  • Adobe Interactive form

    Hi, I am trying to create one simple example of Adobe interactive form from this link http://help.sap.com/saphelp_nw04s/helpdata/en/46/55c841d202c317e10000000a155106/frameset.htm while creating the application i am finding this problem. I am not able

  • Threaded Email NOT working since upgrading to Lion

    Threaded emails were working fine until I upgraded to Lion.  I have even done a fresh reinstall, enabled classic view, organize by conversation, and adjusted the view setting in the preferneces to include related messages. While my replies are groupe