About this book: Expert Oracle Practices ( Oak Table)

Hi folks,
I know that some of the authors of this book are on this forum so this thread is addressed to them.
Could you please provide the table of contents ?
Why did you decide to write this book ? What this book can teach more in relation to other books (ex:Tom Kyte's books) ?

Farenheiit,
I do not believe that Apress has released a table of contents for the book yet (the book is scheduled to be published in January 2010). The book description on the Apress site (http://www.apress.com/book/view/9781430226680) and Amazon.com will probably be updated once the book’s table of contents is complete. The Apress website lists 16 OakTable Network members who co-wrote the book, and you will likely be able to find posts on this forum (as well as other forums and blogs) from several of the authors.
Pete Finnigan announced that he wrote two chapters for the book on the topics of user security and data security (http://www.petefinnigan.com/weblog/archives/00001272.htm).
I co-wrote two chapters with a very knowledgeable member of the OakTable Network. The chapter titles are “Understanding Performance Optimization Methods” and “Choosing a Performance Optimization Method”. The two chapters explore the vast number of ways to identify Oracle database performance problems, and demonstrate methods of attacking the problems once identified. Some of the techniques demonstrated in the chapters have not previously appeared in book form. The chapters also attempt to address some of the bad advice found when performing web searches on Oracle keywords. Several reproducible test cases are included.
Why did I decide to write a chapter? As I stated in a couple other threads on this forum, I do not like confusion, for example, cases where “B” does not logically follow (result) from “A”. Based on what I have seen, eliminating confusion and helping other people understand Oracle seems to be a significant motivator for many (and very likely all) of the OakTable members.
Personal opinion: I purchased a copy of Tom Kyte’s “Expert One on One” and two copies of his “Expert Oracle Database Architecture”, and have read both book titles cover to cover. His books are excellent, highly detailed, and include a number of test cases which allow the reader to understand concepts, while reproducing the output using their databases. The test cases also offer a method to determine if something was true in Oracle 9i R1 or in 10g R1 is no longer true in 11g R2. I do not know if it is a fair comparison, but you might be able to consider his books as the Oracle “Concepts Guide” written so that it is easy to understand, with real-world examples, and real-world “war stories” (quite a number of these appear in “Expert One on One”). I consider Tom Kyte’s “Expert Oracle Database Architecture” as the critical starting point, conveying the foundation knowledge needed to understand the material presented in other books including “Optimizing Oracle Performance”, “Troubleshooting Oracle Performance”, “Cost-Based Oracle Fundamentals”, “Forecasting Oracle Performance”, and the “Expert Oracle Practices” book.
Charles Hooper
Co-author of "Expert Oracle Practices: Oracle Database Administration from the Oak Table"
IT Manager/Oracle DBA
K&M Machine-Fabricating, Inc.

Similar Messages

  • Please your opinion about this book

    I heard that this book is really good for beginers " How to program in java 5th edition by Deitel" can you please give my your opinion about this book ,.
    thank you.

    I have Java How To Program 6th edition by Deitel and it's good but i think they could have used a little more plain English in the explanation of java.

  • From where can I buy this book?  Oracle Backup & Recovery

    Oracle Backup & Recovery:
    Expert secrets for using RMAN and Data Pump
    http://www.rampant-books.com/book_1002_rman_backup_recovery.htm
    No answers on Google or Amazon

    user10735952 wrote:
    Oracle Backup & Recovery:
    Expert secrets for using RMAN and Data Pump
    http://www.rampant-books.com/book_1002_rman_backup_recovery.htm
    No answers on Google or AmazonDear OP
    Me and Aman Sharma currently working on this book and there're only two chapters left. We've two strongest reviewers - Hemant K. Chitale and Syed Sabdar who help us a lot.
    This book will be available for the 03/2011

  • Physics for game developers book. I need to know something about this book.

    1. On Amazon, the discription says it is for people with college leval math. I am only fourteen, so that won't work for me.
    2. The examples are in C++
    I don't care if the book is in Java, but I need a good book on game DESIGN. Is this a good book:
    Game Design: The Art & Business of Creating Games
    by Bob Bates. I really need to know. Thanks. Are there any other good game DESIGN books? Preferably one that is either JAVA or not made for a lanquage. Thanks.
    Virum

    Basic physics equations etc. isn't that hard - GCSE
    maths and science is enough to get a basic physics
    demo up and running. If you've not covered these areas
    yet you'll want to look into trigonometry (sin, cos
    etc.) and the equations of motion (dealing with speed,
    acceleration etc.).This is not true.
    Figuring out the forces will give you some set of equations that relate accelerations, velocity and positions with some properties of the physical system you have. This is a system of second order differential equations, more or less complicated to solve, if you want to get position and velocity over time from it.
    To solve this symbolically or to be able to write an algorithm that solves this numerically is something you learn at University, except for some very easy cases.
    The book explains some of this.
    Look at it but don't despair.
    It is good enough if you get a physics engine in your hands, thus some ready coded routines that do the job of solving for you.
    I believe that book has some.
    Regards,
    Marc

  • Parsing the word file using oracle text having tables within it............

    Hi,
    I was going through this document.Actually I am going to implement something like full text search functionality in our system.
    We get the info as .doc file.
    Earlier what we used to do is, we used to parse the file and store it into the database and then searched using PL/SQL.
    But what I understand from this article that this can be done using oracle text also.
    One concern is that whether the oracle text is able to parse the .doc file having tables embedded within it.
    Please let me know about this.(Whether oracle text will be able to parse the files having tables embedded within it).
    I am attaching an example file for this.
    Please let me know about this as early as possible.

    Yes Oracle Text have this capability. Use AUTO_FILTER or USER_FILTER to create index

  • Opinions about the book "Mastering HR Management with SAP"

    Hi,
         I would like to know the opinion about this book.Can it be usefull?.....Can I find in it something diferent of THR10,THR12....etc......?.Thanks

    Mastering HR is more sophisticated but THR 10 and THR 12 are more simple and easy to understand you can buy the mastering hr once your thru with these books
    all the best
    manikya

  • How to search this value in oracle database to find out the table

    Hi expert,
    I know there is a value in oracle database, please show me how to search this value in oracle database to find out the table holding this value.
    Many Thanks,

    918440 wrote:
    Hi friends,
    this question is really practical, I already know there is value from application saved in database, I want to search the whole database to figure out which table the value is contained.write SQL that writes SQL to query every table.
    Handle:     918440
    Status Level:     Newbie
    Registered:     Mar 2, 2012
    Total Posts:     20
    Total Questions:     10 (10 unresolved)
    why do you waste time here when you NEVER get any answer to any question you post?

  • Mac Book Air sleeps when moved...i don't know whats the problem...please help me out if anyone knows about this...

    Mac Book Air sleeps when moved...i don't know whats the problem...please help me out if anyone knows about this...

    your reed switch for the monitor is defective, it thinks youve shut the lid when you havent
    mechanical fault , contact Apple for service and parts replacement.

  • Mac Book Pro -  About this computer.

    Just bought a Mac Book Pro with the updated 500GB Solid State Drive.
    This information does not appear in the Apple Menu - About This Mac.  Is there a way to find this info on the computer.

    Did you click on the More Info button?
    in the Hardware list, did you try clicking on Serial-ATA?

  • How do I go about this? Creating table while looping through dates?

    How do I do this? Creating table while looping through dates?
    I have a table with information like:
    ID---Date---Status
    1-------04/23-----Open
    1-------04/25-----Open
    2-------04/24-----Closed
    3-------04/26-----Closed
    What I want to do is create another table based on this per ID, but have all the dates/statuses on the same line as that ID number (as additional columns). The problem is that the number of columns needed is to be dynamically decided by the number of dates.
    To illustrate my example, I'm looking to achieve the following:
    ID---04/23 Status---04/24--Status---04/25--Status---04/26--Status
    1----Open--------------<null>-------------Open---------------<null>
    2----<null>------------Closed-------------<null>-------------<null>
    3----<null>------------<null>-------------<null>-------------Closed
    What would be the best way to go about this?
    Can someone please point me in the right direction?
    Would I need to do some looping?
    Thanks in advance!

    thedunnyman wrote:
    How do I do this? Creating table while looping through dates?
    I have a table with information like:
    ID---Date---Status
    1-------04/23-----Open
    1-------04/25-----Open
    2-------04/24-----Closed
    3-------04/26-----Closed
    What I want to do is create another table based on this per ID, but have all the dates/statuses on the same line as that ID number (as additional columns). The problem is that the number of columns needed is to be dynamically decided by the number of dates.
    To illustrate my example, I'm looking to achieve the following:
    ID---04/23 Status---04/24--Status---04/25--Status---04/26--Status
    1----Open--------------<null>-------------Open---------------<null>
    2----<null>------------Closed-------------<null>-------------<null>
    3----<null>------------<null>-------------<null>-------------Closed
    What would be the best way to go about this?
    Can someone please point me in the right direction?
    Would I need to do some looping?
    Thanks in advance!I hope you are asking about writing a query to DISPLAY the data that way ... not to actually create such a massively denormalized table ....

  • When I am reading books my pages turn by themselves.  What can I do about this?

    When I am reading books, my ipad turns pages by bunches and when I am NOT touching the screen.  What can I do about this?

    All it takes is a real light brush or touch for the pad to sense a page turn.  Is your cover/case touching the edge?

  • Questions About Chapter 2 in Oracle DB 10g: SQL Fundamentals II

    Hello,
    first of all i'm glad to be a member of your forum. I have joined a beginner Oracle Course: Intro to SQL. I'm facing some problems understanding some concepts in Chapter 2 of Oracle Database 10g: SQL Fundamentals II text book. I got about 15 questions. However, i will only ask two questions at first. Since i'm a newbie, please answer it in a simplistic form. Excuse me if you see grammatical mistakes.
    Dropping a column can take a while if the column has a large number of values. In this case it may be better to set it to be unused and drop it when the number of users on the system are fewer to avoid extended locks.
    Questions:
    "when the number of users on the system are fewer to avoid extended locks."
    1. Can you explain this to me please?! fewer than before? fewer than? What if users kept increasing during the years! then this "fewer" may not happen until the company collapse!
    2. Why do we need to use unused columns? When should we use unused columns?

    Great! .... I got more questions, i just do not want to open a new same thread. Thus, i will just post the questions in here and i hope i will get help from experts...Please bare with me guys...The questions are numbered, unnumbered parts are information that helps you understand my question.
    Note: just answer what you are willing to, one question or whatever you want. I'm not expecting to get all the answers from one member :)
    Thanks for understanding
    Page 2-7:
    Certain columns can never be dropped such as columns that form part of the partitioning
    key for a partitioned table or columns that form part of the primary key of an index- organized table.
    Questions:
    "columns that form part of the partitioning key for a partitioned table"
    *1. Do they mean one table can be split into two different storage? What is the thing that*
    link these both tables to make Oracle Server realize these two tables are actually one  table? Is is tablespace_name?
    "columns that form part of the primary key of an index-organized table."
    *2. Can you clarify the above sentence please*
    *3. If i have set of columns that has large amount of data, i rather set them unused then*
    drop them because the response time is going to be faster! I do not get it, can you
    explain please? What i know is drop drops the column and release the disk space whilst
    unused column make the columns useless and does not release disk space yet until we drop them, so
    drop column does it in one step unlike taking the unused column process. In brief, i would like to know
    why dropping unused columns that has large set of data is faster then dropping the column
    directly...
    Page 2-12
    4. ALTER TABLE emp2 ADD CONSTRAINT emp_dt_fk
    FOREIGN KEY (Department_id)
    REFERENCES departments ON DELETE CASCADE);
    The above query is written in text book. I think it should be written as
    ALTER TABLE emp2 ADD CONSTRAINT emp_dt_fk
    FOREIGN KEY (Department_id)
    REFERENCES departments(dept_id) ON DELETE CASCADE;
    Am i correct?
    *5. Can you tell me what deferring constraints is in one sentence please? Why do we need it? When do we need it in real-life?*
    *7. You can defer checking constraints for validity until the end of the transaction. A*
    constraint is deferred if the system checks that it is satisfied only on commit. If a
    deferred constraint is violated, then commit causes the transaction to roll back.
    I do not understand the above paragraph, please explain. What i know is "end of
    transaction" ends with ; or commit
    Page 2-18
    create table test1 (
    pk NUMBER PRIMARY KEY,
    fk NUMBER,
    col1 NUMBER,
    col2 NUMBER,
    CONSTRAINT fk_constraint FOREIGN KEY (fk) REFERENCES test1,
    CONSTRAINT ck1 CHECK (pk > 0 and col1 > 0),
    CONSTRAINT ck2 CHECK (col2 > 0) );
    -- "CONSTRAINT fk_constraint FOREIGN KEY (fk) REFERENCES test1"
    *8. This is wrong isn't it? It references to test1 but no column specified.*
    An error is returned for the following statements:
    ALTER TABLE test1 DROP (pk); -- pk is a parent key.
    *9. We can not drop it because we did not mention ON DELETE CASCADE. Am i right?*
    ALTER TABLE test1 DROP (col1) -- col1 is referenced by multicolumn constraint ck1.
    *10. I do not get it, can you explain please. col1 is not referenced, i see CHECK constraint is applied*
    but no references made. Secondly, is ck1 considered multicolumn because it check two columns?
    Or multicolumn here represents something else?
    ALTER TABLE emp2
    DROP COLUMN employee_id CASCADE CONSTRAINTS;
    *11. This drop employee_id column and all its child. Correct?*
    ALTER TABLE test1
    DROP (pk, fk, col1) CASCADE CONSTRAINTS;
    *12. This drops three columns and all its child if there are any. Correct?*
    *13. Then what's the difference between ON DELETE CASCADE and CASCADE CONSTRAINTS?*
    For example, What if employee_id in emp2 table definition does not have ON DELETE CASCADE,
    will CASCADE CONSTRAINTS work? Please explain...
    Page 2-22
    When you are expecting a large data load and want to speed the operation. You may want
    to disable the constraints while performing the load and then enable them, in which case
    having a unique index on the primary key will still cause the data to be verified during
    the load. So you can first create a nonunique index on the column designated as PRIMARY
    KEY, and then create the PRIMARY KEY column and specify that it should use the existing
    index.
    Example:
    1. create the table
    create table new_emp
    (employee_id number(6),
    first_name varchar2(10)
    2. create the index
    create index emp_id_idx2 on new_emp(employee_id);
    "You may want to disable the constraints while performing the load and then enable them"
    so i suggest to load all data i want into new_emp.
    3. create the primary key
    alter table new_emp ADD primary key (employee_id) USING index emp_id_idx2;
    What i understand is the following:
    If we want to load large data into the new_emp, its better to create the table without any
    constraints - in our case the constraint is primary key. After that, we create nonunique
    index points to employee_id and then load data into new_emp. Finally, specify employee_id
    as primary key using the nonunique index.
    *14. Is my explanation correct?*
    "in which case having a unique index on the primary key will still cause the data to be
    verified during the load."
    *15. Data to be verified against what? Is it to be verified whether its NULL or NOT NULL? I*
    know primary key does not take NULL and every value must be unique.
    After loading all data we want, what if i did
    "alter table new_emp ADD primary key (employee_id);"
    *16. Will i face any problems or inefficient process?*
    I do not think we need step two, we could do the following:
    1. create the table
    create table new_emp
    (employee_id number(6),
    first_name varchar2(10)
    "You may want to disable the constraints while performing the load and then enable them"
    so i suggest to load all data i want itno new_emp.
    2. create the primary key
    alter table new_emp ADD primary key (employee_id);
    *17. The above steps are as efficient as the three steps i mentioned above. The only difference*
    is we let index be created implicitly. Right? If no, why?
    Page 2-23
    CREATE INDEX upper_dept_name_idx ON dept2(UPPER(department_name));
    The following statement may use the index, but without the WHERE clause the
    Oracle server may perform a full table scan:
    select *
    from employees
    where UPPER(last_name) IS NOT NULL
    ORDER BY UPPER (last_name);
    "but without the WHERE clause the Oracle server may perform a full table scan"
    *18. The above query let oracle server perform full table scan anyway! Right? It has to go*
    through every field and check is it not null or not. I know we are using function-based
    index but there are alot of not null last_name! so oracle server must scan one by one. If
    we only had one not null field, then i would say Oracle server can point to that field
    immediately by the aid of function-based index we created above. Can you clarify please...
    Another related topic statement that i do not get it yet:
    "The oracle server treats indexes with columns marked DESC as function-based indexes."
    *19. The bove statements is so general. What if we have a column ordered by DESC order and we*
    did not create any function-based indexes, will statement be true?!
    Lets go back the above query:
    ORDER BY UPPER (last_name);
    *20. Its not DESC. To me, the above query does not flow with this statement "The oracle server treats*
    *indexes with columns marked DESC as function-based indexes."?*
    Page 2-27
    Regarding FLASHBACK TABLE, you can invoke a flashback table operation on one or more
    tables, even on tables in different schema. You specify the point in time to which you
    want to revert by providing a valid timestamp. By default, database triggers are disabled
    for all tables involved. You can override this default behavior by specifying the ENABLE
    TRIGGERS clause.
    "By default, database triggers are disabled for all tables involved. You can override this
    default behavior by specifying the ENABLE TRIGGERS clause."
    *21. What are database triggers?*
    *22. About External Tables. What are external tables? When is it used in real-life? Why do*
    we want External Tables?
    Page 2-30
    Oracle server provides two major access drivers for external tables. They are
    ORACLE_LOADER access driver and ORACLE_DATAPUMP access driver. ORACLE_DATAPUMP used to
    both import and export data using a platform-independent format.
    "platform-independent format."
    *23. What is the format? Is it .dat?*
    Page 2-35
    CREATE TABLE oldemp ( fname char(25), lname char(25) )
    ORGANIZATION EXTERNAL
    (TYPE ORACLE_LOADER
    DEFAULT DIRECTORY emp_dir
    ACCESS PARAMETERS
    (RECORDS DELIMINATED BT NEWLINE
    NOBADFILE
    NOLOGFILE
    FIELDS TERMINATED BY ',' (fname POSITION (1:20) CHAR, lname POSITION (22:41) CHAR)
    LOCATION ('emp.dat') )
    PARALLEL 5
    REJECT LIMIT 200;
    *24. Can you please explain the below part:*
    ACCESS PARAMETERS
    (RECORDS DELIMINATED BT NEWLINE
    NOBADFILE
    NOLOGFILE
    FIELDS TERMINATED BY ',' (fname POSITION (1:20) CHAR, lname POSITION (22:41) CHAR)
    *25. Can you please explain what is PARALLEL 5? and Why do we need it?*
    Again, any help is appreciated...
    Edited by: user11164565 on Jul 21, 2009 4:41 AM

  • How to use complex function as condition in Oracle Rule Decision Table?

    How to use complex function as condition in Oracle Rule Decision Table?
    We want to compare an incoming date range with the date defined in the rules. This date comparison is based on the input date in the fact & the date as defined for each rule. Can this be done in a decision table?

    I see a couple of problems here.
    First, what you posted below is not a syntactically valid query. It seems to be part of a larger query, specifically, this looks to be only the GROUP BY clause of a query.
    Prabu ammaiappan wrote:
    Hi,
    I Have a group function in the Query. Below is the Query i have used it,
    GROUP BY S.FREIGHTCLASS,
    R.CONTAINERKEY,
    S.SKU,
    S.DESCR ||S.DESCRIPTION2,
    S.PVTYPE,
    RD.LOTTABLE06,
    R.WAREHOUSEREFERENCE,
    RD.TOLOC,
    R.ADDWHO,
    R.TYPE,
    S.CWFLAG,
    S.STDNETWGT,
    S.ORDERUOM,
    R.ADDDATE,
    C.DESCRIPTION,
    (CASE WHEN P.POKEY LIKE '%PUR%' THEN 'NULL' ELSE to_char(P.PODATE,'dd/mm/yyyy') END),
    NVL((CASE WHEN R.ADDWHO='BOOMI' THEN RDD.SUPPLIERNAME END),SS.COMPANY),
    RDD.BRAND,
    S.NAPA,
    RD.RECEIPTKEY,
    R.SUSR4,
    P.POKEY,
    RDD.SUSR1,
    r.STATUS, DECODE(RDD.SUSR2,' ',0,'',0,RDD.SUSR2),
    rd.SUSR3Second, the answer to your primary question, "How do I add a predicate with with a MAX() function to my where clause?" is that you don't. As you discovered, if you attempt to do so, you'll find it doesn't work. If you stop and think about how SQL is processed, it should make sense to you why the SQL is not valid.
    If you want to apply a filter condition such as:
    trunc(max(RD.DATERECEIVED)) BETWEEN TO_DATE('01/08/2011','DD/MM/YYYY') AND TO_DATE('01/08/2011','DD/MM/YYYY')you should do it in a HAVING clause, not a where clause:
    select ....
      from ....
    where ....
    group by ....
    having max(some_date) between this_date and that_date;Hope that helps,
    -Mark

  • What are the BEST books for Oracle database architect/designer?

    What concrete books would you recommend for OLTP database developer (to start from the scratch, starting from data sources analysis, logical and physical data modeling, indexes, tuning, maintaining). It doesn't have to be a book particulary for Oracle but suitable for it..
    I don't mean books DBA's or overall Oracle handbooks, also not for OLAP.
    Thanks!

    For learning how to use Oracle database effectively, i would say
    Tom Kyte's both books:
    Effective Oracle by design
    & Expert Oracle Database Architecture
    Jonathan Lewis's
    Practical Oracle 8i
    They tell you all the stuff: what/how to do something? and most importantly what/how not to do ?
    And their writing style is just awesome :)
    Amardeep Sidhu

  • Best Practice - Analyze table with very large partitions

    We have a table that contains 100 partitions with about 20m rows in each. Right now the analyze is taking about 1 hour per partition. The table is used for reporting and will have a nightly load of the previous days data.
    What would be the best way to analyze this table? Besides using a low value for ESTIMATE and using low GRANULARITY.
    Thank You.

    Are you suggesting that the table is so big, its not feasible to analyze anymore?I'm suggesting it's not necessary. I think it's highly unlikely that a nightly load is going to change the stats in any meaningful way, unless you are loading millions of rows. the law of diminishing returns has kicked in.
    Remember, the standard advice from Oracle is to gather statistics once and then only bother refreshing those stats when we need to. From Metalink note #44961.1:
    "Given the 'best' plan is unlikely to change, frequent gathering statistics has no benefit. It does incur costs though."
    What you might find useful is to export the stats from your last run before you do the new run (you should do this anyway). Then after the next stats refresh import both sets of stats into dummy schemas and compare them. If the difference is significant then you ought to keep analysing (especially if yours is a DSS or warehousing database). But if they are broadly the same then maybe it's time to stop.
    Cheers, APC

Maybe you are looking for