Oracle Performance Tuning, 2nd Edition by Mark Gurry and Peter Corrigan Following are the changes made in the 6/01 reprint: Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification {430} 9th line: The FROM statement of objstor.sql used to read: "dbs_tables T," now it reads: "dba_tables T," {451} Bottom of the page: A comma has been added to the end of the seventh line of code: sum(decode(nvl(num_rows,9999), 9999,0,1)) "Tables Analyzed", {458} The bulleted item at the top of the page used to read: Encourage developers to use bind variables whenever possible. For example, use this statement: SELECT acct_name, acct_limit FROM account WHERE acct_no = :accno; instead of these: SELECT acct_name, acct_limit FROM account WHERE acct_no = 10301; SELECT acct_name, acct_limit FROM account WHERE acct_no = :accno; SELECT acct_name, acct_limit FROM account WHERE acct_no = :accno; now it reads: Encourage developers to use bind variables whenever possible. For example, use this statement: SELECT acct_name, acct_limit FROM account WHERE acct_no = :accno; instead of this: SELECT acct_name, acct_limit FROM account WHERE acct_no = 10301; (466) Bottom of the page used to read: "user_opening" now it reads: "users_opening" {469} Bottom of the page: There is now a join required in both SQL statements. They now read as follows: SELECT SUM(VALUE) FROM V$SESSTAT st, V$STATNAME nm WHERE nm.NAME = 'session uga memory' AND st.STATISTIC# = nm.STATISTIC# / and SELECT SUM(VALUE) FROM V$SESSTAT st, V$STATNAME nm WHERE nm.NAME = 'session uga memory max' AND st.STATISTIC# = nm.STATISTIC# / {472} In the code example, it used to read: (TRUNC(indx / 250) +1 interval, now it reads: (TRUNC(indx / 250) +1) interval, {475} Tenth line from the top: The line "AND username is not null" has been added. {475} Ninth line from the bottom: The line "AND se.username is not null" has been added. {476} In the first full code: The line, "and ob_typ = 2", has been removed. {476} In the second full code, the last line has been removed and the second to last line has been changed. It used to read: WHERE username||' ('||sid||')' = "User Session") ORDER BY username, sid, now it reads: WHERE username||'('||v$session.sid||')' = "User Session") (513) Middle of the page: "No responses" now reads: "No response" (513) Middle of the page: The quotation marks have been changed in the line: WHERE Q.type = 'DISPATCHER' (514) Top of the page used to read: FROM v$shared_servers now it reads: FROM v$shared_server (514) Top of the page: The quotation marks have been changed in the line: WHERE status !='QUIT' {515} In # locksql.sql: In line 1, "sid" has been changed to "ses.sid" In line 2, "prc.osuser" has been changed to "ses.osuser" {516} The eleventh line form the top used to read: AND l1.id1 = l2.id1 now it reads: WHERE l1.id1 = l2.id1 {518} Top of page: All the references to V$SQLAREA have been changed to V$SQLTEXT. {518} Top of page: A Order by line has been added to the bottom of the script: order by 'User '||v$session.username||'('||v$session_wait.sid||')', piece