Addenda and Errata

Last update of this page: 2012-12-07

Date Page Description
2008-09-06 xv Original sentence: Chris’s book is a member of the family tree that has brought to usus … light.
Corrected sentence: Chris’s book is a member of the family tree that has brought to us … light.
2011-12-21 27 The last sentence of the page (If set to N, the cursor is obsolete, and it will no longer be used.) should not be there. Delete it!
Reported by Jim Dickson.
2008-09-06 50 Figure 3-6 has not been correctly printed. The bottom of the figure has been cut out.
TOP: Figure 3-6
2008-09-06 60 Figure 3-18 has not been correctly printed. The top of the figure has been cut out.
TOP: Figure 3-18
2009-05-14 81 The name of the input and output files used to execute tkprof are wrong.
Original: tkprof DBM11106_ora_9813.trc DBM11106_ora_9813.txt
Corrected: tkprof DBM11106_ora_6334.trc DBM11106_ora_6334.txt
2009-02-16 84 Original sentence: Since there are 71 more (941–870), it means that 71 blocks, unrelated to the spill into temporary tablespace, were not found in the buffer cache.
Corrected sentence: Since there are 71 more (941–870), it means that 71 blocks, unrelated to the spill into temporary tablespace, were found in the buffer cache.
2008-09-24 91 The first line of the TVD$XTAT arguments is wrong.
Original: usage: tvdxtat [-a no|yes] [-c no|yes] [-f ] [-l ]
Corrected: usage: tvdxtat [-c no|yes] [-f ] [-l ]
2009-05-14 91 As of TVD$XTAT 4.0 Beta 9 the argument -x (--logging) can be used to control the logging level. The following values are available: severe, warning, info, fine and finer. The default value is taken from the configuration file logging.properties.
2008-10-02 113 Original sentence: Per the default, the permission to execute it is granted to public.
Corrected sentence: Per default, the permission to execute it is granted to public.
Reported by Mohamed Houri.
2009-02-06 117 Original sentence: You may have perceived that I do not advise regularly gathering noworkload statistics.
Corrected sentence: You may have perceived that I do not advise regularly gathering workload statistics.
2010-01-22 121 Original sentence: It is set to 0.
Corrected sentence: It is set to 0 (unless another value is already stored in the data dictionary).
Note that this correction applies to all three occurences of the original sentence.
Reported by Andreas Buckenhofer.
2010-01-14 122 Original sentence: If the free space is released at a rate equal to or lower than the rate the space is reused, using the blocks below the high watermark should be optimal.
Corrected sentence: If the free space is released at a rate equal to or lower than the rate the space is reused, the utilization of the blocks below the high watermark should be optimal.
2008-09-06 134 In Figure 4-7 the two “73” in the root block have to be changed in “71”.
Reported by Michael Garfield Sørensen.
TOP: Figure 4-7
2008-10-03 139 The patchset 11.1.0.7 introduces a new value for the parameter granularity. That value is missing in Table 4-6. Information about it is available in this post.
2011-07-22 165 Original sentence: To execute the procedures alter_stats_history_retention and purge_stats, you need to have the system privilege analyze any dictionary.
Corrected sentence: To execute the procedures alter_stats_history_retention and purge_stats, you need to have the system privileges analyze any and analyze any dictionary.
Reported by Bundit Jianpinitnan.
2009-03-05 175 Original sentence: If you run it on Oracle Database 10g patchset 10.1.0.5 or higher, you can see how the same query runs correctly with the parameter set to 10.1.0.5 but fails with an ORA-03113 when it is set to 10.1.0.4.
Corrected sentence: If you run it on Oracle Database 10g Release 2 patchset 10.2.0.3 or higher, you can see how the same query runs correctly with the parameter set to 10.2.0.3 but fails with an ORA-03113 when it is set to 10.1.0.4.
2009-04-19 181 The seventh line (CASE statement) of the SQL statement generated by the query optimizer for performing dynamic sampling contains an unnecessary double quote after the number 19:
Original: CASE WHEN “T1″.”ID”<19″ THEN 1 ELSE 0 END AS C2,
Corrected: CASE WHEN “T1″.”ID”<19 THEN 1 ELSE 0 END AS C2,
Reported by Daniel Rey.
2008-09-06 196 Figure 6-1 has not been correctly printed. The botton of the figure has been cut out.
TOP: Figure 6-1
2010-08-24 201 Original sentence: The function display_cursor is not limited to being used without parameters.
Corrected sentence: The function display_cursor is not limited to being used with two parameters identifying a child cursor.
2009-02-02 202 The value of the column plan_table.timestamp is missing in the insert statement. The script display_cursor_9i.sql contains the correct statement.
2010-08-24 204 Original sentence: The function display_awr is not limited to being used without parameters.
Corrected sentence: The function display_awr is not limited to being used with one parameter identifying a SQL statement.
2009-02-16 204 Original sentence: The average elapsed time went from about 1.5 milliseconds (15,098/10) for the first one to about 0.3 milliseconds (2,780/10) for the second one.
Corrected sentence: The average elapsed time went from about 1.5 seconds (15,098/10) for the first one to about 0.3 seconds (2,780/10) for the second one.
2008-10-06 212 Original sentence: At line 4, all rows in table t3 are read through a full scan.
Corrected sentence: At line 4, all rows in table t1 are read through a full scan.
Reported by Alexandre Jienu.
2008-09-06 218 In Table 6-4 there is two times the same typo.
Original sentence: Can be used in Oracle Database 10g Release 1 only.
Corrected sentence: Should be used in Oracle Database 10g Release 1 only.
2008-09-24 224 Original sentence: they they cannot be the first operations being executed.
Corrected sentence: they cannot be the first operations being executed.
Reported by Mohamed Houri.
2008-09-06 225 Original sentence: Be careful, though, because nonblocking operations cannot be stopped.
Corrected sentence: Be careful, though, because blocking operations cannot be stopped.
Reported by Martin Berger.
2009-08-26 231 Original sentence: Operation 5 is executed eight times, once for each distinct value in the column empno in the table emp after applying the filter imposed by the operation 3.
Corrected sentence: Operation 5 is executed eight times, once for each distinct value in the column ename in the table emp after applying the filter imposed by the operation 3.
Reported by Michele Politta.
2008-10-03 232 Original sentence: For each distinct value in the column deptno, the two children (3 and 5) are executed once.
Corrected sentence: The second and third child (3 and 5) might be executed several times (at most, as many times as the number of rows returned by operation 2).
2008-10-03 233 Original sentence: Operation 4 scans the table emp and applies the filter predicate "E2"."DEPTNO"=:B1.
Corrected sentence: For each distinct value in the column deptno returned by operation 2, operation 4 scans the table emp and applies the filter predicate "E2"."DEPTNO"=:B1.
2008-09-06 248 In Table 7-1 there is a typo.
Original sentence: as of 10g
Corrected sentence: As of 10g
2008-09-06 260 The text of the first SQL statement is incomplete.
Original: WHERE clause: empno = 778
Corrected: WHERE clause: empno = 7788;
2008-12-09 268 The eight line of the PL/SQL block contains a typo (“:tuning_task” must be replaced by “l_tuning_task”):
Original: dbms_sqltune.execute_tuning_task(:tuning_task);
Corrected: dbms_sqltune.execute_tuning_task(l_tuning_task);
2009-09-07 276 The first SQL statement at page 276 shows how to select the hints associated to a SQL profile. That specific SQL statement works only in Oracle Database 10g. As of Oracle Database 11g the internal tables where the SQL profiles are stored have changed. As a result, another SQL statement must be used. The following is an example (note that you find it in several scripts related to SQL profiles, e.g. in object_stats.sql).

SELECT extractValue(value(h),'.') AS hint
FROM sys.sqlobj$data od, sys.sqlobj$ so,
     table(xmlsequence(extract(xmltype(od.comp_data),'/outline_data/hint'))) h
WHERE so.name = 'first_rows'
AND so.signature = od.signature
AND so.category = od.category
AND so.obj_type = od.obj_type
AND so.plan_id = od.plan_id

Reported by Hartlieb Wild.

2010-04-15 284 Original sentence: This is easy because the data about the stored outlines is stored in three tables in the schema outln: ol$, hints$, and ol$nodes.
Corrected sentence: This is easy because the data about the stored outlines is stored in three tables in the schema outln: ol$, ol$hints, and ol$nodes.
2012-07-03 297 The value passed as parameter in the last SQL statement should be “SYS_SQL_3d1b0b7d8fb2691f” and not “SYS_SQL_492bdb47e8861a89″.
Reported by Ted Persky.
2008-12-12 300 At the end of the section Evolving SQL Plan Baselines I wrote: “In addition to the manual evolution just explained, automatic evolution of SQL plan baselines is supported with the Tuning Pack. The idea is simply that an automated task periodically checks whether nonaccepted SQL plan baselines should be evolved.” Since the automatic evolution is not as obvious as one might think, I wrote a post on my blog to share some information about it.
2008-09-06 315 Original sentence: The only way to confirm this is to open the trace file and search for waits belonging to any cursor (such waits are associated with the cursor #0 in the trace file).
Corrected sentence: The only way to confirm this is to open the trace file and search for waits that don’t belong to any cursor (such waits are associated with the cursor #0 in the trace file).
Reported by Martin Berger.
2009-03-16 326 Original sentence: Naturally, this could lead to suboptimal execution plans because literals used in subsequent SQL statements will lead to different execution plans.
Corrected sentence: Naturally, this could lead to suboptimal execution plans because literals used in subsequent SQL statements might require different execution plans.
2010-03-25 335 Original sentence: According to the JDBC 3.0 specification statement, caching should be transparent when connection pools are used.
Corrected sentence: According to the JDBC 3.0 specification, statement caching should be transparent when connection pools are used.
2012-07-03 339 Original sentence: Either you read the whole book, you read a single chapter, or you use the index or table of contents to find out where the information you are looking is.
Corrected sentence: Either you read the whole book, you read a single chapter, or you use the index or table of contents to find out where the information you are looking for is.
Reported by Ted Persky.
2008-09-06 346 In some copies (i.e. not all! who knows why…) Figure 9-1 has not been correctly printed.
TOP: Figure 9-1
2008-09-06 346 In some copies (i.e. not all! who knows why…) Figure 9-2 has not been correctly printed.
TOP: Figure 9-2
2008-09-06 350 Original sentence: Although there are no particular requirements for doing this type of scan, on occasion it may be the only access path possible.
Corrected sentence: Because there are no particular requirements for doing this type of scan, on occasion it may be the only access path possible.
2011-03-10 352/353 The DDL statement used to create the partitioned table is the wrong one. In fact the partition names do not match with the output of the query shown at page 353. The script pruning_range.sql contains the right DDL statement.
Reported by Martin Maletinsky.
2009-02-18 356 Original sentence: This is because rows that have column n1 equal to 3 would be stored in that partition if column d1 had a value later than the 31st of January 2007.
Corrected sentence: This is because rows that have column n1 equal to 3 would be stored in that partition if column d1 had a value later than the 31st of December 2007.
Reported by Thomas Aregger.
2008-11-21 376 Original sentence: Basically, for each call, 10 rowids were extracted from the index block, and their data was often found in the same data block.
Corrected sentence: Basically, for each call, 100 rowids were extracted from the index block, and their data was often found in the same data block.
Reported by Kun Sun.
2010-05-03 379 Original sentence: Note that Table 9-2 provides no comment regarding the selectivity of the index or the cardinality of the indexed column.
Corrected sentence: Note that Table 9-2 provides no comment regarding the selectivity or the number of distinct keys of the index.
2011-02-17 381/383 Have a look to this post for an addenda.
2008-09-06 388 The page contains four hints. In each of them the character "+" is missing after the opening comment delimiter. In other words, the four occurrences of the character string "/*" must be replaced by the character string "/*+".
2008-11-02 389 Original sentence: To execute queries containing the functions min and max efficiently, two specific operations are available with B-tree indexes.
Corrected sentence: To execute queries containing the functions min or max efficiently, two specific operations are available with B-tree indexes.
Reported by Rudi Kristanto.
2012-12-05 424 The following sentence must be delete: Nevertheless, this join method is essential because it is the only one that supports all types of joins.
Reported by Mohamed Houri.
2012-12-07 429 Original sentence: In the following example, only one of the columns already referenced in the WHERE clause is referenced in the SELECT clause.
Corrected sentence: In the following example, only one of the columns already referenced in the SELECT clause is not referenced in the WHERE clause.
Reported by Na Jangkeun.
2008-12-09 506 Original sentence: The following sections show, for the three main types of DML statements that can be executed in parallel, several examples based on the script px_ddl.sql.
Corrected sentence: The following sections show, for the three main types of DDL statements that can be executed in parallel, several examples based on the script px_ddl.sql.
2012-11-23 522 Original sentence: As a result, the number of round-trips to the database decreases proportionally to the number of executions.
Corrected sentence: As a result, the number of round-trips to the database decreases proportionally to the array size.
Reported by Na Jangkeun.
2010-05-26 538 Original sentence: Alternatively, as a rough estimation, it is also possible to look at the column avg_row_len in the table dba_tables.
Corrected sentence: Alternatively, as a rough estimation, it is also possible to look at the column avg_row_len in the view dba_tables.
2010-05-26 538 Original sentence: The column chain_cnt of the table dba_tables should provide the number of chained and migrated rows.
Corrected sentence: The column chain_cnt of the view dba_tables should provide the number of chained and migrated rows.
2009-01-20 554 The file col_usage.sql must be added to Table A-3. The description is “This script shows how to retrieve information about the column usage history from the data dictionary.”
2008-09-06 555 The file parent_vs_child_cursors.sql must be removed from Table A-5.
2008-09-06 556 Original sentence: This script was used to generate the execution plans used as examples in the section “Altering the Access Structures.”
Corrected sentence: This script was used to generate the execution plans used as examples in the section “Altering the SQL Statement.”
2008-09-06 558 The files bind_variables.sql and bind_variables_peeking.sql must be removed from Table A-7.
2008-09-06 558 The file lifecycle.sql must be moved from Table A-7 to Table A-1 at page 552.
2008-09-06 558 The file makefile.mk must be added to Table A-7. The description is “This is the makefile I used to compile the C program given as an example.”
2008-11-21 559 The file hash_cluster.sql must be added to Table A-8. The description is “This script shows examples of hash cluster scans.”
2008-11-04 564 Original reference: Lilja, David, Measuring Computer Performance. Cambridge Universtity Press, 2000.
Corrected reference: Lilja, David, Measuring Computer Performance. Cambridge University Press, 2000.