Delete global stats, leave partition level only in 10.2.0.3 .

Hi,
there is 10.2.0.3 4 node rac datawarehouse , most queries are with predicate related to partition key .
So there is a lot of partition prunning involved .
Currently data load is done via exchange partition and then only that partition stats is calculated.
We dont got global stats (global_stats = NO in dba_tables) .
Is that right way to deal with statistics in 10.2.0.3 ?
I know that 10.2.0.4 brings us copy stats solution, but what with 10.2.0.3 ?
How to deal with statistics update , related to exchanged partition .
As far as I know there is no way to incrementaly update global statistics, so granuality => partition seems
the only way .
If I got that correctly, Oracle calculates global statistics from partition level statistics if there is no 'true' global stats calculated .
The only issue I know is related to NDV estimation, but I think we can life with that.
Please advice .
Regards.
GregG

You really should collect both partition and global stats. If a query spans more than 1 partition then global stats are generally used. Partition stats are used when there is only a single partition access.
There is no way in 10g to get incremental global stats. That was introduced in 11g. Global stats are collected by a table scan, they are not aggregated on 10g, only 11g with incremental enabled.
However, there was a new granularity introduced in 10g called APPROX_GLOBAL AND PARTITION. This is part of patch 6526370.
I'd recommend that you either gather global or use the APPROX_GLOBAL AND PARTITION, but it is best to have some global stats.
More details on this here:
http://structureddata.org/2008/07/16/oracle-11g-incremental-global-statistics-on-partitioned-tables/
Regards,
Greg Rahn
http://structureddata.org

Similar Messages

  • Delete from statement is running slow - only 3 records

    Dear One and All,
    I am running following statement but even after 10 mins of process, delete does not happen. Also, only 3 rows to delete . Kindly help me to resolve the issue.
    DELETE FROM SD_YEARLY_PLAN_PROJECTS WHERE PLAN_TYPE_CD = 2 AND brn_no = 6;
    Index is created on BRN_NO but still taking so much time.
    Thank you,

    When i runned from SQL plus prompt, it was deleted in nano second. I dont know why it took so much time from TOAD. Anywayz thank you to all.
    SQL>delete from SD_YEARLY_PLAN_PROJECTS where PLAN_TYPE_CD = 2 and brn_no = 6;
    3 rows deleted;
    SQL>commit;
    Issue is resolved.

  • Msg 116, Level 16, State 1, Line 6 Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.

    Hello,
    Can anyone help me?
    select year(po.rdata) as 'Ano', 
    sum(etotal) as 'Valorp' ,
    (select year(fo.data),Sum(etotal) 
    FROM fo (nolock) 
    where  not exists ( select 1 from pl (nolock) where pl.adoc = fo.adoc and pl.cm = fo.doccode ) 
    group by year(fo.data))as 'Valorap'   
    from po 
    group by year(po.rdata)
    order by year(po.rdata)
    Error 
    Msg 116, Level 16, State 1, Line 6
    Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.
    Consultora

    Hi Prashanth,
    select year(po.rdata) as 'Ano',
    sum(etotal) as 'Valorp' ,
    (select Sum(etotal)
    FROM fo (nolock)
    where not exists ( select 1 from pl (nolock) where pl.adoc = fo.adoc and pl.cm = fo.doccode )
    group by year(fo.data))as 'Valorap'
    from po(nolock)
    group by year(po.rdata)
    order by year(po.rdata)
    Gives me the error: 
    Msg 512, Level 16, State 1, Line 1
    Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
    Thanks
    Consultora

  • Will deleting a column at logical schema delete the same at physical level by DDL Sync?

    Will deleting a column at logical schema delete the same at physical level by DDL Sync?

    Hi David,
    First of all thanks for your quick response and for your help logging the enhancement request,
    I am testing more or less your suggestion but I  am not sure if I understood exactly what you mean,
    1)I imported from data dictionary in a new model and into the options menu on the schema select screen I un-ckecked partitions and triggers,
    I guessed that the import should not get from the data dictionary the information about the partitions but the result is that the tables partitioned (by list in this case) are partitioned by range without fields into the physical model on SDDM,
    2)I select one of the tables modify a NO partitioned option and propagate the option for the rest of the tables
    3) I imported again from data dictionary but this time I included the partitions into the option menu on select schema screen,
    into tabular view on compare models screen I can select all the tables with different partitioned option, also I can change for "list partitions" and select only the partitions that I want to import.
    So I have a solution for my problem, thanks a lot for your suggestion
    The second step I'm not sure is needed or maybe I can avoid the step with some configuration setting in any of the preferences screen,
    if not, I think the options to not include partitions into select schema screen are not so clear, at least for me,
    please, could you confirm me if a way to avoid the second step exists or if I misunderstood this option?
    thanks in advance

  • "The CREATE USER statement must be the only statement in the batch" in SQL Azure - why? what to do?

    I'm getting an error on a line in the middle of a larger sql script, only in SQL Azure.
    IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'foouser')
    CREATE USER [foouser] FOR LOGIN [foouser] WITH DEFAULT_SCHEMA=[dbo]
    GO
    Error: "The CREATE USER statement must be the only statement in the batch."
    I don't actually understand what 'the only statement in the batch' means.
    What is a batch? Is it a SQL file? Is it related to a 'GO' statement or an 'IF' statement? What is the reason for the error? And how do I avoid it?
    Thanks,
    Tim

    >IF...ELSE imposes conditions on the execution of a Transact-SQL statement
    I understand the general purpose of an If statement. I could let go of our definition of statement counting disagreeing too except that because of the error I'm stuck.
    It's less important for Create User but what I am really puzzled over now is a very similar issue how am I supposed to do a safe version of CREATE LOGIN, when I don't know whether a login has been previously created on the server or whether I
    am setting up the database on a clean server?
    IF NOT EXISTS (SELECT * FROM sys.server_principals WHERE name = N'foouser')
    CREATE LOGIN [foouser] WITH PASSWORD = 'asdfasdf'
    GO
    If I try and execute this script, it throws the same error as above.
    The first unworkable workaround idea is to omit the if statement
    CREATE LOGIN [foouser] WITH PASSWORD = 'asdfasdf'
    GO
    But if the login already exists on the server (because a similar script was already run), then the script throws an error.
    The second unworkable workaround idea is to do
    DROP LOGIN [foouser]
    GO
    CREATE LOGIN [foouser] WITH PASSWORD = 'asdfasdf'
    GO
    Obviously this throws an error in the second block if the login doesn't already exist on the server.
    The third workaround idea I have is to go conditional by putting an IF condition around DROP instead of CREATE:
    Unfortunately that doesn't work for me either!
    "The DROP LOGIN statement must be the only statement in the batch"
    (This is despite the fact that 'drop login' is listed on the
    supported commands page, not the partially supported page..?! Which disagrees with the notes on
    this page.)
    Anyway the real question I am interesting in addressing is: is there actually a way to have a 'Create/Delete login
    if exists' operation which is SQL-Azure compatible and doesn't throw me error messages (which messes with the sql execution tool I am using)?
    If there is no way, I would like to believe it's because it would be a bad idea to do this. But in that case why is it a bad idea?
    Tim

  • How to delete the data from partition table

    Hi all,
    Am very new to partition concepts in oracle..
    here my question is how to delete the data from partition table.
    is the below query will work ?
    delete from table1 partition (P_2008_1212)
    we have define range partition ...
    or help me how to delete the data from partition table.
    Thanks
    Sree

    874823 wrote:
    delete from table1 partition (P_2008_1212)This approach is wrong - as Andre pointed, this is not how partition tables should be used.
    Oracle supports different structures for data and indexes. A table can be a hash table or index organised table. It can have B+tree index. It can have bitmap indexes. It can be partitioned. Etc.
    How the table implements its structure is a physical design consideration.
    Application code should only deal with the logical data structure. How that data structure is physically implemented has no bearing on application. Does your application need to know what the indexes are and the names of the indexes,in order to use a table? Obviously not. So why then does your application need to know that the table is partitioned?
    When your application code starts referring directly to physical partitions, it needs to know HOW the table is partitioned. It needs to know WHAT partitions to use. It needs to know the names of the partitions. Etc.
    And why? All this means is increased complexity in application code as this code now needs to know and understand the physical data structure. This app code is now more complex, has more moving parts, will have more bugs, and will be more complex to maintain.
    Oracle can take an app SQL and it can determine (based on the predicates of the SQL), which partitions to use and not use for executing that SQL. All done totally transparently. The app does not need to know that the table is even partitioned.
    This is a crucial concept to understand and get right.

  • Boot camp how to delete osx and merge partitions for  windows 7?

    Im installing windows 7 through boot camp but without a dvd. Im using a installer from my university. I can only install it on a partition becouse i dont have the disc. It is done over the network. I have tried deleting the mac osx partition in windows and expanding the windows one, but osx is on the left of windows so it will not expand. Is there any way possible to delete osx and expand a windows partition to the entire drive? i know its not possible in windows but mabye some third party tool. I would preffer it to be free but anything is less than the 200 dollors i would have to spend getting another liscense.

    Thanks again for replying, but I dont think you understand. I have boot camp assistant and all drivers installed. I will explain a little further why i can not do xy&z. This is my installations process.
    1.  I go to campus and plug in my computer to the schools ethernet.
    2. Login to the university's server and download the university's custom bootcamp installer.
    3.My university's custom installer creates a partition on my mac and images that partition over the network with windows 7.
    4. The whole time ive never seen a dvd, iso, or microsoft, apple anything. Its all done automatically and i have no option of downloading the image myself and doing it manually.
    5. I create a account and password in windows and im stuck with windows on a partition on my mac.
    So as you see above i dont have a dvd to pop in my computer or the ability to create one in order to delete the hdd and install windows only.
    I need a way of deleting osx after windows is already installed. Becouse osx is to the left of windows in windows disc management this is(for all i can figure) impossible with just a repair disc, disc utility, and windows disc management. Im looking for a possible third part tool that can accompilsh this.
    I even tried making a image in windows and re imaging with a repair disc, Low and behold, windows recreated the evil partition with a 190 unalocated gigabites of space to the left of windows. i wanted to pull my eyes out.

  • Stat machine workflow task workflow status different values on different state activity(Approval level)

    i have developed the State machine workflow in which i am using default workflow task
    i have added one status dropdown and that is having approve or reject that i set using workflow task drop down values
    now my requirement is that when my workflow goes to different approval i need to have different status values in dropdown
    for example
    on manager approval state activity i need to add additional status value forward to legal
    but when it moved to next activity this task status field should show only approve and reject
    in summary i need to have different status values for workflow task when it moved to different state activity(approval levels)
    can we set these status field of task for state machine workflow programtically as well like for different approval level of task i need different status to be set for the dropdown of task status field
    MCTS,ITIL

    Hi Shahid Siddique,
    I have seen a similar thread from you about this issue, create custom form for the seperate form is a considerable workaround, you can have a check whether it works.
    http://social.technet.microsoft.com/Forums/en-US/9baa0c32-1cde-4c58-aa7c-3568ccf0cdc9/different-approval-level-of-task-i-need-different-status-to-be-set-for-the-dropdown-of-task-status?forum=sharepointdevelopmentprevious
    Thanks,
    Qiao Wei
    TechNet Community Support

  • Write-Behind batch behavior in EP partition level transactions

    Hi,
    We use EntryProcessors to perform updates on multiple entities stored in the same cache partition. According to the documentation, Coherence handles all the updates in a "sandbox" and then commits them atomically to the cache backing map.
    The question is, when using write-behind, does Coherence guarantee that all entries updated in the same "partition level transaction" will be present in the same "storeAll" operation?
    Again, according to the documentation, the write-behind thread behavior is the following:
    The thread waits for a queued entry to become ripe.
    When an entry becomes ripe, the thread dequeues all ripe and soft-ripe entries in the queue.
    The thread then writes all ripe and soft-ripe entries either via store() (if there is only the single ripe entry) or storeAll() (if there are multiple ripe/soft-ripe entries).
    The thread then repeats (1).
    If all entries updated in the same partition level transaction become ripe or soft-ripe at the same instant they will all be present in the storeAll operation. If they do not become ripe/soft-ripe in the same instant, they may not be all present.
    So, it all depends on the behavior of the commit of the partition level transaction, if all entries get the same update timestamp, they will all become ripe at the same time.
    Does anyone know what is the behavior we can expect regarding this issue?
    Thanks.

    Hi,
    That comment is still correct for 12.1 and 3.7.1.10.
    I've checked Coherence APIs and the ReadWriteBackingMap behavior, and although partition level transactions are atomic, the updated entries will be added one by one to the write behind queue. In each added entry coherence uses current time to calculate when each entry will become ripe, so, there is no guarantee that all entries in the same partition level transaction will become ripe at the same time.
    This leads me to another question.
    We have a use case where we want to split a large entity we are storing in coherence into several smaller fragments. We use EntryProcessors and partition level transactions to guarantee atomicity in operations that need to update more than one fragment of the same entity. This guarantees that all fragments of the same entity are fully consistent. The cached fragments are then persisted into database using write-behind.
    The problem now is how to guarantee that all fragments are fully consistent in the database. If we just relly on coherence write-behind mecanism we will have eventual consistency in DB, but in case of multi-server failure the entity may become inconsistent in database, which is a risk we wouldnt like to take.
    Is there any other option/pattern that would allow us to either store all updates done on the entity or no update at all?
    Probably if in the EntryProcessor we identify which entities were updated and if we place them in another persistency queue as a whole, we will be able to achieve this, but this is a kind of tricky workaround that we wouldnt like to use.
    Thanks.

  • How to delete a PO at header level - Restrict to a specific order type

    Hi,
    Deletetion of PO at header level is not recomended but still in my project they are using it to delete a particular PO type and should not allow to delete the other PO types. Recently Support Pack upgrade was done. After this activity deletion is not happening. Hope the relevent code got over writed with the original.
    Here creation and change of PO will be done from a third party system through IDOC. Deletion of PO at header level should be possible only through IDOC.
    Can some one give me the idea where(BAdI/Enhancement) we need to write the code to allow the deletion of PO of a particular type?
    Regards,
    Balaram Devineni

    Hope you are referring to "setting of deletion indicator at header level of PO" (EKKO-LOEKZ = 'L').  Standard method CL_PO_HEADER_HANDLE_MM->PO_CANCEL may be helpful (you may have to integrate this with IDOC processing function module).  Wiki post [Purchase Order Cancellation (Header) using ABAP Classes|http://wiki.sdn.sap.com/wiki/display/ABAP/PurchaseOrderCancellation%28Header%29usingABAPClasses] will be a good reference.

  • What are the Advantages & Disadvantages of Global Variable at Package Level

    Dear Expprts
    Please tell me,
    What is mean by Global Variable?
    What are the Advantages and Disadvantages of Global Variable at Package Level against Private Variable?

    HI
    GLOBAL VARIABLE UR USE ANY BLOCK IN PLSQL
    BUT LOCAL VARIABLE USED ONLY THERE THEY DECLARE.
    REGARDS
    MOHAMMADI

  • I accidentally deleted my windows 8 partition.

    Hi.
    As the title states, i accidentally deleted and reformatted the partition that windows 8 was installed on, on my EliteBook 8570p, and now the recovery tool states that it is unable to restore because of a said missing partition. I was wondering if there was any way i could restore or format back the partition in question.
    Many Thanks.

    I guess i should state that this happened during a botched install of windows 7. Right now, i just want to see if i can restore windows 8 in it's original setting to this computer.

  • "NOT" statements in partitioning?

    Can you use NOT statements in Partition Areas?I used member select whilst designing my partition area. In my source, I want to select all accounts, but not level zero and not any members beginning with a certain character string, say "AB*"The syntax by the partition manager came out with:( @IDESCENDENTS("Account") AND ( @LEVMBRS("Account","Lev0,Account") AND @MATCH("Account","ab*")))i.e. no "NOT" statement!!I tried various ways of getting the "not" into the syntax, all of which work in other areas of Essbase but can't seem to get a Verify in Partition Manager.Can this be done. If so, does anyone have the correct syntax.Thanks in advance.(V6.5)

    Just this morning I attempted the same thing. With no luck, Member Selection evaluates the NOT correctly but Partitioning does not. I have submitted it as a bug.Corey BidmeadClarity [email protected]

  • Thunderbird is indexing every time I click on a message (slow). I've deleted global-messages-db.sqlite. compacted. let it rebuild the db. Version 24.4

    thunderbird is indexing every time I click on a message (slow). I've deleted global-messages-db.sqlite. compacted. let it rebuild the db. Version 24.4
    McAfee shield stays busy the entire time it's indexing. I also deleted about 80% of the messages it was trying to reindex. No joy.
    Thanks

    I have been having this same problem: but it does not appear to have been due to my antivirus (Comodo). In my case the system is not just slow: the indexer seems to hang permanently. I suspected file corruption in one of my inboxes. But, whereas the Activity Manager gives the name of the sub-folder it is currently working on, it does not appear to report the name of the inbox.
    So to trace the corrupt file I had to keep moving emails from my inboxes to sub-folders until the system was able to give me the name of the sub-folder it was working on. Then, by shuffling emails between folders, I was finally able to identify the offending message. This was extremely tedious and time-consuming, as I had to restart Thunderbird every time I did a reshuffle in order to re-initialise the indexing process. The culprit turned out to be a copy of a phishing email I had previously reported. I'm guessing it contained intentionally bad data that confused the indexing system.
    However, it seems that this wasn't the only corrupt file: so I've yet to test all my other inboxes when I've got several more hours available,
    A problem like this would be much easier to trace if the indexer always clearly identified which folder it was examining or attempting to index, e.g. by prefixing the inbox with the mailbox folder name. That way one could tell immediately which inbox or sub-folder was the source of the problem.

  • Low-end RAID - Ugh (Or how to create partition level arrays)

    Ok... I got a new mobo and my system is up and running!
    Now let me tell you how I "want" to configure my drives.
    I have two Hitachi 160 SATA drives.  I would like to create two RAID partitions.  Configured like so:
    SATA1        SATA2
    20GB     +    20GB     @ Mirrored    =  20GB C:  (For Windows, etc.)  (Safe)
    140GB   +    140GB   @ Stripped    =  280GB  D:  (For everything else )  (Fast)
    The problem is that the stupid Nvidia RAID BIOS only seems to support creating drive level arrays and not partition level! 
    I only have expierence with high-end server RAID controllers and doing what I have layed out is perfectly possible.  Is this just something that "low-end" RAID controllers do not support?
    Thanks!

    Unfortunatly that is true, this controller does not support partition level arrays, only disc level.
    Be well....

Maybe you are looking for

  • I can't change the ringtone of short messages (SMS) on my Q10 after OS update

    After OS update, the ringtone of my text messages changed, and I can't find any option to change it. I find alert options for several apps, phone, e-mail, etc. But short text messages is not available to change in the menu. I've deleted the original

  • Dunning and credit block

    Hi All, I need to seek advice from the forum. 1) If the dunning is dunned until final level but credit exposure still below credit limit, can the system put a block when new order being created? 2) If point 1 is not blocked despite hitting final leve

  • I have a HP Pavilion dv6 that has suddenly stopped playing any kind of audio. How do I fix this?

    I have a HP Pavilion dv6 that suddenly stopped playing any kind of sound.  That's with earphones plugged in or not.  The microphone indicator in sound setup indicates that it is listening to external sound, and when I play system sounds, the speaker

  • System Data Maintenance authorization AI_SC_REFRESH_READ_ONLY_DAT

    I am running AI_SC_REFRESH_READ_ONLY_DATA as a batch job to load customers for our VAR customers however after this the customers are not created as business partners. The job log  has the message - User S000xxxxx - System Data Maintenance authorizat

  • Some terminoly questions. Help.

    Ok,first of all sorry about my "stupid questions". I started work with video just a year a go. I am trying to use Apple Color,next week I will start a course,but until then... 1.what is the difference beetween Luma and luninance? 2.what is gama,lift