Wednesday, August 17, 2005

A little more on the new book

As the print date draws close for the new book, I thought I would share the details of what is in it. The price is right now on Amazon by the way. I think everyone should know what is 'inside' before they commit to buying.

Feel free to ask any question you would like about the book here and I'll be glad to address them.

Chapter 1, Developing Successful Oracle Applications. This chapter sets out my essential approach to database programming. All databases are not created equal and in order to develop database-driven applications successfully and on time, you need to understand exactly what your particular database can do and how it does it. If you do not know what your database can do, you run the risk of continually 're-inventing the wheel' – developing functionality that the database already provides. If you do not know how your database works you are likely to develop applications that perform poorly and do not behave in a predictable manner.
  The chapter takes an empirical look at some applications where a lack of basic understanding of the database has lead to project failure. With this example-driven approach, the chapter discusses the basic features and functions of the database that you, the developer, need to understand. The bottom line is that you cannot afford to treat the database as a black box that will simply 'churn out the answers' and take care of scalability and performance by itself.

Chapter 2, Architecture Overview.  This chapter covers the basics of Oracle architecture. We start with some clear definitions of two terms that are very misunderstood by many in the Oracle world, namely Instance and Database.  We also take a quick look at the SGA (Shared Global Area) and the processes behind the Oracle instance, and describe how the simple act of “connecting to Oracle” takes place.

Chapter 3, Files. This chapter covers in depth the eight types of files that make up an Oracle database and instance. From the simple parameter file to the data and redo log files, we explore what they are, why they are there, and how you use them.

Chapter 4, The Memory Structures. This chapter covers how Oracle uses memory – both in the individual processes (PGA or Process Global Area memory) and shared memory (SGA).  We explore the differences between manual and automatic PGA and, in Oracle 10g, SGA memory management and see when each would be appropriate.  After reading this chapter, you will have an understanding of exactly how Oracle uses and manages memory.

Chapter 5, Oracle Processes. This chapter offers an overview of the types of Oracle processes (server processes versus background processes).  It also goes into much more depth on the differences between connecting to the database via a shared server or dedicated server process.  We’ll also take a look process by process at most of the background processes such as LGWR, DBWR, PMON and SMON you’ll see when you start an Oracle instance and explain the functions of each.

Chapter 6, Locking and Latching. Different databases have different ways of doing things (what works well in SQL Server may not work as well in Oracle) and understanding how Oracle implements locking and concurrency control is absolutely vital to the success of your application.
  This chapter discussed Oracle's basic approach to these issues, the types of locks that can be applied (DML, DDL, latches...) and the problems that can arise if locking is not implemented carefully (deadlocking, blocking and escalation).

Chapter 7, Concurrency and Multi-versioning. In this chapter, we’ll explore my favorite Oracle feature – multi-versioning – and how it affects concurrency controls and the very design of your application. Here you will learn that all databases are not created equal and that their very implementation can have an impact on the design of your applications. We’ll start by reviewing the various transaction isolation levels as defined by the ANSI SQL standard and see how they map to the Oracle implementation (as well as how the other databases map to this standard). Then we’ll take a look at what implications multi-versioning, the feature that allows Oracle to provide non-blocking reads in the database, might have for you.

Chapter 8, Transactions. Transactions are a fundamental feature of all databases – they are part of what distinguishes a database from a file system. And yet, they are often misunderstood and many developers do not even know that they are accidentally not using them. This chapter examines how transactions should be used in Oracle and also exposes some 'bad habits' that have been picked up when developing with other databases. In particular, we look at the implications of atomicity and how it affects statements in Oracle. We also discuss transaction control statements (COMMIT, SAVEPOINT, ROLLBACK), integrity constraints, distributed transactions (the two-phase commit) and finally autonomous transactions.

Chapter 9, Redo and Undo. It can be said that the developer does not need to understand the detail of redo and undo as much as the DBA, but developers do need to know the roles they play in the database. After first defining redo, we examine what exactly a COMMIT does. We discus how to find out how much redo is being generated, turning off logging  and also analyzing redo.
  In the undo section of the chapter examine the role of undo data, and the operations that generate the most/least undo. Finally we investigate the infamous ORA-01555, snapshot too old, error, its possible causes and how to avoid it..

Chapter 10, Database Tables. Oracle now supports numerous types of table. This chapter looks at each different type – heap organized (the default, 'normal' table), index organized, index clustered, hash clustered, nested, temporary, and object – and discusses when, how, and why you should use them. Most of time the heap-organized table is sufficient, but this chapter will help you recognize when one of the other types might be more appropriate.

Chapter 11, Indexes. Indexes are a crucial aspect of your application design. Correct implementation requires an in-depth knowledge of the data, how it is distributed, how it will be used. Too often, indexes are treated as an afterthought in application development, and performance suffers as a consequence.
  This chapter we look in detail at the different types of indexes, including B*Tree, bitmap, function-based, and application domain indexes, and discuss where they should and should not be used. We'll also answer some of those common queries in the Frequently Answered Questions section, such as 'Do indexes work on views?' and 'Why isn't my index getting used?

Chapter 12, Datatypes.  Datatypes – there are a lot to choose from. This chapter explores each of the 22 built-in datatypes, explaining how they are implemented, and how and when to use each one. First up is a brief overview of NLS (National Language Support), a basic knowledge of which is necessary to fully understand the simple string types in Oracle. We then move on to the ubiquitous NUMBER type and look at the new Oracle 10g options for storage of numbers in the database. The LONG and LONG RAW types are covered, but mostly from an historical perspective. The main objective here is to show how to deal with legacy LONG columns in applications and migrate them to the LOB type. Next, we delve into the various datatypes for storing dates and time, investigating how to manipulate the various datatypes to get what we need from them.  The ins and outs of time zone support are also covered.
  Next up is the LOB datatype, covering how they are stored and what each of the many settings such as IN ROW, CHUNK, RETENTION, CACHE, and so on mean to you.  When dealing with LOBs, it is important to understand how they are implemented and how they are stored by default – especially when it comes to tuning their retrieval and storage. We close up with the ROWID and UROWID types.  These are special types, proprietary to Oracle, that represent the address of a row. We’ll describe when to use them as a column datatype in a table (which is almost never!)

Chapter 13, Partitioning. Partitioning is designed to facilitate the management of very large tables and indexes, by implementing a 'divide-and-conquer' logic – basically breaking up a table or index into many smaller, and more manageable, pieces. It is an area where the DBA and developer must work together to maximize application availability and performance. This chapter covers both table and index partitioning. We look at partitioning using local indexes (common in data warehouses) and global indexes (common in OLTP systems).

Chapter 14, Parallel Execution.  This chapter introduces the concept of, and uses for, parallel execution in Oracle.  We start by describing when parallel processing is useful and should be considered, as well as when it should not be considered. After gaining that understanding, we move into the mechanics of parallel query, the feature most people associate with parallel execution.  Next we cover parallel DML (PDML), which allows us to perform modifications using parallel execution.  We’ll see how PDML is physically implemented and why that implementation leads to a series of restrictions regarding PDML.
  We then move into parallel DDL. This, in my opinion, is where parallel execution really shines. Typically DBAs have small maintenance windows in which to perform large operations.  Parallel DDL gives the DBA the ability to fully exploit the machine resources they have available, permitting them to finish large, complex operations in a fraction of the time it would take if done serially.
  The chapter closes on procedural parallelism, the means by which you can execute your application code in parallel.  We cover two techniques here. The first is parallel pipelined functions – the ability of Oracle to execute your stored function in parallel dynamically.  The second is do-it-yourself parallelism, whereby you design your application to run concurrently.

Chapter 15, Data Loading and Unloading. This first half of this chapter focuses on SQLLDR and covers the various ways in which we can use this tool to load and modify data in the database. Issues covered include loading delimited data, updating existing rows and inserting new ones, unloading data, and how to call SQLLDR from a stored procedure. Again, SQLLDR is a well-established and crucial tool but is the source of many questions with regard to its practical use. The second half focuses on external tables – an alternative and highly efficient means by which to bulk load and unload data.




Anonymous Anonymous said....

If only all books had a summary like this. Great write up

Wed Aug 17, 02:42:00 PM EDT  

Blogger shrek said....

so how do we get autographed copies? i need to add to my collection.;-)

Wed Aug 17, 03:15:00 PM EDT  

Blogger Lisa said....

I'll second Shrek's comment.
Just make sure there are no typos when you sign this one of mine! ;-)

Hmm, note to self, wonder how much I can get on e-bay for the other one with a Tom Kyte typo?

Wed Aug 17, 03:19:00 PM EDT  

Anonymous denni50 said....


having read through the chapter summary's of the new book I could have sworn I was reading your first book "Expert One on One"(of which I can almost quote by memory).

Chapter 1 pretty much mirror's chapter 1 of EOO-Developing Successful Applications Chapter 2 Architecture Overview resembles chapter 2 Architecture of EOO

same scenario for Locking and Latches(Locking and Concurrency),Transactions,Data Loading,Memory Structures, Files...etc.

New stuff I see is on Undo,Parallel Execution(and some other new features I may have not
picked up on) this book a revision of EOO with 9i enhanced features and some 10g thrown in for good measure?

Wed Aug 17, 03:26:00 PM EDT  

Blogger Robert Vollman said....


Echoing the thoughts above:

- Any chance of personalized, autographed copies? :)

- If we already have Expert One-on-One, how much more can we get out of this? Can you maybe have a blog on this book from that perspective?


Wed Aug 17, 03:50:00 PM EDT  

Anonymous Anonymous said....

Wow, looks awesome! I will be getting one. Congratulations on this achievement.

Do you monitor this: Sales Rank: #15,370 in Books

Is that the best way to gauge success and sales, or how does that process work for you?

Wed Aug 17, 03:53:00 PM EDT  

Anonymous Anonymous said....

Same observation as above. How much difference is this book from your previous book(Expert Oracle..)?

Wed Aug 17, 04:21:00 PM EDT  

Anonymous Eddie Awad said....

Great book. I'm sure you have mentioned this before, but I cannot recall. When will the book be released and available for shipping on Amazon? Thanks.

Wed Aug 17, 04:30:00 PM EDT  

Anonymous Eddie Awad said....

After writing my comment above, I scrolled down the book's page on Amazon and under "Product Details" I read: "Publisher: Apress (September 19, 2005)". So, I am assuming that September 19, 2005 is the book's availability date.

Wed Aug 17, 04:35:00 PM EDT  

Blogger Thomas Kyte said....

having read through the chapter summary's of the new book I could have sworn I was reading your first book "Expert One on One"

This is in fact the 2nd edition volume I of Expert one on one.

We broke it into two volumes due to size and to get something out there.

I spent more time on some areas, introduced the architecture in stages, incorporated some of the ideas I had in Effective Oracle by Design (not all by any means).

This book is an overhaul of Expert one on one Oracle. The Table of contents it borrows from is:

chapter 1: developing successful oracle apps

chapter 2: architecture
(now chapter 2, 3, 4, 5 -- lots new, many differences between 9i/10g and 8i -- lots of stuff with "A" for automatic to describe)

chapter 3: locking concurrency
(now chapters 6, 7 -- lots new, lots more detail)

chapter 4: transactions
(now chapter 8)

chapter 5: redo rollback
(now chapter 9)

chapter6: tables
(now chapter 10 - much new, new structures, ASSM, and so on)

chapter 7: indexes
(now chapter 11 - not a ton of new stuff, but updated)

chapter 9: sqlldr
(now chapter 15, lots new on external tables)

chapter 14: partitioning
(now chapter 13, lots new for 9i/10g)

all new:
chapter 12 datatypes
chapter 14 parallel execution

The book includes the 8i book expert one on one on CDROM as well.

I would say this differs greatly from the original, lots of new material, this was not a "fix typos, add a little", this was "rewrite major portions"

If you read the old, you can read:
this and decide for yourself.

Wed Aug 17, 04:41:00 PM EDT  

Anonymous Simo said....

Great, whole chapter for partioning! Will be nice to see more detail info on global/local indexes etc. And of course the good and bads are there hopefully aswell :)

Wed Aug 17, 05:03:00 PM EDT  

Anonymous Partha said....

Just a thought....

Will it be possible for you to open a new tab in Asktom for the book. If we need to ask specific questions inside the book or take examples or review or just want to discuss certain specifics of the book ? Or should this be only with the publisher ?

Since asktom is not categorised, maybe, this could be a start where the forum can be categorised into the chapters of the book and questions (if they are specific) can be logically arranged ?

Are you really serious about revamping asktom as you had mentioned a couple of times earlier

Wed Aug 17, 09:09:00 PM EDT  

Anonymous Partha said....

I know it's too early (and ofcourse you need a break but still), do you have a rough idea about what kind of chapters you are targetting for the Second Volume?

I just went back to the first edition and realised that I had used the first 12 chapters almost 90% of the time, and went in to the remaining ones only for very specific topics. So, if your second volume is going to go on similar lines, wouldn't it be focussed towards a certain segment?

In edition 1, we had an Appendix about the necessary supplied packages (with than 200 pages - that's one of the longest appendix i had seen and was wondering why was it in an appendix instead of just one more chapter). Is this 'appendix' not available in Volume1?

Wed Aug 17, 09:20:00 PM EDT  

Blogger Noons said....

Looks super, Tom. Definitely a must-get. Question: for those of us in third-world countries who have never been graced with your presence, how do we get a signed copy? (hint,hint)

(goes for Connor as well, he lives in a different country: Western Australia!) ;)

I've got all my expert books signed by the authors with yours, Connor's and Lex's being the only exceptions. Not that they're worth anything: they're dog-eared and look a little worse for wear. But I'd like to eventually get all of them signed.

Wed Aug 17, 09:26:00 PM EDT  

Blogger Connor McDonald said....


I'll meet at your the Eucla roadhouse for coffee, at which point I'll exclaim "Damn...forgot to bring a pen"

(sorry, in-joke for Aussies...)


Wed Aug 17, 10:22:00 PM EDT  

Blogger Noons said....

and for those who think Connor might be understating the importance of carrying a pen:
(distances in Ks...)

Thu Aug 18, 02:15:00 AM EDT  

Anonymous Anonymous said....

Looks like are yet to update the correct list price.

US List Price: $69.99
UK Equivalent: £39.31
Our Price: £35.38
You Save: £3.93 (9%)

Still seems like pretty good value.

Thu Aug 18, 07:10:00 AM EDT  

Anonymous denni50 said....


great feedback..thanks!

in the second volume will you be covering Oracle Advanced Security,VPD's, Internet Security(Data Encrypton) and any possible Oracle security holes that you are aware of.

next year we'll be migrating to a thin client environment(Web based Application)...upgrading to 10g and Enterprise Edition to take advantage of the security features that will be needed, purchasing an Application Server...etc.

I've been doing extensive research on the Oracle https url protocol with SSL encryption and/or Oracle Net/SSL.

It would be great if the second volume provided an overview on intranet/internet security and what important measures you would recommend in setting up a web based application.

Thu Aug 18, 09:14:00 AM EDT  

Blogger Thomas Kyte said....

in the second volume will you be covering

There is an excellent book out there that I tech edited that does:

Effective Oracle Security By Design

I will be covering FGAC, FGA and other security related topics, but not as in depth as a single book dedicated to the topic does.

I know it's too early (and ofcourse you need a break but still), do you have a rough idea about what kind of chapters you are targetting for the Second Volume?

I haven't settled on them yet, but it'll be different from the first edition. So much has changed in the last 4 years. Some chapters will go, many will be radically changed. I doubt any of them will stay "almost untouched".

The necessary supplied packages appendix should have been a section :) I started thinking "this'll be short stuff, maybe not even a page per package - and it ended up being a book in itself. I intend on updating that and including it for sure, massive changes again (utl_http for example - don't need my utl_http2 package anymore, they incorporated it and more in utl_http and so on)

for those of us in third-world countries

I only go where I am officially asked to go :) Maybe you can lobby your local user group to pester your sales guys/OU contacts...... that is how I'm going to Prague later this month, Sweden and the UK in November....

Looks like

I've notified the editor, thanks!

Thu Aug 18, 10:33:00 AM EDT  

Blogger Wally said....


Thanks for the summary of the chapters. Will pages from the actaul book be available for us to look at any time soon at Amazon.


Thu Aug 18, 06:36:00 PM EDT  

Blogger Alberto Dell'Era said....

The necessary supplied packages appendix (snip) I intend on updating that and including it for sure

Great news, that's one of my favourite sections (right now i'm using the dbms_profiler section :) - great to have it back again.

Fri Aug 19, 07:59:00 AM EDT  

Anonymous Scot said....

Hey, and if you wait long enough to get volume 2 out, like say fall 2006, then you can include a chapter or two on 10gR2 new features. Of course I'll probably get boo'd for suggesting that you actually wait to get it out :)

I would love though to see you cover other advanced topics in volume 2, like logical and physical standby databases, FGAC, sql tuning, and expression filters.

Fri Aug 19, 10:01:00 AM EDT  

Anonymous Gabe said....

The other day I was watching, for the first time, “Finding Forrester” and did enjoy it very much. There is one quote which stuck into my head, when Forrester, the reclusive Pulitzer prize winner, teaches the young and very talented Jamal on how to approach writing:

No thinking - that comes later. You must write your first draft with your heart. You rewrite with your head. The first key to writing is... to write, not to think!

In passing, that was a bit disheartening for myself … here it goes my chance for ever writing something worth publishing … writing, for me, is painful, I find it hard to just let go.

Now, what does Forrester have to do with Tom Kyte? … I mean nobody can successfully argue that Tom’s writing is not, technically, well thought thru. Well, he has this ability to retain and summon all his technical know-how into a flowing, passionate dissertation of not only how things are done in Oracle, but why there are done a certain way and what the implications are, be them good or bad. He’s very good at connecting the dots, the discrete pockets of wisdom we get every day from AskTom or his Oracle Magazine column, into a complete, clear picture of how Oracle, the database, works.

The 2nd edition of his book is a not just a simple update from 8i to 10g… it is a rewrite that obviously took the 1st edition into consideration, one that was done more with the head … it is both an overhaul and a deliberate refinement over the previous edition. The structure of the book has been altered, there are new chapters and the existing ones have been changed, most of the example have been replaced or completely re-engineered to reflect the changes brought about by 9i and 10g, plenty of new examples have been added too. It reflects Tom’s experiences over the last few years … and let’s not forget, he’s learning at least one new thing about Oracle every single day … surely a few of those are worth sharing. It was also an opportunity to correct the few mistakes from the 1st edition [and I’m only aware of one substantial one] and smooth out the edges too.

Much has been said about the technical review team … Tom has graciously acknowledged that effort … and there is evidence in the printed material of how much importance he gives to his QA team. The 1st edition of One-on-One lists some 20 people who have either reviewed or contributed technically to the book; the next one, Effective Oracle by Design, lists 5 recognizable tech editors together with their biographical notes; this new book will have the biographical notes Tom has already published in his blog and, likely, a small picture of each [though I have opted out, for now, from getting my “mug shot” in]. But make no mistake, this is a 100% genuine Tom Kyte book … it is not a Roderick Manalac or Michael Moller or Jonathan Lewis book and it is certainly not a Gabe Romanescu book [as if that were possible, said he, ROTFL]! The role of the reviewer, as I see it, is not to alter the content or the style of the book [in a direct, sizeable, recognizable way, that is] … but to bring the best out of the author. A reasonable competent and diligent QA team will give the author the extra ounce of confidence to let loose at times and write, like Forrester, from the heart without the constant agonizing over the minutiae; that gets sorted out later. And should he let loose too much, taking him outside his modus operandi then … well, then it is time for the Words you just never want to hear.

For anyone getting the book … I would say, read a chapter and then re-read it and take the proofs and ascertain they are indeed so … run with them in new directions and you’ll suddenly be in that scientific approach to Oracle very much advocated by people like Tom and Jonathan. Comparing against the 1st edition was essential for my task … but I’ve found it interesting in itself since it often reveals not only a change brought about by the new Oracle versions but, also, a shift in Tom’s evaluation of the relevancy of that topic. Things change … a side-by-side read may reveal how Tom’s thinking has evolved with these changes.

My favorite chapter … Chapter 7: Concurrency and Multi-versioning
My favorite part of the process … Getting a chapter back, with everyone else’s comments in, for a second pass.

What is it like to review a Tom Kyte book? Well, it definitely is a positive personal experience but it isn’t easy, I don’t think … I made sure to mention my family in my personal biographical note (I know the girls will be absolutely thrilled to see their names in print) because, at times, the reviewing has taken from my time with them … and I’m quite protective of that time. There has to be a very good, worthwhile reason for me to even consider altering my own modus operandi.

Enjoy the book.

Fri Aug 19, 10:21:00 AM EDT  

Anonymous Anonymous said....


that is how I'm going to Prague later this month, Sweden and the UK in November....

can you tell us if you will have same agenda (seminar) in Sweden & UK as in Prague at the end of this month? (I'm not sure yet if I'll be able to travel to Prague...and want to prepare a 'B' plan ;-)

with best regards,

Fri Aug 19, 10:30:00 AM EDT  

Blogger Peter K said....

Great summary. For those who have not check out the pre-order price on, I would suggest you do so. It's a great deal at US$29.95.

I've looked at and the new book is listed at C$58.79 which is much more than the price listed on Shipping to Canada is only US$7 and the total came out to C$45.

Fri Aug 19, 11:32:00 AM EDT  

Anonymous ika said....

I'm going to Prague later this month...

If you like beer then this is perfect chance to taste perfect beer...

Sat Aug 20, 06:26:00 AM EDT  

Anonymous Anonymous said....

Any Idea when this can be available in India ? Lot many people are asking for this. Getting the order from is expensive.


Tue Nov 29, 12:22:00 AM EST  

Blogger Thomas Kyte said....

Any Idea when this can be available in India ?

No - sorry, I don't. I'm not part of the "distribution" of the book - that is entirely up to the publisher.

Tue Nov 29, 09:28:00 AM EST  

Blogger GG said....

Hi, Tom!

I would like you to suggest me book, where is both coding and database design for performance and lot of examples. Which book is the best? Or combination of 2?..

Wed Dec 07, 02:50:00 AM EST  

Anonymous Anonymous said....

I just bought the book and i am working though the examples. Several typo's in the book in script runstats_pkg, but the downloaded script did work. Then the book goes on with selecting from (big_table) but that table doesn't exist. Ah, on the apress-site there is a script big_table. But running that one, it is asking for parameters (?). And the next script on page XXXV ( create table t1) gives errormessages too.
Q: what are the best params to enter with the big_tablescript?
Q2: what is the correct script for t1 table on XXXV?
ps apart from these errors, this smells like a great book. :)

Mon Dec 19, 11:14:00 AM EST  

Blogger Thomas Kyte said....

the only typos I'm aware of on the runstats script is the grants - should be on v_$ - not v$ tables

big_table, on page xlii wants the number of rows to create

@big_table 1000000

will create 1,000,000 rows for example.

the script for t1 on xxxv is "correct" as is.

Mon Dec 19, 11:26:00 AM EST  

Anonymous Anonymous said....

Hi tom,
thanx for your fast reply. The differences i found in the pacakge body runstats_pkg ( starting pageXXXii) are: line 48+49 : value 10 is 12 in the downloadscript. Line 62 has been commented out in the downloadcript.
create table t1 as select * from big_table.big_table where 1=0 ;
gives a

ERROR at line 1:
ORA-00942: table or view does not exist

But desc big_table returns a proper table.
Regards from Amsterdam,

Mon Dec 19, 11:55:00 AM EST  

Blogger Thomas Kyte said....

then you didn't use a user named "big_table" - just put the name you used in the create table as select.

Mon Dec 19, 12:05:00 PM EST  

Anonymous Anonymous said....

thanx again for your fast reply - and your patience to deal with morons like me :-D
BTW this book of yours is truely impressive, very unlike other oracle books i have. Well done!

Mon Dec 19, 01:22:00 PM EST  

Blogger Thomas Kyte said....

Thanks for the feedback - no need to call yourself a "moron" or anything like that - I shouldn't have referred to big_table.big_table perhaps.

Mon Dec 19, 01:28:00 PM EST  

Anonymous Tim Ashchepkov said....


It is not related to Oracle architecture, but just a general observation. On page 19 of your book you are demonstrating an example of application to reserve a room for a certain period of time.

You are using the query below to see if there are any other reservations that intersects with our own reservation in the period between p_start_time and p_end_time.

select count(*)
into l_cnt
from schedules
where resource_name = p_resource_name
and (start_time <= p_end_time)
and (end_time >= p_start_time);

I think both predicates for time comparison should NOT contain an equal condition.

The predicate (start_time <= p_end_time) means: Are there any other reservations that start before (correct!) or on (not correct!) our own reservation period end.

Why would we be interested in anything happening after our reservation time period?

The same goes for the other condition (end_time >= p_start_time). Why are we interested in anything that finishes prior to our reservation period?

I think the correct query should be this:

select count(*)
into l_cnt
from schedules
where resource_name = p_resource_name
and (start_time < p_end_time)
and (end_time > p_start_time);

Tue Dec 20, 02:59:00 PM EST  

Blogger Thomas Kyte said....

On page 19 of your book you are demonstrating an example of application to reserve a room for a certain period of time.

True - mine is a "strict overlap", you cannot end at 3pm and have something start at 3pm exactly.

Tue Dec 20, 03:04:00 PM EST  

Anonymous Tim Ashchepkov said....

It's not the point. You can't reserve a room from 2pm to 3pm, if somebody else put a reservation from 3pm to 3pm (which, although meaningless, does not intersect with your reservation at all.)

Tue Dec 20, 04:43:00 PM EST  

Blogger Thomas Kyte said....

Tim Ashchepkov said....

Tim - I think we are saying the same thing, I was agreeing with your analysis?

Tue Dec 20, 06:22:00 PM EST  

Anonymous Tim Ashchepkov said....

Tom, we are talking about the same thing.

Also, great book, and I enjoy reading it.

Wed Dec 21, 02:45:00 PM EST  

Blogger Laurent Schneider said....

great book! I just understand this morning what MAXTRANS is about... very nice to have complete examples about everythink what is stated in the book ! So many books just say something like: "maxtrans is the maximum number of transaction you can do on a block" but without a proper example, I have never figured out how it really worked. Great example with dbms_rowid.rowid_block_number.

Thanks for all the fish

Wed Jan 04, 08:25:00 AM EST  

Anonymous Anonymous said....

Pharmacy blog

Sun Jan 08, 04:40:00 PM EST  

Anonymous Anonymous said....

Not sure if you can do something about this. But the amazon guys are making a mess of the shipping. It has been a week since I ordered and I got an update today saying it might take another 10 days to send the book. Out of Stock ????

Mon Apr 24, 12:31:00 PM EDT  

Blogger UninstaLL said....

hi, i am a student in turkey and i am responsible for preparing a report about
chapter 1:developing successful oracle applications of your book.
Subject headings are:
1- Applications built on the database, around the database will succeed or fail based on how it uses the database

2- The database architecture

o Concurrency controls

o Binding

o How to tune

o More than a cursory knowledge of SQL

3- KNOW What's already provided

o Dont "invent" things that already exist

o Doing it yourself approach

o Black box approach

o Database Independence

4- Dba & developer relationship

5- Question Authority

o There are lots of 'experts' out there

o Make them prove everything

if you have another resources about that subject headings,may you send me?it provides improving myself and making my project unique.i wanted to eventually say somthing.i am bound to deliver my project until Mon May 28 2007,08:00 AM
i have already been thankful for it.
Congratulations for your book.

Fri May 25, 09:03:00 AM EDT  

Blogger Ajuu said....

Hi Tom,
I am a Newbie as an ORACLE DBA and Have found it difficult to understand which book to for as the reference.
I am working on Oracle 9i and would soon be progressing to 10g.
Please suggest which of your books would be helpful for
1. Understanding basic concepts.
2. Oracle Tuning part.

I am looking for a guide. Please help me.

Wed Nov 18, 01:24:00 AM EST  

Blogger Thomas Kyte said....


Easy: server concepts guide, performance guide, both available on right now.

If you want the "how does it all work" written the way I write, Expert Oracle Database Architecture does that.

Wed Nov 18, 06:58:00 AM EST  

Anonymous Sina Torbati said....


this comment is to ask for your authorisation.

I want to sum up the second edition of 'Expert Oracle Database Architecture' in french, and publish it on the web, with references to the page number where reader's can have more explanation,

and the same for your articles, for example, on oracle magazine.

Do you give me permission for this ?


Wed Nov 24, 11:26:00 AM EST  

Blogger Thomas Kyte said....


I cannot authorize you for the book - the publisher would have to do that.

For the Oracle Magazine stuff - sure, go ahead. Just point to the original material on!

Wed Nov 24, 11:28:00 AM EST  


<< Home