ORACLE 10g CBO...analyze stats

Hi
Oracle 10g R2 Documentation says CBO does not consider stats gathered by analyze table command.But analyze table updates all the stats (dba_tables etc...).
Still will these not be used?if not how ORACLE knows that stats are gathered by dbms_stats or not
I agree dbms_stats Stats are more comprehensive than analyze.But want to know whether stats gatherd by analyze are completely ignored or not
Thanks
Pramod

It helps if you quote the passage you have read as this makes it possible to explain why you may have misunderstood what was said - the manuals are not always completely clear.
There are some calls to the analyze command that collect statistics that the optimizer does not need - but other calls to the analyze command do collect statistics that the optimizer can use. But there are differences between the "optimizer numbers" collected by analyze and those collected by dbms_stats - so dbms_stats is the strategic choice.
Regards
Jonathan Lewis
http://jonathanlewis.wordpress.com
http://www.jlcomp.demon.co.uk
"For every expert there is an equal and opposite expert."
Arthur C. Clarke

Similar Messages

  • Oracle 10g will do stats automatically ?

    oracle : 10.2.0.3
    os : linux
    How oracle 10g will gather stats automatically ? How to check whether which scheduler is capturing stats, interval ,last gathered status and also next interval?
    it will take only system level stats ? also object level stats also ?
    pl. explain

    Hi,
    Please read this,
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/stats.htm#i41282
    It wont capture system stats.Only object level stats are gathered.Oracle recommends to gather the system stats manualy.
    HTH
    Aman....

  • Oracle 10g - Default commit state

    Hi,
    Does anybody know what the default commit state for Oracle 10g is upon installation?
    Your help is very much appreciated!
    Thanks.

    Do you mean auto-commit on or off? If so, Oracle has no auto-commit (some client apps may).

  • Insert statement taking time on oracle 10g

    Hi,
    My procedure taking time in following statement while database upgrading from oracle 9i to oracle 10g.
    I m using oracle version 10.2.0.4.0.
    cust_item is matiralize view in procedure and it is refreshing in the procedure
    Index is dropping before inserting data into cust_item_tbl TABLE and after inserting data index is created.
    There are almost 6 lac records into MV which are going to insert into TABLE.
    In 9i below insert statement is taking 1 hr time to insert while in 10g it is taking 2.30 hrs.
    EXECUTE IMMEDIATE 'ALTER SESSION ENABLE PARALLEL QUERY';
    EXECUTE IMMEDIATE 'ALTER SESSION ENABLE PARALLEL DML';
    INSERT INTO /*+ APPEND PARALLEL */ cust_item_tbl  NOLOGGING
             (SELECT /*+ PARALLEL */
                     ctry_code, co_code, srce_loc_nbr, srce_loc_type_code,
                     cust_nbr, item_nbr, lu_eff_dt,
                     0, 0, 0, lu_end_dt,
                     bus_seg_code, 0, rt_nbr, 0, '', 0, '', SYSDATE, '', SYSDATE,
                     '', 0, ' ',
                                   case
                                 when cust_nbr in (select distinct cust_nbr from aml.log_t where CTRY_CODE = p_country_code and co_code = p_company_code)
                                 THEN
                                         case
                                            when trunc(sysdate) NOT BETWEEN trunc(lu_eff_dt) AND trunc(lu_end_dt)
                                            then NVL((select cases_per_pallet from cust_item c where c.ctry_code = a.ctry_code and c.co_code = a.co_code
                                                          and c.cust_nbr = a.cust_nbr and c.GTIN_CO_PREFX = a.GTIN_CO_PREFX and c.GTIN_ITEM_REF_NBR = a.GTIN_ITEM_REF_NBR
                                                          and c.GTIN_CK_DIGIT = a.GTIN_CK_DIGIT and trunc(sysdate) BETWEEN trunc(c.lu_eff_dt) AND trunc(c.lu_end_dt) and rownum = 1),
                                                          a.cases_per_pallet)
                                      else cases_per_pallet
                                  end
                          else cases_per_pallet
                     END cases_per_pallet,
                     cases_per_layer
                FROM cust_item a
               WHERE a.ctry_code = p_country_code ----varible passing by procedure
                 AND a.co_code = p_company_code   ----varible passing by procedure
                 AND a.ROWID =
                        (SELECT MAX (b.ROWID)
                           FROM cust_item b
                          WHERE b.ctry_code = a.ctry_code
                            AND b.co_code = a.co_code
                            AND b.ctry_code = p_country_code ----varible passing by procedure
                            AND b.co_code = p_company_code   ----varible passing by procedure
                            AND b.srce_loc_nbr = a.srce_loc_nbr
                            AND b.srce_loc_type_code = a.srce_loc_type_code
                            AND b.cust_nbr = a.cust_nbr
                            AND b.item_nbr = a.item_nbr
                            AND b.lu_eff_dt = a.lu_eff_dt));explain plan of oracle 10g
    Plan
    INSERT STATEMENT  CHOOSECost: 133,310  Bytes: 248  Cardinality: 1                      
         5 FILTER                 
              4 HASH GROUP BY  Cost: 133,310  Bytes: 248  Cardinality: 1            
                   3 HASH JOIN  Cost: 132,424  Bytes: 1,273,090,640  Cardinality: 5,133,430       
                        1 INDEX FAST FULL SCAN INDEX MFIPROCESS.INDX_TEMP_CUST_AUTH_PERF_MV Cost: 10,026  Bytes: 554,410,440  Cardinality: 5,133,430 
                        2 MAT_VIEW ACCESS FULL MAT_VIEW MFIPROCESS.TEMP_CUST_AUTH_PERF_MV Cost: 24,570  Bytes: 718,680,200  Cardinality: 5,133,430  can you please look into the issue?
    Thanks.

    According to the execution plan you posted parallelism is not taking place - no parallel operations listed
    Check the hint syntax. In particular, "PARALLEL" does not look right.
    Running queries in parallel can either help performance, hurt performance, or do nothing for performance. In your case a parallel index scan on MFIPROCESS.INDX_TEMP_CUST_AUTH_PERF_MV using the PARALLEL_INDEX hint and the PARALLEL hint specifying the table for MAT_VIEW MFIPROCESS.TEMP_CUST_AUTH_PERF_MV Cost might help, something like (untested)
    select /*+ PARALLEL_INDEX(INDX_TEMP_CST_AUTH_PERF_MV) PARALLEL(TEMP_CUST_AUTHPERF_MV) */Is query rewrite causing the MVs to be read? If so hinting the query will be tricky

  • Materialize view on oracle 9i and oracle 10g

    Hi,
    My sql query using Materialized view in from cluase.
    its execution time on oralce 9i 9.0.2 is only 0.25 sec but on oracle 10g it takes 4 minutes.
    Explain plan in oracle 9i it consider MV as table but in Oracle 10g it consider it as MV.
    i m analyze all the table before executing the query although it takes time to execute it
    Please can anyone hv the idea how to decrease the execution time.
    Thanks in advance.

    This is my QUERY
    SELECT pp.hhc_code hhc_code, descp.item_id lucode, pp.ctry_code country_code,
    pp.co_code company_code, descp.hq_descp_txt description
    FROM prod_descp_en descp,
    (SELECT DISTINCT ctry_code, co_code, item_id, hhc_code
    FROM prod_perf_xref
    WHERE procs_revis_nbr <= 1493) pp
    WHERE descp.ctry_code = pp.ctry_code
    AND descp.co_code = pp.co_code
    AND descp.item_id = pp.item_id
    AND EXISTS (
    SELECT 'X'
    FROM (SELECT prod_nbr, case_seq_nbr, prod_ctry_code, prod_co_code
    FROM ord_ship_ln
    WHERE (ord_ctry_code,
    ord_co_code,
    ord_doc_nbr,
    ord_sys_srce
    ) IN (
    SELECT ord_ctry_code, ord_co_code, ord_doc_nbr,
    ord_sys_srce
    FROM oms.ord_ship_hdr hr1
    WHERE ( ( hr1.acctg_dest_ctry = '119'
    AND hr1.acctg_dest_co = '003'
    AND hr1.acctg_dest_nbr = 131
    AND hr1.acctg_dest_type = '02'
    OR ( hr1.srce_ctry_code = '119'
    AND hr1.srce_co_code = '003'
    AND hr1.srce_loc_nbr = 131
    AND hr1.srce_loc_type_code = '02'
    ))) ln1
    WHERE descp.product_nbr = ln1.prod_nbr
    AND descp.case_nbr = ln1.case_seq_nbr
    AND descp.ctry_code = ln1.prod_ctry_code
    AND descp.co_code = ln1.prod_co_code)
    ORACLE -9i
    Plan
    SELECT STATEMENT CHOOSECost: 1,528 Bytes: 138 Cardinality: 1                                              
         16 HASH JOIN Cost: 1,528 Bytes: 138 Cardinality: 1                                         
              12 HASH JOIN SEMI Cost: 1,316 Bytes: 93 Cardinality: 1                                    
                   1 TABLE ACCESS FULL OMS.PROD_DESCP_EN Cost: 10 Bytes: 1,160,406 Cardinality: 20,358                               
                   11 VIEW SYS.VW_SQ_1 Cost: 1,290 Bytes: 515,484 Cardinality: 14,319                               
                        10 NESTED LOOPS Cost: 1,290 Bytes: 1,317,348 Cardinality: 14,319                          
                             8 TABLE ACCESS BY INDEX ROWID OMS.ORD_SHIP_HDR Cost: 138 Bytes: 31,104 Cardinality: 576                     
                                  7 BITMAP CONVERSION TO ROWIDS                
                                       6 BITMAP OR           
                                            3 BITMAP CONVERSION FROM ROWIDS      
                                                 2 INDEX RANGE SCAN NON-UNIQUE OMS.ORD_SHIP_HDR_DEST_IDX1 Cost: 1
                                            5 BITMAP CONVERSION FROM ROWIDS      
                                                 4 INDEX RANGE SCAN NON-UNIQUE OMS.ORD_SHIP_HDR_SRCE_INDX Cost: 1
                             9 INDEX RANGE SCAN UNIQUE OMS.PKORD_SHIPLN1 Cost: 2 Bytes: 950 Cardinality: 25                     
              15 VIEW OMS. Cost: 211 Bytes: 598,860 Cardinality: 13,308                                    
                   14 SORT UNIQUE Cost: 211 Bytes: 532,320 Cardinality: 13,308                               
                        13 TABLE ACCESS FULL MFIDATA.PROD_PERF_XREF_T Cost: 164 Bytes: 532,320 Cardinality: 13,308                          
    ORACLE -10g
    Plan
    SELECT STATEMENT CHOOSECost: 7,538 Bytes: 138 Cardinality: 1                                              
         19 HASH JOIN Cost: 7,538 Bytes: 138 Cardinality: 1                                         
              12 HASH JOIN SEMI Cost: 6,851 Bytes: 93 Cardinality: 1                                    
                   1 MAT_VIEW ACCESS FULL MAT_VIEW OMS.PROD_DESCP_EN Cost: 32 Bytes: 1,132,305 Cardinality: 19,865                               
                   11 VIEW VIEW SYS.VW_SQ_1 Cost: 6,612 Bytes: 2,585,376 Cardinality: 71,816                               
                        10 NESTED LOOPS Cost: 6,612 Bytes: 6,607,072 Cardinality: 71,816                          
                             8 TABLE ACCESS BY INDEX ROWID TABLE OMS.ORD_SHIP_HDR Cost: 805 Bytes: 156,114 Cardinality: 2,891                     
                                  7 BITMAP CONVERSION TO ROWIDS                
                                       6 BITMAP OR           
                                            3 BITMAP CONVERSION FROM ROWIDS      
                                                 2 INDEX RANGE SCAN INDEX OMS.ORD_SHIP_HDR_SRCE_INDX Cost: 6
                                            5 BITMAP CONVERSION FROM ROWIDS      
                                                 4 INDEX RANGE SCAN INDEX OMS.ORD_SHIP_HDR_DEST_IDX1 Cost: 1
                             9 INDEX RANGE SCAN INDEX (UNIQUE) OMS.PKORD_SHIPLN1 Cost: 2 Bytes: 950 Cardinality: 25                     
              18 VIEW OMS. Cost: 685 Bytes: 1,154,925 Cardinality: 25,665                                    
                   17 HASH UNIQUE Cost: 685 Bytes: 1,026,600 Cardinality: 25,665                               
                        16 VIEW VIEW MFIDATA.index$_join$_007 Cost: 511 Bytes: 1,026,600 Cardinality: 25,665                          
                             15 HASH JOIN                     
                                  13 INDEX RANGE SCAN INDEX MFIDATA.IDX_PROD_PERF_XREF_ROW_DELT Cost: 419 Bytes: 1,026,600 Cardinality: 25,665                
                                  14 INDEX FAST FULL SCAN INDEX (UNIQUE) MFIDATA.IND_PROD_PERF_XREF_INDEX1 Cost: 309 Bytes: 1,026,600 Cardinality: 25,665

  • Sql statement add an "N" literal wher reporting trough oracle 10g and lib eclipse

    <p>the same select created with crystal report 9 and oracle 8.04 with crystal report XI and oracle 10G have some difference. In the crystal report XI the statement contains an &#39;N&#39; literal that should not be there.</p><p>I have used the Service pack 1 of Business Object XI r2 on the server and here i haven&#39;t problem.</p><p>When I use the same report throught an applet with the CRXI library&#39;s I have the problem of "N" literal</p><p>I work with Eclipse, java, CRXI, and oracle10g</p>

    JRC/Crystal Report XI generated SQL automatically add an "N" literal in front of some values which can not even execute in the SQL*Plus.

  • Converting SQL statements from MS server 2000 to Oracle 10g

    We are moving over from MS server 2000 to Oracle 10g as our database for Peoplesoft system.
    There are several embedded SQL statements that I need to investigate to see what needs converting.
    So far I can see a need to convert the following:
    Dates.     GetDate() to ?
    Outer joins. *= to LEFT OUTER JOIN
    Has anyone else done a similar exercise and what other functions do I need to convert?
    Thanks.

    Hello
    A quick google search (http://www.google.co.uk/search?hl=en&q=ms+sql+server+oracle+differences&spell=1)
    came up with this:
    http://dba-oracle.com/oracle_news/2005_12_16_sql_syntax_differences.htm
    There's a quite a few more sites listed.
    HTH
    David

  • How to the find the Delete records/Statement used in Oracle 10g database?

    Hi all,
    I am Using Oracle 10g Database release 2 on Windows 2003 Server Enterprise Edition... Last week One of my user has deleted important records from my database,i need to find who did this... is there any way to find out ...Please Advice me ....One More thing i have not enabled the Auditing features in My database .....
    Thank You
    Shan

    Rajesh Lathwal wrote:
    Use log miner ..
    Regards
    RajeshEven with that, if he wants to know WHO, he will have to have previously enabled extended logging ....

  • Oracle 10g (10.1.0.2) - Oracle CS Service and Database won't start up

    Hello!
    As I installed Oracle 10g (Version 10.1.0.2) I had to start "OracleCSService" which I tried, but it never finishes starting and "stays in the state of starting".
    I'm working on the operation System Windows Server 2003, Enterprise Edition, 10.1.0.2
    I don't know if it coheres, but I as well can't access my Database. Since I installed Oracle I haven't once been able to access.
    Did anyone have the same problem and got a solution?
    greetings Vera

    There's a known problem with 10g on non-english Windows versions , this is documented in metalink note
    OracleCsService does not start
    Note:276801.1
    OracleCSService is only needed for RAC and ASM configurations, the simplest workaround is to set the service to MANUAL startup, what prevents the service from starting after a reboot.
    As long as you use neither RAC nor ASM database creation is independent of this service and should work. To analyze the problem more details are needed, 'it does not work' is not enough.
    Werner

  • Oracle 10g vs Oracle 11g query performance

    Hi everyone,
    We are moving from Oracle 10g to Oracle 11g database.
    I have a query which in Oracle 1g takes 85 seconds to run, but when I run the same query in Oracle 11g database, it takes 635 seconds.
    I have confirmed that all indexes on tables involved are enabled.
    Does anyone have any pointers, what should I look into. I have compared explain plans and clearly they are different. Oracle 11g is taking a different approach than Oracle 1g.
    Thanks

    Pl post details of OS versions, exact database versions (to 4 digits) and init.ora parameters of the 10g and 11g databases. Have statistics been gathered after the upgrade ?
    For posting tuning requests, pl see these threads
    HOW TO: Post a SQL statement tuning request - template posting
    When your query takes too long ...
    Pl see if the SQL Performance Analyzer can help - MOS Doc 562899.1 (TESTING SQL PERFORMANCE IMPACT OF AN ORACLE 9i TO ORACLE DATABASE 10g RELEASE 2 UPGRADE WITH SQL PERFORMANCE ANALYZER)
    HTH
    Srini

  • Oracle 10g performance issues

    Hi,
    We were using Oracle 9i in Solaris 5.8 and it was working fine with some minor performance issues. We formatted the Solaris server with new Solaris 5.10 and installed Oracle 10g.
    Now we are experiencing some performance issues in Oracle 10g. This issue is arising when using through Websphere 5.1.
    We have analyzed the schema, index is rebuild, SGA is 4.5 GB, PGA is 2.0 GB, Solaris RAM is 16 GB. Also we are having some Mat Views (possibly this may cause performance issues - not sure) due to refresh.
    Also I have changed some parameters in init.ora file like query_rewrite = STALE_TOLERATED, open_cursors = 1500 etc.
    Is is something due to driver from which the data is accessed. I guess it is not utilizing the indexes on the table.
    Can anyone please suggest, what could be the issue ?

    <p>There are a lot of changes to the optimizer in the upgrade from 9i to 10g, and you need to be aware of them. There are also a number of changes to the default stats collection mechanism, so after your upgrade your statistics (hence execution paths) could change dramatically.
    </p>
    <p>
    Greg Rahn has a useful entry on his blog about stats collection, and the blog al,so points to an Oracle white paper which will give you a lot of ideas about where the optimizer changes - which may help you spot your critical issues.
    </p>
    <p>Otherwise, follow triggb's advice about using Statspack to find the SQL that is the most expensive - it's reasonably likely to be this SQL that has changed execution plans in the upgrade.
    </p>
    Regards
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    http://www.jlcomp.demon.co.uk

  • Oracle 10g System Statisctics

    Hi,
    I want to know if System Statistics (CPU and I/O usage) for CBO are automatically taken and loaded in Oracle 10g or I have to schedule it manually?
    can anybody help me?
    Thanks in advance,
    Gerald.

    Basic system stats are generated at instance startup in 10g. Ideally you should still do the manual gather for better system stats values based on you workloads
    You can check system stats in SYS.AUX_STATS$
    Chris

  • Oracle 10G New Feature........Part 1

    Dear all,
    from last couple of days i was very busy with my oracle 10g box,so i think this is right time to
    share some intresting feature on 10g and some internal stuff with all of you.
    Have a look :-
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Oracle 10g Memory and Storage Feature.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1.Automatic Memory Management.
    2.Online Segment Shrink
    3.Redolog Advisor, checkpointing
    4.Multiple Temporary tablespace.
    5.Automatic Workload Repository
    6.Active Session History
    7.Misc
    a)Rename Tablespace
    b)Bigfile tablespace
    c)flushing buffer cache
    8.ORACLE INTERNAL
    a)undocumented parameter (_log_blocks_during_backup)
    b)X$ view (x$messages view)
    c)Internal Structure of Controlfile
    1.Automatic memory management
    ================================
    This feature reduce the overhead of oracle DBA.previously mostly time we need to set diff oracle SGA parameter for
    better performance with the help of own experience,advice views and by monitoring the behaviour
    of oracle database.
    this was just time consuming activity.........
    Now this feature makes easy life for oracle DBA.
    Just set SGA_TARGET parameter and it automatically allocate memory to different SGA parameter.
    it focus on DB_CACHE_SIZE
    SHARED_POOL_SIZE
    LARGE_POOL
    JAVA_POOL
    and automatically set it as
    __db_cache_size
    __shared_pool_size
    __large_pool_size
    __java_pool_size
    check it in alert_log
    MMAN(memory manager) process is new in 10g and this is responsible for sga tuning task.
    it automatically increase and decrease the SGA parameters value as per the requirement.
    Benefit:- Maximum utlization of available SGA memory.
    2.Online Segment Shrink.
    ==========================
    hmmmmm again a new feature by oracle to reduce the downtime.Now oracle mainly focus on availablity
    thats why its always try to reduce the downtime by intrducing new feature.
    in previous version ,reducing High water mark of table was possible by
    Exp/imp
    or
    alter table move....cmd. but on these method tables was not available for normal use for long hrs if it has more data.
    but in 10g with just few command we can reduce the HWmark of table.
    this feature is available for ASSM tablespaces.
    1.alter table emp enable row movement.
    2.alter table emp shrink space.
    the second cmd have two phases
    first phase is to compact the segment and in this phase DML operations are allowed.
    second phase(shrink phase)oracle shrink the HWM of table, DML operation will be blocked at that time for short duration.
    So if want to shrink the HWM of table then we should use it with two diff command
    first compact the segment and then shrink it on non-peak hrs.
    alter table emp shrink space compact. (This cmd doesn't block the DML operation.)
    and alter table emp shrink space. (This cmd should be on non-peak hrs.)
    Benefit:- better full table scan.
    3.Redolog Advisor and checkpointing
    ================================================================
    now oracle will suggest the size of redo log file by V$INSTANCE_RECOVERY
    SELECT OPTIMAL_LOGFILE_SIZE
    FROM V$INSTANCE_RECOVERY
    this value is influence with the value of FAST_START_MTTR_TARGET .
    Checkpointing
    Automatic checkpointing will be enable after setting FAST_START_MTTR_TARGET to non-zero value.
    4.Multiple Temporary tablespace.
    ==================================
    Now we can manage multiple temp tablespace under one group.
    we can create a tablespace group implicitly when we include the TABLESPACE GROUP clause in the CREATE TEMPORARY TABLESPACE or ALTER TABLESPACE statement and the specified tablespace group does not currently exist.
    For example, if group1 is not exists,then the following statements create this groups with new tablespace
    CREATE TEMPORARY TABLESPACE temp1 TEMPFILE '/u02/oracle/data/temp01.dbf'
    SIZE 50M
    TABLESPACE GROUP group1;
    --Add Existing temp tablespace into group by
    alter tablespace temp2 tablespace group group1.
    --we can also assign the temp tablespace group on database level as default temp tablespace.
    ALTER DATABASE <db name> DEFAULT TEMPORARY TABLESPACE group1;
    benefit:- Better I/O
    One sql can use more then one temp tablespace
    5.AWR(Automatic Workload Repository):-
    ================================== AWR is built in Repository and Central point of Oracle 10g.Oracle self managing activities
    is fully dependent on AWR.by default after 1 hr, oracle capure all database uses information and store in AWR with the help of
    MMON process.we called it Memory monitor process.and all these information are kept upto 7 days(default) and after that it automatically purge.
    we can generate a AWR report by
    SQL> @?/rdbms/admin/awrrpt
    Just like statspack report but its a advance and diff version of statspack,it provide more information of Database as well as OS.
    it show report in Html and Text format.
    we can also take manually snapshot for AWR by
    BEGIN
    DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();
    END;
    **The STATISTICS_LEVEL initialization parameter must be set to the TYPICAL or ALL to enable the Automatic Workload Repository.
    [oracle@RMSORA1 oracle]$ sqlplus / as sysdba
    SQL*Plus: Release 10.1.0.2.0 - Production on Fri Mar 17 10:37:22 2006
    Copyright (c) 1982, 2004, Oracle. All rights reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
    With the Partitioning, OLAP and Data Mining options
    SQL> @?/rdbms/admin/awrrpt
    Current Instance
    ~~~~~~~~~~~~~~~~
    DB Id DB Name Inst Num Instance
    4174002554 RMSORA 1 rmsora
    Specify the Report Type
    ~~~~~~~~~~~~~~~~~~~~~~~
    Would you like an HTML report, or a plain text report?
    Enter 'html' for an HTML report, or 'text' for plain text
    Defaults to 'html'
    Enter value for report_type: text
    Type Specified: text
    Instances in this Workload Repository schema
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    DB Id Inst Num DB Name Instance Host
    * 4174002554 1 RMSORA rmsora RMSORA1
    Using 4174002554 for database Id
    Using 1 for instance number
    Specify the number of days of snapshots to choose from
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Entering the number of days (n) will result in the most recent
    (n) days of snapshots being listed. Pressing <return> without
    specifying a number lists all completed snapshots.
    Listing the last 3 days of Completed Snapshots
    Snap
    Instance DB Name Snap Id Snap Started Level
    rmsora RMSORA 16186 16 Mar 2006 17:33 1
    16187 16 Mar 2006 18:00 1
    16206 17 Mar 2006 03:30 1
    16207 17 Mar 2006 04:00 1
    16208 17 Mar 2006 04:30 1
    16209 17 Mar 2006 05:00 1
    16210 17 Mar 2006 05:31 1
    16211 17 Mar 2006 06:00 1
    16212 17 Mar 2006 06:30 1
    16213 17 Mar 2006 07:00 1
    16214 17 Mar 2006 07:30 1
    16215 17 Mar 2006 08:01 1
    16216 17 Mar 2006 08:30 1
    16217 17 Mar 2006 09:00 1
    Specify the Begin and End Snapshot Ids
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Enter value for begin_snap: 16216
    Begin Snapshot Id specified: 16216
    Enter value for end_snap: 16217
    End Snapshot Id specified: 16217
    Specify the Report Name
    ~~~~~~~~~~~~~~~~~~~~~~~
    The default report file name is awrrpt_1_16216_16217.txt. To use this name,
    press <return> to continue, otherwise enter an alternative.
    Benefit:- Now DBA have more free time to play games.....................:-)
    Advance version of statspack
    more DB and OS information with self managing capabilty
    New Automatic alert and database advisor with the help of AWR.
    6.Active Session History:-
    ==========================
    V$active_session_history is view that contain the recent session history.
    the memory for ASH is comes from SGA and it can't more then 5% of Shared pool.
    So we can get latest and active session report from v$active_session_history view and also get histortical data of
    of session from DBA_HIST_ACTIVE_SESS_HISTORY.
    v$active_session_history include some imp column like:-
    ~SQL identifier of SQL statement
    ~Object number, file number, and block number
    ~Wait event identifier and parameters
    ~Session identifier and session serial number
    ~Module and action name
    ~Client identifier of the session
    7.Misc:-
    ========
    Rename Tablespace:-
    =================
    in 10g,we can even rename a tablespace by
    alter tablespace <tb_name> rename to <tb_name_new>;
    This command will update the controlfile,data dictionary and datafile header,but dbf filename will be same.
    **we can't rename system and sysaux tablespace.
    Bigfile tablespace:-
    ====================
    Bigfile tablespace contain only one datafile.
    A bigfile tablespace with 8K blocks can contain a 32 terabyte datafile.
    Bigfile tablespaces are supported only for locally managed tablespaces with automatic segment-space management.
    we can take the advantage of bigfile tablespace when we are using ASM or other logical volume with RAID.
    without ASM or RAID ,it gives poor response.
    syntax:-
    CREATE BIGFILE TABLESPACE bigtbs
    Flushing Buffer Cache:-
    ======================
    This option is same as flushing the shared pool,but only available with 10g.
    but i don't know, whats the use of this command in prod database......
    anyway we can check and try it on test server for tuning n testing some query etc....
    SQL> alter system flush buffer_cache;
    System altered.
    ++++++++++++++++++
    8.Oracle Internal
    ++++++++++++++++++
    Here is some stuff that is not related with 10g but have some intresting things.
    a)undocumented parameter "_log_blocks_during_backup"
    ++++++++++++++++++++++++
    as we know that oracle has generate more redo logs during hotbackup mode because
    oracle has to maintain the a complete copy of block into redolog due to split block.
    we can also change this behaviour by setting this parameter to False.
    If Oracle block size equals the operating system block size.thus reducing the amount of redo generated
    during a hot backup.
    WITHOUT ORACLE SUPPORT DON'T SET IT ON PROD DATABASE.THIS DOCUMENT IS JUST FOR INFORMATIONAL PURPOSE.
    b)some X$ views (X$messages)
    ++++++++++++++++
    if you are intresting in oracle internal architecture then x$ view is right place for getting some intresting things.
    X$messages :-it show all the actions that a background process do.
    select * from x$messages;
    like:-
    lock memory at startup MMAN
    Memory Management MMAN
    Handle sga_target resize MMAN
    Reset advisory pool when advisory turned ON MMAN
    Complete deferred initialization of components MMAN
    lock memory timeout action MMAN
    tune undo retention MMNL
    MMNL Periodic MQL Selector MMNL
    ASH Sampler (KEWA) MMNL
    MMON SWRF Raw Metrics Capture MMNL
    reload failed KSPD callbacks MMON
    SGA memory tuning MMON
    background recovery area alert action MMON
    Flashback Marker MMON
    tablespace alert monitor MMON
    Open/close flashback thread RVWR
    RVWR IO's RVWR
    kfcl instance recovery SMON
    c)Internal Structure of Controlfile
    ++++++++++++++++++++++++++++++++++++
    The contents of the current controlfile can be dumped in text form.
    Dump Level Dump Contains
    1 only the file header
    2 just the file header, the database info record, and checkpoint progress records
    3 all record types, but just the earliest and latest records for circular reuse record types
    4 as above, but includes the 4 most recent records for circular reuse record types
    5+ as above, but the number of circular reuse records included doubles with each level
    the session must be connected AS SYSDBA
    alter session set events 'immediate trace name controlf level 5';
    This dump show lots of intresting information.
    it also show rman recordes if we used this controlfile in rman backup.
    Thanks
    Kuljeet Pal Singh

    You can find each doc in html and pdf format on the Documentation Library<br>
    You can too download all the documentation in html format to have all on your own computer here (445.8MB)<br>
    <br>
    Nicolas.

  • Client unable to connect to Oracle 10g on linux

    I have installed Oracle 10g on an Intel box running RedHat AS 3.0. The database installation was succesful but I am unable to connect to it from the client on my laptop running Oracle 10g client and Winfdows XP Pro. The server ip is 192.168.1.10 and I can ping it from the client:
    C:\>ping attila.n3kje.net
    Pinging attila.n3kje.net [192.168.1.10] with 32 bytes of data:
    Reply from 192.168.1.10: bytes=32 time<1ms TTL=64
    Reply from 192.168.1.10: bytes=32 time<1ms TTL=64
    Reply from 192.168.1.10: bytes=32 time<1ms TTL=64
    Reply from 192.168.1.10: bytes=32 time<1ms TTL=64
    Ping statistics for 192.168.1.10:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms
    Here is some info about the 2 environments:
    [oracle@attila bin]$ uname -a
    Linux attila.n3kje.net 2.4.21-9.0.1.ELsmp #1 SMP Mon Feb 9 22:26:51 EST 2004 i686 i686 i386 GNU/Linux
    Server hosts file
    ======================================================
    # Do not remove the following line, or various programs
    # that require network functionality will fail.
    127.0.0.1 attila.n3kje.net attila localhost.localdomain localhost
    hostname output
    ======================================================
    [root@attila root]# hostname
    attila.n3kje.net
    ifconfig output
    =======================================================
    [root@attila root]# ifconfig
    eth0 Link encap:Ethernet HWaddr 00:C0:9F:1D:0C:C8
    inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:13772171 errors:0 dropped:0 overruns:0 frame:0
    TX packets:13748842 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:1269613311 (1210.7 Mb) TX bytes:4065314800 (3876.9 Mb)
    Interrupt:16 Base address:0xecc0 Memory:fe100000-fe120000
    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    UP LOOPBACK RUNNING MTU:16436 Metric:1
    RX packets:5513840 errors:0 dropped:0 overruns:0 frame:0
    TX packets:5513840 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:865454291 (825.3 Mb) TX bytes:865454291 (825.3 Mb)
    Client TNSNAMES.ORA
    ======================================================
    # tnsnames.ora Network Configuration File: C:\Oracle\product\10.1.0\Client_1\NETWORK\ADMIN\tnsnames.ora
    # Generated by Oracle configuration tools.
    ORACLE10G =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = DEV10G)
    PRDSRR =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = dev10g)
    Client SQLNET.ORA
    ======================================================
    # sqlnet.ora Network Configuration File: C:\Oracle\product\10.1.0\Client_1\network\admin\sqlnet.ora
    # Generated by Oracle configuration tools.
    SQLNET.AUTHENTICATION_SERVICES= (NTS)
    NAMES.DIRECTORY_PATH= (EZCONNECT, TNSNAMES)
    Server TNSNAMES.ORA
    ======================================================
    # tnsnames.ora Network Configuration File: /u01/app/oracle/product/10.1.0/db_1/n
    etwork/admin/tnsnames.ora
    # Generated by Oracle configuration tools.
    DEV10G =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = attila.n3kje.net)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = DEV10G)
    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    Server LISTENER.ORA
    ======================================================
    # listener.ora Network Configuration File: /u01/app/oracle/product/10.1.0/db_1/n
    etwork/admin/listener.ora
    # Generated by Oracle configuration tools.
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = /u01/app/oracle/product/10.1.0/db_1)
    (PROGRAM = extproc)
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = attila.n3kje.net)(PORT = 1521))
    Results from the TNSPING command issued at the client
    =================================================================
    C:\>tnsping prdsrr
    TNS Ping Utility for 32-bit Windows: Version 10.1.0.2.0 - Production on 02-APR-2
    004 09:26:11
    Copyright (c) 1997, 2003, Oracle. All rights reserved.
    Used parameter files:
    C:\Oracle\product\10.1.0\Client_1\network\admin\sqlnet.ora
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
    (HOST = 192.168.1.10)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = dev10g)))
    TNS-12541: TNS:no listener
    C:\>tnsping oracle10g
    TNS Ping Utility for 32-bit Windows: Version 10.1.0.2.0 - Production on 02-APR-2
    004 09:26:38
    Copyright (c) 1997, 2003, Oracle. All rights reserved.
    Used parameter files:
    C:\Oracle\product\10.1.0\Client_1\network\admin\sqlnet.ora
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
    (HOST = 192.168.1.10)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVI
    CE_NAME = DEV10G)))
    TNS-12541: TNS:no listener
    C:\>
    Trying to connect to the database from the server
    ==================================================
    [oracle@attila bin]$ echo $ORACLE_SID
    DEV10G
    [oracle@attila bin]$ ./sqlplus system
    SQL*Plus: Release 10.1.0.2.0 - Production on Fri Apr 2 12:22:29 2004
    Copyright (c) 1982, 2004, Oracle. All rights reserved.
    Enter password:
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
    With the Partitioning, OLAP and Data Mining options
    SQL> exit
    Disconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Pr
    oduction
    With the Partitioning, OLAP and Data Mining options
    [oracle@attila bin]$ ./sqlplus system@dev10g
    SQL*Plus: Release 10.1.0.2.0 - Production on Fri Apr 2 12:23:09 2004
    Copyright (c) 1982, 2004, Oracle. All rights reserved.
    Enter password:
    ERROR:
    ORA-12154: TNS:could not resolve the connect identifier specified
    tnsping issued at the server
    ======================================================
    [oracle@attila bin]$ tnsping dev10g
    TNS Ping Utility for Linux: Version 10.1.0.2.0 - Production on 02-APR-2004 12:3
    :44
    Copyright (c) 1997, 2003, Oracle. All rights reserved.
    Used parameter files:
    /u01/app/oracle/product/10.1.0/db_1/network/admin/sqlnet.ora
    TNS-03505: Failed to resolve name
    What am I doing wrong?
    Thanks
    Renato

    Ok, I was able to succesfully connect to the database from the client. I made the following changes to the sqlnet.ora, tnsnames and listener. Here are the changes I made:
    sqlnet.ora
    ==============================
    # SQLNET.ORA Network Configuration File: /u01/app/oracle/product/9.2.0.1.0/netwo
    rk/admin/sqlnet.ora
    # Generated by Oracle configuration tools.
    # NAMES.DIRECTORY_PATH= (EZCONNECT)
    NAMES.DIRECTORY_PATH= (EXCONNECT, TNSNAMES, ONAMES, HOSTNAME)
    listener.ora
    ==============================
    # listener.ora Network Configuration File: /u01/app/oracle/product/10.1.0/db_1/n
    etwork/admin/listener.ora
    # Generated by Oracle configuration tools.
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = /u01/app/oracle/product/10.1.0/db_1)
    (PROGRAM = extproc)
    (SID_DESC =
    (GLOBAL_DBNAME = DEV10G)
    (ORACLE_HOME = /u01/app/oracle/product/10.1.0/db_1)
    (SID_NAME = DEV10G)
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
    tnsnames.ora
    ===========================================
    # tnsnames.ora Network Configuration File: /u01/app/oracle/product/10.1.0/db_1/n
    etwork/admin/tnsnames.ora
    # Generated by Oracle configuration tools.
    DEV10G =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = DEV10G)
    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    Here is the new problem!
    I start the dbconsole using the folowing command:
    [oracle@attila bin]$ ./emctl start dbconsole
    TZ set to US/Eastern
    Oracle Enterprise Manager 10g Database Control Release 10.1.0.2.0
    Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved.
    http://attila.n3kje.net:5500/em/console/aboutApplication
    Starting Oracle Enterprise Manager 10g Database Control ........................
    ... started.
    Logs are generated in directory /u01/app/oracle/product/10.1.0/db_1/attila.n3kje
    .net_DEV10G/sysman/log
    When I try and access it from the client I get the following error message:
    "The database status is currently unavailable. It is possible that the database is in mount or nomount state. Click 'Startup' to obtain the current status and open the database. If the database cannot be opened, click 'Perform Recovery' to perform an appropriate recovery operation."
    What am I doing wrong this time?
    Your help would be greatly appreciated
    Thanks
    Renato

  • Oracle 10g to 11g Upgrade - Oracle Clusterware problem

    Oracle10g RAC (2 Nodes) RHEL 4 64bit
    Hi All,
    I have began the procedure for upgrading Oracle Clusterware to 11g. However, during the install OUI was giving me certain error messages like it couldn't transfer the OUI installlogs to node 2. Well, I kept pushing through the install and after I ran the last rootupgrade script on node 2 it gave me the following error:
    Checking the existence of nodeapps on this node
    Exception in thread "main" java.lang.UnsupportedClassVersionError: oracle/ops/opsctl/OPSCTLDriver (Unsupported major.minor version 49.0)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    Creating '/crs/home/install/paramfile.crs' with data used for CRS configuration
    Exception in thread "main" java.lang.UnsupportedClassVersionError: oracle/ops/opsctl/OPSCTLDriver (Unsupported major.minor version 49.0)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    Failed to retrieve VIP details
    Exception in thread "main" java.lang.UnsupportedClassVersionError: oracle/ops/opsctl/OPSCTLDriver (Unsupported major.minor version 49.0)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    Failed to retrieve VIP details
    Setting CRS configuration values in /crs/home/install/paramfile.crs
    So I ignored the error for the time being and after that I checked the status of crs and it gave me the following:
    [oracle@vtl-rac2 crsd]$ crsstatus
    HA Resource Target State
    ora.VMRACDEV.VMRACDEV1.inst ONLINE ONLINE on vtl-rac1
    ora.VMRACDEV.VMRACDEV2.inst ONLINE ONLINE on vtl-rac2
    ora.VMRACDEV.db ONLINE ONLINE on vtl-rac1
    ora.vtl-rac1.ASM1.asm ONLINE ONLINE on vtl-rac1
    ora.vtl-rac1.LISTENER_VTL-RAC1.lsnr ONLINE ONLINE on vtl-rac1
    ora.vtl-rac1.gsd ONLINE ONLINE on vtl-rac1
    ora.vtl-rac1.ons ONLINE OFFLINE
    ora.vtl-rac1.vip ONLINE ONLINE on vtl-rac1
    ora.vtl-rac2.ASM2.asm ONLINE ONLINE on vtl-rac2
    ora.vtl-rac2.LISTENER_VTL-RAC2.lsnr ONLINE ONLINE on vtl-rac2
    ora.vtl-rac2.gsd ONLINE ONLINE on vtl-rac2
    ora.vtl-rac2.ons ONLINE OFFLINE
    ora.vtl-rac2.vip ONLINE ONLINE on vtl-rac2
    So i tried to bring it back up by doing a crs_stop -all and crs_start -all and it gave me the following error:
    vtl-rac1 : CRS-1019: Resource ora.vtl-rac2.ons (application) cannot run on vtl-rac1
    Start of `ora.vtl-rac1.ons` on member `vtl-rac1` failed.
    vtl-rac2 : CRS-1019: Resource ora.vtl-rac1.ons (application) cannot run on vtl-rac2
    CRS-0223: Resource 'ora.VMRACDEV.db' has placement error.
    CRS-0215: Could not start resource 'ora.vtl-rac1.ons'.
    CRS-0215: Could not start resource 'ora.vtl-rac2.ons'.
    I am thinking that all of this is caused by the various issues I had with the install. If I am incorrect, then please let me know. If it is true, I would like to know if there are any 11g docs on how to clean up a failed clusterware upgrade. Any advice would be greatly appreciated on any of the situations I am having.
    Thank you

    Hi Chandra,
    Did CVU report any problems before the upgrade?No, there were no errors reported by CVU before the upgrade.
    I don't there is note out there for cleaning 11g CRS
    install...and I think can very use the 10g CRS note -
    239998.1.Yeah I might have to go that way.
    I have both the 11g CRS install and upgrade from 10g
    to 11CRS at
    http://chandradba.blogspot.com/2007/08/oracle-11g-rac-
    install-on-red-hat-50.html
    and
    http://chandradba.blogspot.com/2008/02/oracle-10g-crs-
    upgrade-to-11g-crs.html
    see if it helps.Yup, your guide is very simple, clear and error proof :) That's how mine when pretty much except right around 75% I started getting these strange errors of files not being able to be transferred to node 2. Anyways, it shouldn't be a problem as none of those errors were configuration related...or else I would have a messed up cluster.
    Well, I actually rebooted both machines and now the whole CRS stack is up!! So I guess I am ok. We'll just have to wait and see.
    Thanks for your help Chandra...I always appreciate it.

Maybe you are looking for